#وب سرور آپاچی چیست؟ #
آپاچی یکی از پرکاربردترین وب سرورهای جهان است. این وب سرور مبتنی بر معماری فرآیند محور است و با ایجاد یک رشته جدید هر بار که درخواستی از سرور دریافت میشود، کار میکند. آپاچی مجموعهای غنی از ویژگیها را دارد که میتوان آنها را به صورت پویا با نصب ماژولهای رسمی برای نمایهسازی خودکار، اتصالات ftp، متعادلسازی بار، ردیابی URL و بسیاری از قابلیتهای اضافی دیگر فعال کرد.
هدف بنیاد آپاچی ایجاد یک پیادهسازی کد منبع قوی، در سطح تجاری، با تمام امکانات و به صورت رایگان در دسترس از یک سرور HTTP (وب) است. آپاچی اکنون یک سرور وب بالغ و در عین حال فعال است که با سایر نرمافزارهای محبوب مانند وردپرس، جوملا، دروپال و سایر موارد بسیار سازگار است.
#نصب وب سرور آپاچی #
قبل از نصب هر نرمافزار جدید، همیشه ایده خوبی است که لیست بستههای نرمافزاری خود را بهروزرسانی کنید.
apt update
اکنون که لیست بستههای شما بهروز است، میتوانیم نصب آپاچی را روی دستگاه میزبان شما انجام دهیم.
apt install apache2
پس از اتمام نصب، سرویس آپاچی httpd باید فعال و در حال اجرا باشد. میتوانید خودتان با استفاده از service manager این موضوع را تأیید کنید.
service apache2 status

شما باید سرویس آپاچی را فعال و در حال اجرا ببینید. اگر اینطور نیست، خودتان آن را با دستور service apache2 start فعال کنید.
#تنظیم پیکربندی امنیتی فایروال #
پس از نصب آپاچی، باید مطمئن شوید که فایروال شما به درستی پیکربندی شده است. اوبونتو ufw( Uncomplicated Firewall ) را برای مدیریت از پیش نصب شده دارد iptables.
اگر از پورت پیشفرض SSH استفاده میکنید، قبل از فعال کردن ufwسرویس، باید آن را مجاز کنید تا به طور تصادفی اتصال خود به سرور مجازی خود را مسدود نکنید، زیرا ufw به طور پیشفرض تمام ترافیک ورودی را مسدود میکند.
ufw allow 22
در مرحله بعد، باید سرویس آپاچی را از طریق ufw فعال کنید. میتوانید تمام پروفایلهای برنامههایی را که سرویس ufw از غیرفعال بودن آنها آگاه است، فهرست کنید.
ufw app list

همانطور که میبینید، ufw از سه پروفایل برنامه آپاچی آگاه است.
- پروفایل آپاچی با پورت ۸۰ مرتبط است که برای ترافیک HTTP رمزگذاری نشده استفاده میشود.
- پروفایل Apache Secure با پورت ۴۴۳ مرتبط است که برای ترافیک HTTPS رمزگذاری شده SSL استفاده میشود.
- پروفایل کامل آپاچی هم پورت HTTP رمزگذاری نشده ۸۰ و هم پورت HTTPS رمزگذاری شده ۴۴۳ را باز میکند.
بیایید با ایجاد یک قانون allow برای پروفایل برنامه آپاچی، پورت پیشفرض HTTP را در فایروال فعال کنیم.
ufw allow Apache
اکنون میتوانید سرویس ufw را فعال کنید.
service ufw start
و وضعیت فایروال خود را بررسی کنید.
ufw status verbose

همانطور که میبینید، اکنون تمام ترافیک ورودی به جز پورت ۸۰ (آپاچی) و پورت ۲۲ (SSH) که همان چیزی است که ما میخواهیم، مسدود شده است.
اکنون میتوانید با دسترسی به آدرس IP خود در پورت ۸۰، اتصال به وب سرور آپاچی را آزمایش کنید. برای این کار میتوانید http://your_ip_address را در مرورگر وب خود وارد کنید. اگر همه چیز خوب پیش رفته باشد، باید صفحه فرود پیشفرض آپاچی را مشاهده کنید.

#مدیریت سرویس سیستم آپاچی #
هنگام اجرای یک وب سرور آپاچی، ممکن است بخواهید فرآیند سیستم آن را به نحوی دستکاری کنید. میتوانید این کار را با دستور service که قبلاً استفاده کردیم، انجام دهید. این دستور یک ابزار کاربردی سطح بالا است که systemdفرآیندها را در دستگاه اوبونتو شما مدیریت میکند. همه اینها بخشی از بهینهسازی عملکرد آپاچی است ، فرآیندی که سرور شما را به یک دستگاه میزبانی وب کممصرف تبدیل میکند.
ابتدا، با بررسی وضعیت سرویس apache2 خود، مطمئن میشویم که آپاچی در حال اجرا است.
service apache2 status

میتوانیم سرویس apache2 را متوقف کنیم و وضعیت آن را دوباره بررسی کنیم.
service apache2 stop && service apache2 status

حالا بیایید سرویس آپاچی۲ را فعال کنیم و وضعیت آن را یک بار دیگر بررسی کنیم.
service apache2 start && service apache2 status

اگر سرویس کار میکند اما با مشکل مواجه شده است، به جای شروع و توقف آن، میتوانیم آن را مجدداً راهاندازی کنیم.
service apache2 restart

همانطور که میبینید، سرویس apache2 چند دقیقه پیش آغاز شد.
در صورتی که تغییراتی در فایلهای پیکربندی آپاچی خود ایجاد کنید و بخواهید آنها را بدون ایجاد اختلال در سرویس فعال اعمال کنید، میتوانید به جای آن از دستور reload استفاده کنید.
service apache2 reload
سرویس وب سرور آپاچی به طور پیشفرض پس از راهاندازی مجدد به طور خودکار شروع به کار میکند، زیرا معمولاً این دقیقاً همان چیزی است که ما در یک وب سرور میخواهیم. میتوانید بررسی کنید که آیا گزینه بوت خودکار مستقیماً از طریق ابزار systemctl فعال شده است یا خیر .
systemctl is-enabled apache2
ممکن است شرایطی پیش بیاید که نیاز داشته باشید سرور وب خود را برای مدت طولانی برای تعمیر و نگهداری از دسترس خارج کنید و نمیخواهید آپاچی پس از راهاندازی مجدد شروع به کار کند. در چنین حالتی، باید سرویس را با استفاده از ابزار systemctl غیرفعال کنید.
systemctl disable apache2
پس از انجام وظایف تعمیر و نگهداری، میتوانید سرویس را دوباره فعال کنید تا آپاچی پس از راهاندازی مجدد بهطور خودکار شروع به کار کند.
systemctl enable apache2
![]()
این دستور یک پیوند نمادین برای مدیر سیستم شما ایجاد میکند تا بتواند فایل اجرایی را پس از بوت سیستم اجرا کند.
#اولین وبسایت خود را میزبانی کنید #
حالا که یک وب سرور آپاچی در حال اجرا داریم، میتوانیم سعی کنیم محتوایی را روی آن قرار دهیم. به طور پیشفرض، آپاچی فایل index.html را که در دایرکتوری /var/www/html قرار دارد، به عنوان صفحه اصلی بارگذاری میکند، زمانی که کسی سعی میکند به وب سرور دسترسی پیدا کند.
حالا بیایید به این دایرکتوری دسترسی پیدا کنیم و فایل index.html را با استفاده از ویرایشگر متن vim باز کنیم تا مطمئن شویم که کد HTML واقعی درون آن وجود دارد.
vim /var/www/html/index.html

این کد واقعی صفحه فرود آپاچی است که قبلاً دیدهایم. میتوانیم از vim خارج شویم و این فایل را حذف کنیم.
rm index.html
حالا یک فایل index.html جدید ایجاد کنید و کد HTML خودتان را داخل آن اضافه کنید.
vim index.html
<html>
<head></head>
<body>
<h1>This is gonna be the next BGI thing</h1>
</body>
</html>
دوباره به سرور وب خود دسترسی پیدا کنید تا ببینید صفحه سفارشی شما نمایش داده میشود.

#میزبانی چندین وبسایت (میزبان مجازی) در یک سرور #
یکی از ویژگیهای عالی آپاچی ، مجازی سازی میزبان است . میزبانهای مجازی به شما این امکان را میدهند که چندین وبسایت را روی یک سرور واحد اجرا کنید. بیایید یک میزبان مجازی جدید برای novinhost.orgدامنه ایجاد کنیم.
ابتدا، باید یک دایرکتوری جدید درون /var/www/نام آن ایجاد کنیم.novinhost.org
mkdir novinhost.org
سپس به این دایرکتوری تازه ایجاد شده دسترسی پیدا کنید و یک دایرکتوری جدید با این نام public_htmlدرون آن ایجاد کنید.
mkdir public_html
دوباره به این دایرکتوری جدید دسترسی پیدا کنید و یک فایل index.html درون آن ایجاد کنید تا مسیر مطلق نهایی به صورت زیر باشد:/var/www/novinhost.org/public_html/index.html
این بار فایل جدیدمان را ویرایش میکنیم index.htmlو کد HTML جدیدی به آن اضافه میکنیم.
<html>
<head></head>
<body>
<h1>Welcome to novinhost.org</h1>
</body>
</html>
برای اینکه آپاچی تنظیمات جدید ما را بپذیرد، باید یک فایل پیکربندی با نام دلخواه novinhost.org.confدر دایرکتوری مربوطه ایجاد کنیم./etc/apache2/sites-available/
بیایید به این دایرکتوری دسترسی پیدا کنیم و فایلهای آن را بررسی کنیم.
ls -l
ما دو فایل پیکربندی پیشفرض درون این دایرکتوری پیکربندی داریم:
- ۰۰۰-default.conf – الگوی پیکربندی پیشفرض وبسایت (میزبان مجازی)؛
- default-ssl.conf – الگوی پیشفرض پیکربندی گواهی SSL.
اکنون بیایید با کپی کردن آن، یک novinhost.org.confفایل از طرف ۰۰۰-default.confالگوی پیکربندی پیشفرض ایجاد کنیم.
cp 000-default.conf novinhost.org.conf
اکنون میتوانیم این فایل تازه ایجاد شده را برای تنظیم پیکربندی وبسایت خود تغییر دهیم.
vim novinhost.org.conf
<VirtualHost *:80>
ServerName novinhost.org
ServerAlias www.novinhost.org
ServerAdmin webmaster@novinhost.org
DocumnentRoot /var/www/novinhost.org/public_html
ErrorLog $(APACHE_LOG_DIR)/novinhost.org-error.log
CustomLog $(APACE_LOG_DIR)novinhost.org-access.log combined
</VirtualHost>
- ServerName – نام دامنهای که باید با پیکربندی میزبان مجازی فعلی مطابقت داشته باشد
- ServerAlias - تمام دامنههای دیگری که باید با این میزبان مجازی مطابقت داشته باشند (مثلاً زیر دامنه www)
- ServerAdmin – آدرس ایمیل مدیر وب سایت
- DocumentRoot – دایرکتوری که آپاچی از آن فایلهای دامنه را ارائه میدهد
- ErrorLog، CustomLog – محل فایلهای لاگ
فایل را ذخیره کنید و به مرحله بعدی بروید.
برای فعال کردن فایل تازه ایجاد شده، از ابزاری که همراه آپاچی ارائه میشود به نام a2ensite استفاده خواهیم کرد که a2ensiteمخفف «Apache 2 enable site» است و در این مورد، سایت را با novinhost.org فعال میکنیم:
a2ensite novinhost.org.conf

خروجی شامل یک نکته مفید است که به ما یادآوری میکند برای اعمال پیکربندی جدید، apache2 را مجدداً بارگذاری کنیم. بیایید این کار را انجام دهیم.
service apache2 reload
در صورتی که بارگذاری مجدد سرور جواب نداد، میتوانیم آپاچی را مجدداً راهاندازی کنیم.
service apache2 restart
اگر همه چیز خوب پیش برود، باید ببینید که یک نام میزبان جدید به /etc/hostsفایل اضافه میشود که شامل [ip_address] و [virtual_host_name] شما است:
۱۸۵.۱۵۰.۱۱۷.۲۲۲ withachcerryontop.tk
اکنون میتوانید نام میزبان جدید خود را به صورت محلی جستجو کرده و پاسخ را بررسی کنید.
curl novinhost.org

و با پرس و جو کردن آدرس IP خود، باید همان وبسایت قبلی را ببینید.
curl 185.150.117.222

اکنون میزبان مجازی پیشفرض روی «localhost» و میزبان مجازی جدید روی «novinhost.org» در حال اجرا هستند. اگر میخواهید میزبان مجازی جدید فقط روی آپاچی اجرا شود، میتوانید فایل پیکربندی پیشفرض را غیرفعال کرده و apache2 را مجدداً راهاندازی کنید.
a2dissiste 000-default.conf
service apache2 restart

پس از تغییرات، میبینیم که IP ما به تنها پیکربندی میزبان مجازی باقیمانده روی سرور که novinhost.org.conf است اشاره میکند و محتویات آن را نمایش میدهد.
curl 185.150.117.222

#برای جمع بندی #
پس از اتمام این راهنما، شما باید یک وب سرور آپاچی کاملاً فعال روی دستگاه خود داشته باشید و بتوانید آن را مطابق با نیازهای خود پیکربندی و استفاده کنید. با پیروی از دستورالعملهای قبلی، در صورت تمایل میتوانید وبسایتهای بیشتری (میزبانهای مجازی) به سرور اضافه کنید.
برای قابلیتهای پیشرفتهتر، همیشه میتوانید به مستندات رسمی در آدرس زیر مراجعه کنید: http://httpd.apache.org/docs/
همچنین مرور صفحه فرود پیشفرض آپاچی به عنوان یک یادآوری کوتاه و سریع مفید است:

