منبع اصلی نوشتار زیر در این لینک قرار دارد

نصب و راه اندازی وب سرور Apache در دبیان/ابونتو

Apache معادل اپن سورسی IIS است که قابل استفاده در تمامی سیستم های عامل مانند ویندوز، لینوکس، بی اس دی ها، مکینتاش و سولاریس می باشد. اکثر به همراه دو نرم افزار MySQL و PHP استفاده می شود که اگر این سه نرم افزار را در لینوکس نصب کنیم LAMP که مخفف Linux Apache MySQL PHP است گفته می شود. Apache بعنوان یک سرویس درخواست های ارسالی بین کلاینت و سرور مبتنی بر پروتکل های HTTPS,HTTP  را پاسخ می دهد. پورت 80 پیش فرض پروتکل HTTP و پورت 443 پیش فرض پورت HTTPS است. در این پست چگونگی نصب وب سرور را می خوانیم و همچنین می توانید از این پست چگونگی تغییر شماره پورت Apache را بخوانید.در این پست نیز چگونگی نصب و راه اندازی Apache در توزیع Redhat و توزیع های مبتنی بر آن گفته شده است.

برای نصب Apache2 در توزیع های ابونتو و دبیان از دستور های زیر استفاده کنید

sudo apt-get update

sudo apt-get install apache2

پس از نصب برای راه اندازی Apache از دستور زیر استفاده کنید :

sudo /etc/init.d/apache2 start   #start apache

برای متوقف کردن Apache از دستور زیر :

sudo /etc/init.d/apache2 stop   #stop apache

برای راه اندازی مجدد Apache از دستور های زیر استفاده کنید. هر گاه تغییری در فایل httpd.conf که فایل پیکربندی Apache انجام دادید یا هرگونه تغییر دیگری که اعمال کردید، می بایست سرویس apache2 را راه اندازی مجدد کنید. تفاوت دو دستور زیر در این است که با restart کردن سرویس apache2 تمامی اتصال ها از سمت کلاینت ها و تمامی سوکت های باز شده توسط سرویس قطع شده و از نوع راه اندازی می کنند، اما با reload کردن سرویس، تنها تغییرات اعمال می وند و هیچ اتصال یا سوکتی قطع نخواهد شد.

sudo /etc/init.d/apache2 restart   #restart apache

sudo /etc/init.d/apache2 reload   #reload apache

فایل های مرتبط با Apache

در زیر دایرکتوری etc/apache2/ فایل های پیکربندی Apache قرار دارند که اصلی ترین آنها apache2.conf است. این فایل معادل httpd.conf در توزیع های Redhat/CentOS/Fedora است. تمامی تنظیمات وب سرور در این فایل صورت می گیرد.پس از هر بار تغییر این فایل می بایست سرویس را راه اندازی مجدد کنید. در فایل ports.conf شماره پورت هایی که Virtual Host ها به درخواست های رسیده گوش می دهند، تعیین می شود.در زیر دایرکتوری conf.d فایل هایی که برای تنظیمات خاص مانند تنظیمات SSL ایجاد می شوند. دایرکتوری sites-available تمامی فایل های Virtual Host ها که سایت های مختلفی را ارایه می دهند قرار می گیرد. فایل های زیر دایرکتوری sites-enabled فایل های Virtual Host های فعال هستند در صورتی که فایل های زیر دایرکتوری sites-available فعال نیستند.

همانطور که گفته شده اصلی ترین فایل Apache در توزیع های ابونتو/دبیان فایل apache2.conf که معادل فایل httpd.conf در توزیع های Redhat/CentOS/Fedora است. این فایل (و معادل آن) از سه بخش اصلی تشکیل شده است :

  • تنظیمات سرویس یا Daemon مربوط به Apache که در توزیع های ابونتو/دبیان به نام apache2 و در توزیع های Redhat/CentOS/Fedora به نام httpd خوانده می شود که Global Environment نامیده می شوند.
  • تنظیمات مربوط به خود وب سرور که در حال کار بر روی آن هستید که ‘Main’ server configuration
  • تنظیمات مربوط به Virtual Host ها که Virtual Hosts نامیده می شوند.

با استفاده از یک directive به نام Include می توان فایل های پیکربندی دیگری (configuration files) را در فایل فعلی در محلی که Include را آورده ایم، بخوانیم. دستور زیر را برای پیدا کردن Include های تعریف شده اجرا کنید :

egrep -iw –color=auto ‘^include’ /etc/httpd/conf/httpd.conf

خروجی مشابه زیر است، یعنی در نقطه ای که Include تعریف شده است، تمامی فایل های پیکربندی زیر دایرکتوری conf.d نیز در فایل apache2.conf (یا معادل آن httpd.conf) خوانده می شود. (دستور بالا و خروجی زیر مربوط به توزیع های Redhat/CentOS/Fedora) است.

Include conf.d/*.conf

در ادامه به تعدادی از تنظیمات سراسری (Global Configuration/Global Environment) می پردازیم.

  • timeout : بصورت پیشفرض 300 ثانیه است. (در توزیع های Redhat/CentOS/Fedora مقدار پیشفرض 60 ثانیه است) و مقدار آن حداکثر زمان برحسب ثانیه برای تکمیل کردن هر درخواست است.
  • KeepAlive : مقادیر On و Off را می پذیرد. اگر مقدارش On باشد، سرویس Apache اجازه بیشتر از یک اتصال از هر درخواست (کلاینت) را می دهد. (درخواست های چند اتصالی از سوی هر کلاینت به وب سرور). مقدار پیشفرض آن Off است، پس با هر درخواست باید یک اتصال تازه نیز ایجاد شود. تنظیم این پارامتر بسیار مهم بوده زیر بر روی عملکرد سرویس تاثیر گذار است.
  • KeepAliveTimeout : تعداد ثانیه ها برای انتظار در دریافت درخواست بعدی از سوی همان کلاینت و بر روی همان درخواست کلاینت. یعنی چه مدت وب سرور برای دریافت درخواست بعدی از سوی یک کلاینت و بر روی یک اتصال و پس از تمام شدن درخواست فعلی صبر می کند.
  • MaxKeepAliveRequests : حداکثر تعداد درخواست های مجاز که بر روی یک اتصال، یعنی کنترل می کند چه تعداد درخواست می تواند پیش از قطع یک اتصال از یک کلاینت تا پیش از قطع شدن آن اتصال، به وب سرور داده شود. مقدار صفر برای این پارامتر به معنی عدم محدودیت (نامحدود بودن است). بهتر است با یک عدد بزرگ برای بالابردن کارایی، مقدار دهی شود.
  • Listen : این پارامتر پورتی را که وب سرور بر روی آن به درخواست ها گوش می دهد را تعیین می کند. (این مطلب را بخوانید).
  • User/Group : دو پارامتری که کاربر و گروه کاربری سرویس Apache را تعیین می کند. یک اشتباه بزرگ تعیین این دو پارامتر به ترتیب با نام کاربری root و گروه کاربری root است که با هک شدن سرویس، هکر کنترل کامل (دسترسی root) را خواهد داشت. کاربر/گروهی که انتخاب می شوند نباید root باشد و نباید مجوز های کاربری root را توسط ابزاری مانند sudo گرفته باشد. یک کاربر/گروه بدون هیچ مجوز سیستمی. وب سرور از این کاربر/گروه برای کارهای خود استفاده می کنند. همچنین کاربر وب سرور نباید امکان Login به سیستم را داشته باشد و Shell ان باید به nologin تنظیم شده باشد.

از تنظیمات سرویس Apache (دومین بخش تنظیمات بالا)، می توان به موارد زیر اشاره نمود.

  • DocumentRoot : زیر دایرکتوری تنظیم شده در این پارامتر، تمامی فایل های مربوط به وب سرور شما نگه داری می شود. (فایل های html/css/javascript و فایل های php و هر فایل دیگری)

می توانید برای اطلاعات بیشتر و آشنایی با دیگر پارامتر ها اینجا را بخوانید.



برچسب ها : , , , , , , ,