آموزش نصب وب سرور آپاچی روی اوبونتو
در این مقاله به آموزش نصب آپاچی شامل بررسی پیشنیازها، تنظیم فایروال و مدیریت Apache میپردازیم و با فایلها و دایرکتوریهای مهم این وب سرور آشنا میشویم.
وب سرور آپاچی بهعنوان پرکاربردترین وبسرور در دنیا شناخته میشود. دلیل این محبوبیت، ویژگیها و قابلیتهای متعدد و قدرتمندی ازجمله ماژولهای پویا، پشتیبانی رسانهای قوی و امکان ادغام با سایر نرمافزارهای محبوب است. در این راهنما، علاوهبر آموزش نصب Apache روی سرور اوبونتو ۲۲.۰۴، با جزئیات بیشتری درباره مدیریت این وبسرور آشنا میشوید.
بیشتر بخوانید: وب سرور آپاچی چیست؟
پیشنیازهای نصب آپاچی روی اوبونتو
در این آموزش، نصب Apache روی Ubuntu ۲۲.۰۴ را بررسی میکنیم. قبل از بررسی مراحل نصب، لازم است تا پیشنیازهای استفاده از این وب سرور را بررسی کنید تا مطمئن شوید که سیستم شما قادر به پردازش آن خواهد بود. مهمترین الزامات نصب این وب سرور، شامل یک سرور اوبونتو ۲۲.۰۴ است. این سرور باید با یک یوزر non-root و با امتیازات sudo
به همراه یک فایروال فعال برای مسدود کردن پورتهای غیر ضروری، راهاندازی شده باشد. پس از بررسی این پیشنیازهای اولیه، بهعنوان یک کاربر non-root وارد حساب خود شده و مراحل زیر را دنبال کنید.
مرحله اول؛ نصب آپاچی
با استفاده از ابزارهای معمول مدیریت پکیجها میتوانید نصب Apache را انجام دهید؛ زیرا این وب سرور در مخزن نرمافزارهای پیشفرض اوبونتو قرار دارد. روند نصب را میتوانید با بروزرسانی فهرست پکیجهای بومی شروع کنید تا آخرین تغییرات بالادستی شروع شود. این کار با دستور زیر انجام میشود:
sudo apt update
حالا باید پکیج apache2
را ازطریق کد زیر نصب کنید:
sudo apt install apache2
حالا اگر نصب را تأیید کنید، apt
نصب آپاچی و تمام وابستههای موردنیاز آن را انجام میدهد.
مرحله دوم؛ تنظیم فایروال
قبل از آن که بخواهیم تست نصب Apache را انجام دهیم، باید تنظیمات فایروال را بهگونهای تغییر دهیم که امکان دسترسی خارجی به پورتهای پیشفرض وب فراهم شود. طبق دستورالعملهای پیشنیاز، باید فایروال UFW (ابزار ساده و پیشفرض اوبونتو برای پیکربندی فایروال) جهت محدود کردن دسترسی به سرور تنظیم شود. در فرایند نصب Apache، این وبسرور خود را با UFW رجیستر میکند تا چند پروفایل اپلیکیشن را فراهم نماید. پروفایلها میتوانند برای فعال یا غیرفعال کردن دسترسی آپاچی به فایروال کاربرد داشته باشند.
با اجرای دستور زیر، میتوانید پروفایلهای اپلیکیشن ufw
را لیست کنید:
sudo ufw app list
خروجی لیست پروفایلها مشابه نمونه زیر است:
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
همانطور که در خروجی میبینید، برای آپاچی سه پروفایل شامل موارد زیر موجود است؛
Apache
: برای باز کردن پورت80
(ترافیک وب عادی و رمزگذاری نشده)Apache Full
: برای باز کردن پورت80
(ترافیک وب عادی و رمزگذاری نشده) و پورت443
(ترافیک رمزگذاری شده TLS/SSL)Apache Secure
: برای باز کردن پورت443
(ترافیک رمزگذاری شده TLS/SSL)
بهتر است برای اجازه به ترافیک پیکربندی شده، محدودترین پروفایل را انتخاب کنید. درصورتی که هنوز برای سرور گواهی SSL نگرفتهاید، بهتر است تنها ترافیک در پورت 80
مجوز داشته باشد. این کار را ازطریق کد زیر انجام دهید:
sudo ufw allow 'Apache'
برای تأیید تغییرات، میتوانید ازطریق دستور زیر وضعیت را بررسی کنید:
sudo ufw status
خروجی که دریافت میکنید، مشابه نمونه زیر لیستی از ترافیک HTTP مجاز را نشان میدهد:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
همانطور که در خروجی میبینید، پروفایل برای مجوز دسترسی به وب سرور آپاچی فعال میشود.
مرحله سوم؛ بررسی وب سرور در فرایند نصب آپاچی
اوبونتو ۲۲.۰۴، این وب سرور را در انتهای مراحل نصب آپاچی راهاندازی میکند. با استفاده از دستور زیر میتوانید مطمئن شوید که سرویس فعال است:
sudo systemctl status apache2
خروجی به صورت زیر است:
Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Tue 2023-04-16 12:30:12 UTC; 41s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 5089 (apache2)
Tasks: 55 (limit: 1119)
Memory: 4.8M
CPU: 33ms
CGroup: /system.slice/apache2.service
├─5089 /usr/sbin/apache2 -k start
├─5091 /usr/sbin/apache2 -k start
└─5092 /usr/sbin/apache2 -k start
طبق همین خروجی، میبینیم که سرویس فعال شده است؛ اما همچنان بهترین راه برای تست عملکرد، این است که یک صفحه را از وبسرور درخواست کنید. یک راه برای تست اجرای درست نرم افزار، آن است که ازطریق آدرس IP به صفحه لندینگ پیشفرض آپاچی دسترسی پیدا کنید. چنانچه آدرس IP سرور را نمیدانید، میتوانید ازطریق خط فرمان آن را دریافت کنید. برای این کار، دستور زیر را در خط فرمان تایپ کنید:
hostname -I
با اجرای این دستور، چند آدرس مختلف دریافت کرده و میتوانید با وارد کردن هرکدام در مرورگر، ببینید که به درستی کار میکند یا خیر. روش دیگر پیدا کردن آدرس IP سرور، استفاده از ابزار رایگان icanhazip.com
است. برای استفاده از این وب سایت میتوانید دستور زیر را اجرا کنید:
curl -4 icanhazip.com
بعد از پیدا کردن آدرس IP سرور خود، برای تست نصب آپاچی این آدرس را در یک مرورگر وارد کنید:
http://your_server_ip
پس از وارد کردن آدرس IP، صفحهای که به صورت پیشفرض در اوبونتو ۲۲.۰۴ دریافت میکنید مشابه تصویر زیر است:
نمایش این صفحه، به این معنی است که نصب آپاچی به درستی انجام شده و این وب سرور کار میکند. در این صفحه میتوانید برخی از اطلاعات اولیه در مورد فایلهای مهم آپاچی و مکانهای دایرکتوری را بررسی کنید.
مرحله چهارم؛ مدیریت فرایندهای آپاچی
حالا که مراحل نصب Apache را تکمیل کرده و روند راهاندازی آن را تست کردیم، بیایید برخی از دستورات مدیریتی اولیه آن را با استفاده از systemctl
مرور کنیم. این دستورات شامل موارد زیر است.
با اجرای دستور زیر، میتوانید وب سرور خود را متوقف کنید:
sudo systemctl stop apache2
از دستور زیر برای راهاندازی وب سرور در صورت توقف استفاده کنید:
sudo systemctl start apache2
برای توقف و راهاندازی مجدد سرویس، از دستور زیر استفاده کنید:
sudo systemctl restart apache2
برای تغییرات ساده پیکربندی و بارگیری مجدد بدون قطع اتصالات، میتوانید از دستور زیر استفاده کنید:
sudo systemctl reload apache2
تنظیمات پیش فرض آپاچی به شکلی است که با بوت شدن سرور، به طور خودکار شروع به کار میکند. درصورتی که نمیخواهید این روند اجرا شود، با استفاده از دستور زیر این عملکرد را غیرفعال کنید:
sudo systemctl disable apache2
از دستور زیر میتوانید برای فعال کردن مجدد سرویس در زمان راهاندازی حین بوت استفاده کنید:
sudo systemctl enable apache2
با اجرای این دستور، در هر بار بوت شدن مجدد سرور آپاچی به طور خودکار راهاندازی میشود.
مرحله پنجم؛ راهاندازی هاستهای مجازی در فرایند نصب آپاچی (مرحله پیشنهادی)
این مرحله از نصب آپاچی را بهتر است تکمیل کنید. زمانی که از وب سرور آپاچی استفاده میکنید، میتوانید از هاستهای مجازی (مشابه بلاکهای سرور در NGINX) برای کپسوله کردن جزئیات پیکربندی و میزبانی دامنههای متعدد در یک سرور، استفاده کنید. در این آموزش، ما یک دامنه تحت عنوان your_domain را راهاندازی میکنیم، اما شما آن را با نام دامنه خود جایگزین کنید.
یک بلوک سرور به طور پیشفرض در آپاچی نصب شده روی اوبونتو ۲۲.۰۴ فعال است که برای ارائه اسناد از دایرکتوری /var/www/html
استفاده میکند. این پیکربندی برای یک وب سایت میتواند عملکردی عالی را ارائه دهد، اما میزبانی چندین وب سایت برای آن ممکن است سخت باشد. برای اصلاح این روند، به جای تغییر /var/www/html
، یک ساختار دایرکتوری در /var/www
برای یک سایت با دامنه your_domain ایجاد کرده و /var/www/html
را به عنوان دایرکتوری جایگزین پیشفرض در نظر میگیریم. چنانچه درخواست کلاینت با سایر وب سایتها مطابقت نداشته باشد، این جایگزین ارائه میشود.
برای ایجاد دایرکتوری برای دامنه your_domain، دستور زیر را اجرا کنید:
sudo mkdir /var/www/your_domain
حالا باید با متغیر محیطی USER$
، مالکیت دایرکتوری را به حساب کاربری که در آن لحظه از آن استفاده میکنید، اختصاص دهید:
sudo chown -R $USER:$USER /var/www/your_domain
چنانچه تابحال مقدار umask که مسئولیت تنظیم مجوزهای فایل پیشفرض را برعهده دارد تغییر نداده باشید، مجوزهای روت وب باید صحیح باشند. برای اطمینان از صحت مجوزها، و اطمینان از اینکه مالک مورد نظر، امکان خواندن، نوشتن و اجرای فایلها را دارد و سایر گروهها و نیز دیگران تنها میتوانند فایلها را خوانده یا اجرا کنند، از دستور زیر استفاده کنید:
sudo chmod -R 755 /var/www/your_domain
حالا باید با استفاده از nano
یا هر ویرایشگر دیگری که از آن استفاده میکنید، یک صفحه نمونه index.html
ایجاد کنید. این کار را با کد زیر انجام دهید:
sudo nano /var/www/your_domain/index.html
سپس نمونه HTML زیر را به آن اضافه کنید:
در نهایت، میتوانید فایل را ذخیره کرده و ببندید. درصورت استفاده از ویرایشگر nano
، میتوانید ذخیره و بستن فایل را با فشردن CTRL + X
و سپس Y
و ENTER
انجام دهید. برای ارائه این محتوا توسط آپاچی، به ایجاد یک فایل هاست مجازی با دستورالعملهای صحیح نیاز دارید. به جای آن که فایل پیکربندی پیشفرض در /etc/apache2/sites-available/000-default.conf
را تغییر دهید، میتوانید با استفاده از دستور زیر یک فایل جدید در /etc/apache2/sites-available/your_domain.conf
ایجاد کنید:
sudo nano /etc/apache2/sites-available/your_domain.conf
حالا باید بلوک پیکربندی زیر را اضافه کنید. این بلوک شبیه نمونه پیشفرض است، اما متناسب با دایرکتوری و نام دامنه جدید شما تغییر کرده است:
توجه کنید که در این کد، DocumentRoot
را به دایرکتوری جدید خود تغییر داده و ServerAdmin
را بروزرسانی کردهایم تا به ایمیلی که مدیر سایت با دامنه your_domain به آن دسترسی دارد، تغییر کند. همچنین دو دستورالعمل دیگر به این دستور اضافه کردهایم که شامل موارد زیر است:
-
ServerName
، برای ایجاد دامنه پایه مطابق با تعریف هاست مجازی -
ServerAlias
، برای تعریف نامهای دیگر مطابق با نام اصلی
پس از اتمام کار، میتوانید فایل را ذخیره کرده و ببندید.
در این مرحله، میتوانید با استفاده از دستور زیر فایل ایجاد شده را با ابزار a2ensite
فعال کنید:
sudo a2ensite your_domain.conf
حالا باید سایت پیشفرض تعریف شده در 000-default.conf
را غیرفعال کنید. این کار را ازطریق کد زیر انجام میدهیم:
sudo a2dissite 000-default.conf
در این مرحله میتوانید از دستور زیر استفاده کرده و خطاهای پیکربندی را تست کنید:
sudo apache2ctl configtest
خروجی باید به صورت نمونه زیر باشد:
Output
. . .
Syntax OK
در این مرحله از نصب آپاچی برای آن که مطمئن شوید تغییرات پیادهسازی میشود، باید وب سرور را ریستارت کنید. برای ریستارت کردن، از دستور زیر استفاده میکنیم:
sudo systemctl restart apache2
حالا آپاچی نام دامنه شما را ارائه میدهد. با رفتن به آدرس http://your_domain
که نام دامنه خود را در آن جایگذاری کردهاید، باید صفحهای مشابه تصویر زیر را ببینید.
بیشتر بخوانید: NGINX چیست؟
مرحله ششم؛ آشنایی با فایلها و دایرکتوریهای مهم آپاچی
تا این مرحله از آموزش نصب آپاچی با نحوه مدیریت سرویس آشنا شدیم. حالا وقت آن است تا برخی از فایلهای مهم و فهرستهای این وب سرور را بررسی کنیم.
محتوای آپاچی
برای محتوای آپاچی، یک فایل /var/www/html
وجود دارد. این محتوای وب به طور پیشفرض تنها از صفحه پیشفرض آپاچی تشکیل شده و از دایرکتوری /var/www/html
ارائه میشود. با تغییر فایلهای پیکربندی آپاچی میتوانید این فایل را تغییر دهید.
پیکربندی سرور
فایلها و دایرکتوریهای پیکربندی سرور که برای نصب آپاچی باید با آنها آشنا شوید، شامل موارد زیر است:
/etc/apache2
: این دایرکتوری پیکربندی آپاچی است که تمام فایلهای پیکربندی این وب سرور را در خود دارد.
/etc/apache2/apache2.conf
: فایل پیکربندی اصلی آپاچی است که متناسب با ایجاد تغییرات در پیکربندی کلی Apache میتوان آن را تغییر داد. همچنین این فایل مسئولیت لود شدن اغلب فایلهای دیگر در فهرست پیکربندی را برعهده دارد.
/etc/apache2/ports.conf
: وظیفه مشخص کردن پورتهای قابل شنیدن در آپاچی برعهده این فایل است. بهطور پیشفرض، پورت 80 انتخاب میشود و در صورت فعال کردن SSL، از پورت 443 هم استفاده میشود.
/etc/apache2/sites-available/
: این دایرکتوری، مکانی است که هاستهای مجازی هر سایت میتوانند در آن نگهداری شوند. آپاچی تنها در صورتی از فایلهای پیکربندی موجود در این دایرکتوری استفاده میکند که به دایرکتوریsites-enabled
لینک شده باشند. معمولاً تمام تنظیمات بلوک سرور در این دایرکتوری انجام شده و زمانی که با دستورa2ensite
به دایرکتوری دیگر لینک داده شود، فعال خواهد شد.
/etc/apache2/sites-enabled/
: هاستهای مجازی فعال در هر سایت، در این دایرکتوری ذخیره میشوند. معمولاً اینها زمانی ایجاد میشوند که به فایلهای پیکربندی موجود در فهرست سایتهای موجود باa2ensite
لینک داده شوند. آپاچی برای کامپایل کردن یک پیکربندی کامل، فایلهای پیکربندی و لینکهای موجود در این دایرکتوری را در زمان شروع یا بارگذاری مجدد، میخواند.
/etc/apache2/conf-enabled/
,/etc/apache2/conf-available/
: این دایرکتوریها یک رابطه مشابه با دایرکتوریهایsites-available
وsites-enabled
دارند. البته تفاوت آنها در این است که برای ذخیره قطعات پیکربندی که به یک هاست مجازی تعلق ندارند، استفاده میشوند. با استفاده از دستورa2enconf
میتوان فایلهای موجود در دایرکتوریconf-available
را فعال کرده و سپس با دستورa2disonf
آنها را غیرفعال کرد.
etc/apache2/mods-enabled/
,/etc/apache2/mods-available/
: ماژولهای موجود و فعال در این دایرکتوریها قرار میگیرند. فایلهایی که بهload.
ختم میشوند، قطعاتی برای بارگذاری ماژولهای خاص را دارند، در حالی که فایلهایconf.
شامل پیکربندی آن ماژولها هستند. میتوانید با استفاده از دستوراتa2enmod
وa2dismod
، ماژولها را فعال یا غیرفعال کنید.
گزارشهای سرور
گزارشهای سرور در آپاچی که باید بشناسید، عبارت است از:
/var/log/apache2/access.log
: به طور پیشفرضا تمامی درخواستها به وبسرور شما در این فایل لاگ ثبت میشوند؛ مگر اینکه پیکربندی آپاچی به گونهای تغییر داده شده باشد که خلاف این موضوع عمل کند./var/log/apache2/error.log
: به طور پیشفرض، تمامی خطاها در این فایل ذخیره میشوند. از دستورالعملLogLevel
برای تعیین مقدار جزئیات در گزارش خطاها استفاده میشود.
جمعبندی
در این مطلب مراحل و روند نصب آپاچی را بررسی کردیم. Apache یکی از محبوبترین وب سرورها است و با نصب آن، گزینههای متعددی برای نوع محتوایی که میتوانید ارائه دهید، در دسترس خواهید داشت.
با خرید سرور ابری زَس میتوانید آپاچی را روی سرور خود نصب و راهاندازی نمایید. علاوه بر این در صورت تمایل میتوانید این فرایند را به ابر زَس بسپارید تا تحت «سرویس مدیریت شده» روی سرور راهاندازی شده و به صورت آماده در اختیارتان قرار بگیرد.