Apache یکی از پرطرفدارترین وب سرورها در سراسر جهان است. Apache یک ابزار متن باز و کراس پلتفرم است که درصد بسیار بالایی از وب سایتهای اینترنتی از آن استفاده می کنند. آپاچی از ویژگی های بسیار قدرتمندی بهره می برد که می توان با اضافه کردن ماژولهایی آنها را گسترش نیز داد.
در این مقاله قصد داریم توضیحی درباره ی نحوه نصب و مدیریت وب سرورهای آپاچی روی Ubuntu 20.04 خدمت شما ارائه کنیم. با ما همراه باشید...
پیش نیازها
پیش از شروع آموزش، از لاگین شدن در سرور با دسترسی root اطمینان حاصل کنید.
نصب Apache
آپاچی در مخازن پیش فرض ابونتو قرار گرفته است. برای نصب آن نیز مراحل بسیار ساده ای را پشت سر خواهیم گذاشت.
بر روی سیستم های ابونتو و دبیان، پکیج آپاچی و سرویس آن با نام apache2 شناخته می شود.
sudo apt update
sudo apt install apache2
پس از اتمام پروسه ی نصب، سرویس آپاچی به صورت خودکار شروع به کار خواهد کرد.
همچنین می توانید با دستور زیر از اجرای این سرویس اطمینان حاصل کنید:
sudo systemctl status apache2
خروجی دستور باید به شما اعلام کند که سرویس در حال اجراست و برای شروع به کار پس از بوت شدن سیستم نیز فعال شده است:
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-08-09 19:28:40 UTC; 3min ago
تا اینجا نصب Apache روی Ubuntu 20.04 انجام شد. حال به سراغ استفاده از آن خواهیم رفت.
باز کردن پورتهای HTTPS و HTTP
آپاچی روی پورت های ۸۰ و ۴۴۳ عمل listening یا شنیدن را انجام می دهد. پس باید پورتهای مذکور را روی فایروال باز کنید تا وب سرور از طریق اینترنت در دسترس باشد.
با فرض اینکه شما از فایروال UFW استفاده می کنید، می توانید عمل باز کردن پورتها را به وسیله ی پروفایل ‘Apache Full’ که شامل دستورات مورد نظر برای هر دو پورت است به انجام برسانید:
sudo ufw allow 'Apache Full'
با دستور زیر از تغییرات اطمینان حاصل کنید:
sudo ufw status
Status: active To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Apache Full ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
اطمینان از نصب Apache
برای اینکه از نصب درست آپاچی اطمینان حاصل کنید، مرورگر خود را باز کرده و آدرس IP سرور خود را وارد کنید. سپس صفحه ی پیشفرض خوش آمد Ubuntu 20.04 آپاچی را مشاهده خواهید کرد که همانند عکس زیر خواهد بود:
این صفحه شامل برخی اطلاعات اولیه درباره ی فایلهای تنظیمات، اسکریپتهای کمکی و محل های مختلف فایلهای آپاچی است.
راه اندازی یک هاست مجازی
Virtual Host به یک سری از تنظیمات راهنما در آپاچی گفته می شود که اجازه ی راه اندازی بیش از یک وب سایت روی یک سرور را برای شما فراهم می کند. به طور معمول هر هاست مجازی، نماینده ی یک وب سایت است.
آپاچی به صورت پیشفرض با یک هاست مجازی فعال شروع به کار می کند. تمامی دامنه هایی که به آدرس IP سرور اشاره می کنند با هاست مجازی پیش فرض همخوانی خواهند داشت. در صورتی که قصد میزبانی یک وبسایت منفرد را داشته باشید می توانید محتوای آن را در آدرس /var/www/html قرار دهید و فایل تنظیمات هاست مجازی را که در آدرس:
/etc/apache2/sites-enabled/000-default.conf
موجود است را ویرایش کنید.
در صورتی که قصد میزبانی چند وبسایت را دارید، می بایست برای هر سایت یک تنظیمات هاست مجازی ایجاد کنید. در توضیحات پیش رو قصد داریم یک دامنه با نام “example.com” را راه اندازی کنیم. شما می توانید نام آن را با نام دامنه خود جایگزین کنید.
قدم اول در این کار ساخت دایرکتوری root برای اسناد وبسایت است که فایلهای سایت برای نام دامنه ی مورد نظر در آن ذخیره می شود و همچنین به درخواست های ارسالی پاسخ می دهد. دستور زیر را به منظور ساخت دایرکتوری مورد نظر وارد کنید:
sudo mkdir -p /var/www/example.com
به منظور آزمایش، یک فایل index.html ایجاد کرده و آن را داخل آدرس root اسناد دامنه مورد نظر قرار می دهیم:
/var/www/example.com/index.html
Success! example.com home page!
فایل را ذخیره کرده و از آن خارج شوید.
برای جلوگیری از مشکلات دسترسی، محل ذخیره ی root اسناد دامنه را به دایرکتوری کاربر در آپاچی (www-data) تغییر دهید:
sudo chown -R www-data: /var/www/example.com
مرحله ی بعدی ساخت تنظیمات هاست مجازی برای دامنه “example.com” است. بهترین تمرین برای اینکار قرار دادن هر فایل تنظیمات vhost در فایلی جداگانه است.
فایلهای vhost آپاچی در آدرس /etc/apache2/sites-available ذخیره شده اند. استاندارد نام گذاری محل ذخیره نیز بسته به نام دامنه ی آن فایل است.
/etc/apache2/sites-available/example.com.conf
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com/public_html
example.com="" public_html="" var="" www=""
Options -Indexes +FollowSymLinks
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
آپاچی قادر به خواندن فایل کانفیگ که در دایرکتوری /etc/apache2/sites-available وجود دارند نیست مگر اینکه آنها به دایرکتوری /etc/apache2/sites-enabled لینک شده باشند.
برای فعال سازی تنظیمات هاست مجازی، به سراغ ساخت یک لینک سمبلیک به وسیله ی ابزار a2ensite می رویم:
sudo a2ensite example.com
برای آزمایش تنظیمات به منظور هرگونه خطای syntax دستور زیر را وارد می کنیم:
sudo apachectl configtest
در صورتی که خطایی وجود نداشت خروجی زیر را مشاهده خواهید کرد:
Syntax OK
نیاز است که سرویس آپاچی را restart کنید تا تغییرات اعمال شود:
sudo systemctl restart apache2
در آخر برای تایید کارکرد همه ی موارد، آدرس http://example.com را در مرورگر خود باز کنید. پس از آن پیام زیر را مشاهده خواهید کرد:
ممنون از اینکه با ما همراه بودید
نظرتون برامون مهمه شما اولین نظر رو بنویسید