نصب
و پیکربندی سرویسدهنده وب آپاچی
تمامی
سرویسدهندههای وب (Web
Servers)،
جهت استاندارد و یکسان بودن در نحوه ارسال،
دریافت و پردازش دادهها، از یک پروتکل
ساده موسوم به Hypertext
Transfer Protocol یا
HTTP
استفاده
میکنند.
این
پروتکل نرمافزارهای سرویسگیرنده وب
را که به مرورگرهای وب (Web
Browser) موسوم
هستند، قادر میسازد تا بدون اینکه بدانند
با چه سرویسدهنده وبی در حال ارتباط
هستند، به تبادل داده بپردازند.
سرویسدهنده
وب آپاچی نخستین بار جهت اصلاح و وصله
کردن سرویسدهنده وب NCSA
ایجاد
شد و طی سالها توسعه، به موقعیت کنونی خود
به عنوان یک سرویسدهنده وب بسیار قابل
اطمینان و پر استفادهترین سرویسدهنده
وب جهان با آمار استفاده حدود ۷۰ درصد
(http://www.netcraft.com)،
دست یافته است و به نوبه خود یکی از
موفقترین پروژههای نرمافزارهای
بازمتن نیز میباشد.
نصب
سرویسدهنده آپاچی
نصب
سرویسدهنده وب آپاچی در توزیعهای
لینوکس همانند نصب سایر بستههای
نرمافزاری است.
کافی
است بستههای آنرا از روی دیسکهای نصب
توزیع مورد استفاده خود بر روی سیستم نصب
نمایید.
در
دبیان گنو/لینوکس
کافی است دستور زیر را بصورت کاربر ریشه
جهت نصب آپاچی صادر نمایید:
# apt-get
install apache
روش
دیگر نصب سرویسدهنده وب آپاچی دریافت
و کامپایل آن بطور کامل از کد منبع میباشد.
جدیدترین
نسخههای Apache
را
میتوانید از وب سایت پروژه آن در آدرس
http://www.apache.org
دریافت
نمایید.
البته
شخصا این کار را به دلیل دشواری در بروز
نگه داشتن سرویسدهنده از نظر امنیتی
توصیه نمیکنم.
در
صورتی که نصب سرویسدهنده آپاچی با موفقیت
انجام پذیرد، اکنون میتوانید با هدایت
مرورگر خود به آدرس سرویسدهنده که همان
آدرس IP
یا
DNS
آن
خواهد بود، صفحه test
آپاچی
را مشاهده نمایید.
در
صورتی که بر روی سرویسدهنده خود محیط X
را
ندارید، میتوانید برای آزمایش از
مرورگرهای متنی مانند lynx
استفاده
نمایید.
سرویسدهنده
آپاچی همچنین به صورت یک نسخه با پشتیبانی
از SSL
یا
Secure
Socket Layer نیز
ارائه میشود که نصب آن همانند نسخه
معمولی آپاچی بوده با این تفاوت که تبادل
دادهها بین سرویسدهنده و سرویسگیرنده
بصورت رمزنگاری شده انجام میشود.
نسخه
SSL
دارای
برخی ماژولها و Directive
های
اضافهتر نسبت به نسخه معمولی است.
جهت
نصب آن در دبیان کافی است دستور زیر را
تایپ نمایید:
# apt-get
install apache-ssl
باید
در نظر داشته باشید که برای استفاده رسمی
از قابلیتهای SSL
باید
یک Certificate
مربوط
به SSL
را
در سایتهایی که اینگونه خدمات را ارائه
میدهند، ثبت نمایید تا قابلیت SSL
سایت
شما در مرورگرهای وب معتبر شناخته شود.
در
غیر اینصورت، تنها میتوانید از قابلیتهای
ساده رمزنگاری SSL
بر
روی سرویسدهنده خود استفاده نمایید.
مانند
رمزنگاری سیستمهای مدیریتی مبتنی بر
وب.
فایلهای
پیکربندی آپاچی
تنظیمات
سرویسدهنده آپاچی در فایلهایی متنی
ذخیره میشود که به آنها اصطلاحا فایلهای
پیکربندی یا Configuration
Files اطلاق
میگردد.
فایلهای
پیکربندی اصلی آپاچی عبارتند از:
-
httpd.conf : تنظیمات
اصلی سرویسدهنده
-
modules.conf : تنظیمات
مربوط به فعال و غیر فعال سازی ماژولهای
آپاچی
-
access.conf : میتواند
حاوی تنظیمات دسترسی باشد
-
srm.conf : حاوی
برخی تنظیمات دیگر آپاچی مانند DocumentRoot
نکتهای
که باید به آن توجه داشته باشید این است
که تمام این فایلهای پیکربندی در تمام
توزیعها وجود ندارند و یا از آنها استفاده
نمیشود.
مثلا
در دبیان تنها از httpd.conf
و
modules.conf
استفاده
میشود.
با
اینکه بستههای نرمافزاری آپاچی بسیاری
از تنظیمات لازم برای آنرا برای شما انجام
میدهند، هنوز تنظیمات زیادی وجود دارند
که شما میتوانید با استفاده از آن از
سرویسدهنده خود برای امور بیشتری مانند
ارتباطات رمزنگاری شده، دسترسی حفاظت
شده یا Virtual
Hosting استفاده
نمایید.
توجه
داشته باشید که apache-ssl
دارای
فایلهای پیکربندی مخصوص به خودش ولی
مشابه با فایلهای پیکربندی apache
است
که در مسیر /etc/apache-ssl/
موجود
هستند.
کنترل
سرویسدهنده آپاچی
در
بسته دبیان آپاچی اسکریپتی به نام apachectl
برای
کنترل راهاندازی و توقف سرویسدهنده
گنجانده شده است.
این
اسکریپت ممکن است در سایر توزیعها نیز
وجود داشته باشد.
از
طریق این دستور و دستورات دیگر میتوانید
سرویسدهنده آپاچی را کمترل نمایید:
#
apachectl
usage: /usr/sbin/apachectl
(start|stop|restart|fullstatus|status|graceful|configtest|help)
-start
:راه
اندازی سرویسدهنده آپاچی
-stop:
توقف
سرویسدهنده آپاچی
-restart:
راهاندازی
مجدد .
یا
راهاندازی در صورت متوقف بودن
سرویسدهنده
-fullstatus:
نمایش
یک صفحه وضعیت کلی از سرویسدهنده.
به
مرورگر lynx
و
ماژول mod_status
نیاز
میباشد
-status:
نمایش
یک خلاصه وضعیت از سرویسدهنده.
به
مرورگر lynx
و
ماژول mod_status
نیاز
میباشد.
-configtest:
آزمایش
فایلهای پیکربندی جهت نبود خطا پیش از
بکارگیری آن در سرویسدهنده
در
صورتی که در توزیع شما دستور apachectl
وجود
ندارد، میتوانید از این دستور استفاده
نمایید:
#
/etc/init.d/apache
Usage: /etc/init.d/apache
{start|stop|reload|reload-modules|force-reload|restart}
فایل
پیکربندی httpd.conf
تنظیمات
اصلی سرویسدهنده آپاچی در این فایل قرار
دارند.
مانند
تنظیمات نوع سرویسدهنده، محل فایلهای
ثبت رخداد، نام کاربر اجرا کننده سرویسدهنده
و...
-
ServerType: این
گزینه یا directive
تعیین
کننده چگونگی اجرای سرویسدهنده آپاچی
شما بر روی ماشین است.
در
صورتی که سرویسدهنده به صورت Standalone
اجرا
میشود، برای اجرا یا توقف آن از اسکریپتهای
ثانویه دیگری استفاده میشود و تنها
کاربر ریشه میتواند سرویسدهنده را
اجرا یا متوقف نماید.
انتخاب
دیگری که در این بخش قابل استفاده است،
inetd
است.
در
این صورت، تنها هنگامی که درخواستی به
سرویسدهنده ارسال شود، اجرا خواهد شد
و پس از اتمام تقاضا، سرویسدهنده تا
دریافت درخواست بعدی متوقف خواهد شد.
این
حالت برای محیطهای توسعه نرمافزار
مناسب است تا یک سرویسدهنده درگیر وب.
ServerType
standalone
-
Port : شماره
درگاهی که سرویسدهنده شما به آن گوش
خواهد داد.
پیش
گزیده آن درگاه شماره ۸۰ میباشد.
Port 80
-
HostnameLookups : در
صورتی که این گزینه بر روی On
تعریف
شده باشد، در فایلهای ثبت رخداد، بجای
آدرس IP،
نام واقعی Host
سرویسگیرندهها
درج خواهد شد.
تنظیم
آن بر روی On
مفید
است، مخصوصا هنگامی که بخواهید بدانید
که بازدید کنندهای از چه سایتی است.
HostnameLookups
Off
-
مالکیت
(User/Group)
: این
گزینه نقش بسیار مهمی بر روی امنیت سیستم
شما خواهد داشت.
سرویس
وب بصورت ریشه اجرا شده و سپس سطح دسترسی
خود را به یک کاربر و گروه خاص کاهش میدهد.
این
بخش تعیین کننده نام و گروهی است که در
این مورد استفاده خواهد شد.
در
دبیان، هنگام نصب بسته آپاچی، کاربر و
گروهی به نام www-data
ایجاد
و از آن به این منظور استفاده خواهد شد.
دلیل
استفاده از این کاربر و گروه جلوگیری از
نفوذ به درون سیستم از طریق سرویسدهنده
وب میباشد.
حساب
www-data
دارای
حقوق دسترسی بسیار پایینی است.
User
www-data
Group www-data
-
ServerAdmin : این
گزینه حاوی آدرس پست الکترونیک شخص اداره
کننده سرویسدهنده است که باید یک آدرس
پست الکترونیک معتبر باشد تا امکان گزارش
اشکالات یا درخواستها به آن فراهم شود.
-
ServerRoot : این
گزینه نشاندهنده مسیری است که فایلهای
مربوط به سرویسدهنده، مانند فایلهای
پیکربندی در آن قرار دارند.
بطور
پیشگزیده etc/apache/
میباشد.
-
BindAddress : سرویسدهنده
آپاچی امکان ارائه سرویس به بیش از یک
آدرس IP
یا
دامین اینترنتی را داراست.
این
گزینه تعیین کننده آدرسهای IP
یا
نامهای دامنهای است که سرویسدهنده
آپاچی وظیفه سرویسدهی به آنها را بر
عهده دارد.
این
گزینه را میتوان همراه با Virtual
Hosting بکار
برد.
-
Listen: این
امکان را فراهم میسازد تا بتوان آپاچی
را بر روی درگاهها و شمارههای IP
متنوعی
به کار گرفت.
این
گزینه بسیار شبیه به BindAddress
میباشد.
-
ثبت
رخداد:
ثبت
رخدادها به دلایلی بسیار مهم است.
این
دلایل عبارتند از:
پیدا
کردن و رفع اشکال در سرویسدهنده، ضبط
فعالیت سایتها و سرویسدهنده.
در
این بخش از فایل پیکربندی httpd.conf
محل
و مسیر فایلهای ثبت رخداد تنظیم میشود.
مسیر
پیشگزیده فایلهای ثبت رخداد آپاچی،
مسیر var/log/apache/
است.
دو
فایل ثبت رخداد اصلی در آپاچی وجود دارد.
error.log جهت
ذخیره خطاهایی که در سرویسدهنده رخ
میدهد (مانند
خطاهای شماره ۵۰۰)
و
access.log
که
تمامی دسترسیهای صورت گرفته به سرویسدهنده
در آن ذخیره خواهد شد.
این
فایلها را میتوانید با استفاده از یک
ویرایشگر متنی ساده بررسی نمایید و یا
با دستور زیر آنرا مانیتور نمایید:
# tail -f
/var/log/apache/error.log
فایلهای
ثبت رخداد apache-ssl
در
مسیر /var/log/apache-ssl/
قرار
دارند.
-
ServerName : این
گزینه تعیین کننده این مطلب است که
سرویسدهنده با چه نامی روی شبکه اینترنت
شناخته میشود و شامل یک نام ثبت شده
میباشد.
این
گزینه بصورت پیشگزیده غیر فعال بوده و
شما باید آنرا بصورت دستی فعال نمایید.
-
CacheNegotiatedDocs : این
بخش حاوی چندین گزینه سیستمی است.
گزینه
نخست که میباشد، باعث خواهد شد تا
سرویسدهنده Proxy
صفحات
سرویسدهنده را Cache
نماید.
-
Timeout: همیشه
ممکن است ارتباطات در اینترنت به دلایلی
مانند ترافیک، خرابیها و...
دچار
تاخیر گردند.
گزینه
Timeout
تعیین
کننده مدت زمانی است که یک درخواست قادر
است به سرویسدهنده وارد شده و از آن خارج
شود.
(ثانیه).
سرویسدهنده
قادر است درخواستهایی را که از زمان
مجاز عبور کردهاند، متوقف نماید.
Timeout 300
-
KeepAlive : هنگامی
که این گزینه بر روی On
تعریف
شده باشد، سرویسدهنده قادر خواهد بود
تا چندین تراکنش را بر روی یک Connection
اجرا
نماید.
این
گزینه به طرز فزایندهای سرعت کار
سرویسدهنده را افزایش خواهد داد، زیرا
به ازای هر درخواست یک اتصال جداگانه
ایجاد نخواهد شد.
KeepAlive On
-
MaxKeepAliveRequests : این
گزینه حداکثر درخواستهای ارسالی از سمت
یک سرویسگیرنده را تعیین خواهد نمود.
-
Server Pool : این
بخش چگونگی اجرای دیمن آپاچی را تعیین
میکند.
گزینههای
MinSpareServers
و
MaxSpareServers
تعیین
کننده تعداد پروسههای child
سرویسدهنده
آپاچی است.
این
گزینه برای بهبود Performance
سرویسدهنده
هنگام افزایشهای ناگهانی بار بسیار
مفید است.
اعداد
پیشگزیده ۵ و ۱۰ سرویسدهنده child
میباشد.
گزینه
StartServers
نیز
تعیین کننده تعداد سرویسدهندههای
child
در
هنگام آغاز به کار آپاچی میباشد.
در
صورتی که مقدار StartServers
کمتر
از MinSpareServers
تعیین
شود، سرویسدهنده با مقدار تعیین شده در
MinSpareServers
راهاندازی
خواهد شد.
MinSpareServers
5
MaxSpareServers 10
StartServers 5
-
MaxClients : حداکثر
تعداد سرویسگیرندههایی که میتوانند
به طور همزمان به سرویسدهنده متصل شوند
را تعیین میکند.
MaxClients
150
-
DocumentRoot : مسیر
اصلی قرار گیری فایلها و صفحات وب در
سرویسدهنده آپاچی.
DocumentRoot
/var/www
-
AddCharset : تعیین
کننده کاراکتر ستهای قابل پشتیبانی در
آپاچی است که صفحات وب پردازش شده را تحت
تاثیر قرار خواهد داد.
باید
AddCharset
UTF-8 .utf8 برای
پشتیبانی از utf8
فارسی
در این بخش اضافه گردد:
AddCharset
UTF-8 .utf8
-
AddDefaultCharset : در
صورتی که بر روی on
تنظیم
شده باشد، سرویسدهنده صفحات را بطور
پیشگزیده با کاراکترست ISO-8859-1
پردازش
خواهد نمود.
برای
پشتیبانی از utf8
باید
بر روی off
تنظیم
شود.
-
DirectoryIndex : فایلهایی
که بصورت Index
هر
دایرکتوری شناخته خواهند شد، در این بخش
تعریف میشوند.
مانند
index.html
یا
default.html.
در
برخی از نسخههای Apache
در
برخی از توزیعها باید گزینه index.php
را
بطور دستی اضافه نمایید.
DirectoryIndex
index.html index.htm index.shtml index.cgi index.php
-
UserDir : در
صورتی که این گزینه فعال باشد، تمامی
کاربران سیستم قادر خواهند بود تا صفحات
وب مربوط به خود را بر روی سرویسدهنده
داشته باشند که با آدرس http://localhost/~userid
قابل
دسترسی خواهد بود.
localhost میتواند
با آدرس IP
یا
نام دامنه تعویض گردد.
کافی
است تا هر کاربر یک پوشه public_html
در
دایرکتوری خانگی خود ایجاد نموده و صفحات
وب مربوط به خود را در آنجا قرار دهد.
برای
استفاده از این قابلیت، ماژول UserDir
باید
در آپاچی فعال باشد:
LoadModule
userdir_module /usr/lib/apache/1.3/mod_userdir.so
-
Redirection and aliasing : این
امکان شرایطی را فراهم میسازد تا بتوان
فایلها و صفحات وب را در جایی غیر از
جایی که سرویسگیرنده به آن اشاره مینماید
ذخیره کرد.
گزینه
Redirect
امکان
هدایت یک آدرس URI
خاص
را به یک آدرس URL
فراهم
میسازد.
مثلا
ممکن است بر روی سرویسدهنده خود یک آدرس
قدیمی داشته باشید که به آدرسی دیگری
تغییر کرده باشد.
با
استفاده از این قابلیت قادر خواهید بود
تا کاربرانی را که هنوز به آدرس قدیمی
مراجعه مینمایند، بطور خودکار به آدرس
جدید هدایت نمایید:
Redirect
/data/ http://www.technotux.com/docs/
Alias
به
فایلهایی که خارج از DocumentRoot
سرویسدهنده
قرار دارند، اشاره مینماید.
به
این معنی که در صورتی که نیاز داشته باشید
تا فایلهای را که خارج از DocumentRoot
سرویسدهنده
قرار دارند از داخل سرویسدهنده آپاچی
قابل دسترسی نمایید، از این کلمه کلیدی
استفاده مینمایید:
Alias /doc/
/usr/share/doc/
گزینه
ScriptAlias
همانند
Alias
کار
میکند با این تفاوت که تنظیم کننده
موقعیت اصلی اسکریپتهای وب میباشد.
مانند
اسکریپتهای cgi:
ScriptAlias
/cgi-bin/ /usr/lib/cgi-bin/
-
AddType : این
گزینه برای اضافه کردن نوع فایل خاصی به
فایلهای قابل شناسایی توسط سرویسدهنده
میباشد.
برای
مثال در زیر تنظیم مربوط به فایلهای php
را
مشاهده مینمایید:
AddType
application/x-httpd-php .php
AddType
application/x-httpd-php-source .phps
-
ErrorDocument : این
گزینه جهت سفارشی سازی صفحات نمایش
پیغامهای خطا بکار میرود.
مانند
نمایش یک صفحه HTML
خاص
و یا Redirect
به
آدرس وب خاص.
ErrorDocument
404 /missing.html