در این مقاله به آموزش نصب آپاچی شامل بررسی پیشنیازها، تنظیم فایروال و مدیریت Apache میپردازیم و با فایلها و دایرکتوریهای مهم این وب سرور آشنا میشویم.
وب سرور آپاچی بهعنوان پرکاربردترین وبسرور در دنیا شناخته میشود. دلیل این محبوبیت، ویژگیها و قابلیتهای متعدد و قدرتمندی ازجمله ماژولهای پویا، پشتیبانی رسانهای قوی و امکان ادغام با سایر نرمافزارهای محبوب است. در این راهنما، علاوهبر آموزش نصب Apache روی سرور اوبونتو ۲۲.۰۴، با جزئیات بیشتری درباره مدیریت این وبسرور آشنا میشوید.
جهت مطالعه بیشتر اینجا بخوانید: در این آموزش، نصب Apache روی Ubuntu ۲۲.۰۴ را بررسی میکنیم. قبل از بررسی مراحل نصب، لازم است تا پیشنیازهای استفاده از این وب سرور را بررسی کنید تا مطمئن شوید که سیستم شما قادر به پردازش آن خواهد بود. مهمترین الزامات نصب این وب سرور، شامل یک سرور اوبونتو ۲۲.۰۴ است. این سرور باید با یک یوزر non-root و با امتیازات با استفاده از ابزارهای معمول مدیریت پکیجها میتوانید نصب Apache را انجام دهید؛ زیرا این وب سرور در مخزن نرمافزارهای پیشفرض اوبونتو قرار دارد. روند نصب را میتوانید با بروزرسانی فهرست پکیجهای بومی شروع کنید تا آخرین تغییرات بالادستی شروع شود. این کار با دستور زیر انجام میشود: حالا باید پکیج حالا اگر نصب را تأیید کنید، قبل از آن که بخواهیم تست نصب Apache را انجام دهیم، باید تنظیمات فایروال را بهگونهای تغییر دهیم که امکان دسترسی خارجی به پورتهای پیشفرض وب فراهم شود. طبق دستورالعملهای پیشنیاز، باید فایروال UFW (ابزار ساده و پیشفرض اوبونتو برای پیکربندی فایروال) جهت محدود کردن دسترسی به سرور تنظیم شود. در فرایند نصب Apache، این وبسرور خود را با UFW رجیستر میکند تا چند پروفایل اپلیکیشن را فراهم نماید. پروفایلها میتوانند برای فعال یا غیرفعال کردن دسترسی آپاچی به فایروال کاربرد داشته باشند. با اجرای دستور زیر، میتوانید پروفایلهای اپلیکیشن خروجی لیست پروفایلها مشابه نمونه زیر است: همانطور که در خروجی میبینید، برای آپاچی سه پروفایل شامل موارد زیر موجود است؛ بهتر است برای اجازه به ترافیک پیکربندی شده، محدودترین پروفایل را انتخاب کنید. درصورتی که هنوز برای سرور گواهی SSL نگرفتهاید، بهتر است تنها ترافیک در پورت برای تأیید تغییرات، میتوانید ازطریق دستور زیر وضعیت را بررسی کنید: خروجی که دریافت میکنید، مشابه نمونه زیر لیستی از ترافیک HTTP مجاز را نشان میدهد: همانطور که در خروجی میبینید، پروفایل برای مجوز دسترسی به وب سرور آپاچی فعال میشود. اوبونتو ۲۲.۰۴، این وب سرور را در انتهای مراحل نصب آپاچی راهاندازی میکند. با استفاده از دستور زیر میتوانید مطمئن شوید که سرویس فعال است: خروجی به صورت زیر است: طبق همین خروجی، میبینیم که سرویس فعال شده است؛ اما همچنان بهترین راه برای تست عملکرد، این است که یک صفحه را از وبسرور درخواست کنید. یک راه برای تست اجرای درست نرم افزار، آن است که ازطریق آدرس IP به صفحه لندینگ پیشفرض آپاچی دسترسی پیدا کنید. چنانچه آدرس IP سرور را نمیدانید، میتوانید ازطریق خط فرمان آن را دریافت کنید. برای این کار، دستور زیر را در خط فرمان تایپ کنید: با اجرای این دستور، چند آدرس مختلف دریافت کرده و میتوانید با وارد کردن هرکدام در مرورگر، ببینید که به درستی کار میکند یا خیر. روش دیگر پیدا کردن آدرس IP سرور، استفاده از ابزار رایگان بعد از پیدا کردن آدرس IP سرور خود، برای تست نصب آپاچی این آدرس را در یک مرورگر وارد کنید: پس از وارد کردن آدرس IP، صفحهای که به صورت پیشفرض در اوبونتو ۲۲.۰۴ دریافت میکنید مشابه تصویر زیر است: نمایش این صفحه، به این معنی است که نصب آپاچی به درستی انجام شده و این وب سرور کار میکند. در این صفحه میتوانید برخی از اطلاعات اولیه در مورد فایلهای مهم آپاچی و مکانهای دایرکتوری را بررسی کنید. حالا که مراحل نصب Apache را تکمیل کرده و روند راهاندازی آن را تست کردیم، بیایید برخی از دستورات مدیریتی اولیه آن را با استفاده از با اجرای دستور زیر، میتوانید وب سرور خود را متوقف کنید: از دستور زیر برای راهاندازی وب سرور در صورت توقف استفاده کنید: برای توقف و راهاندازی مجدد سرویس، از دستور زیر استفاده کنید: برای تغییرات ساده پیکربندی و بارگیری مجدد بدون قطع اتصالات، میتوانید از دستور زیر استفاده کنید: تنظیمات پیش فرض آپاچی به شکلی است که با بوت شدن سرور، به طور خودکار شروع به کار میکند. درصورتی که نمیخواهید این روند اجرا شود، با استفاده از دستور زیر این عملکرد را غیرفعال کنید: از دستور زیر میتوانید برای فعال کردن مجدد سرویس در زمان راهاندازی حین بوت استفاده کنید: با اجرای این دستور، در هر بار بوت شدن مجدد سرور آپاچی به طور خودکار راهاندازی میشود. این مرحله از نصب آپاچی را بهتر است تکمیل کنید. زمانی که از وب سرور آپاچی استفاده میکنید، میتوانید از هاستهای مجازی (مشابه بلاکهای سرور در NGINX) برای کپسوله کردن جزئیات پیکربندی و میزبانی دامنههای متعدد در یک سرور، استفاده کنید. در این آموزش، ما یک دامنه تحت عنوان your_domain را راهاندازی میکنیم، اما شما آن را با نام دامنه خود جایگزین کنید. یک بلوک سرور به طور پیشفرض در آپاچی نصب شده روی اوبونتو ۲۲.۰۴ فعال است که برای ارائه اسناد از دایرکتوری برای ایجاد دایرکتوری برای دامنه your_domain، دستور زیر را اجرا کنید: حالا باید با متغیر محیطی چنانچه تابحال مقدار umask که مسئولیت تنظیم مجوزهای فایل پیشفرض را برعهده دارد تغییر نداده باشید، مجوزهای روت وب باید صحیح باشند. برای اطمینان از صحت مجوزها، و اطمینان از اینکه مالک مورد نظر، امکان خواندن، نوشتن و اجرای فایلها را دارد و سایر گروهها و نیز دیگران تنها میتوانند فایلها را خوانده یا اجرا کنند، از دستور زیر استفاده کنید: حالا باید با استفاده از سپس نمونه HTML زیر را به آن اضافه کنید: در نهایت، میتوانید فایل را ذخیره کرده و ببندید. درصورت استفاده از ویرایشگر حالا باید بلوک پیکربندی زیر را اضافه کنید. این بلوک شبیه نمونه پیشفرض است، اما متناسب با دایرکتوری و نام دامنه جدید شما تغییر کرده است: توجه کنید که در این کد، پس از اتمام کار، میتوانید فایل را ذخیره کرده و ببندید. در این مرحله، میتوانید با استفاده از دستور زیر فایل ایجاد شده را با ابزار حالا باید سایت پیشفرض تعریف شده در در این مرحله میتوانید از دستور زیر استفاده کرده و خطاهای پیکربندی را تست کنید: خروجی باید به صورت نمونه زیر باشد: در این مرحله از نصب آپاچی برای آن که مطمئن شوید تغییرات پیادهسازی میشود، باید وب سرور را ریستارت کنید. برای ریستارت کردن، از دستور زیر استفاده میکنیم: حالا آپاچی نام دامنه شما را ارائه میدهد. با رفتن به آدرس بیشتر بخوانید: NGINX چیست؟ تا این مرحله از آموزش نصب آپاچی با نحوه مدیریت سرویس آشنا شدیم. حالا وقت آن است تا برخی از فایلهای مهم و فهرستهای این وب سرور را بررسی کنیم. برای محتوای آپاچی، یک فایل فایلها و دایرکتوریهای پیکربندی سرور که برای نصب آپاچی باید با آنها آشنا شوید، شامل موارد زیر است: گزارشهای سرور در آپاچی که باید بشناسید، عبارت است از: در این مطلب مراحل و روند نصب آپاچی را بررسی کردیم. Apache یکی از محبوبترین وب سرورها است و با نصب آن، گزینههای متعددی برای نوع محتوایی که میتوانید ارائه دهید، در دسترس خواهید داشت. با خرید سرور ابری زَس میتوانید آپاچی را روی سرور خود نصب و راهاندازی نمایید. علاوه بر این در صورت تمایل میتوانید این فرایند را به ابر زَس بسپارید تا تحت «سرویس مدیریت شده» روی سرور راهاندازی شده و به صورت آماده در اختیارتان قرار بگیرد.پیشنیازهای نصب آپاچی روی اوبونتو
sudo
به همراه یک فایروال فعال برای مسدود کردن پورتهای غیر ضروری، راهاندازی شده باشد. پس از بررسی این پیشنیازهای اولیه، بهعنوان یک کاربر non-root وارد حساب خود شده و مراحل زیر را دنبال کنید.مرحله اول؛ نصب آپاچی
sudo apt update
apache2
را ازطریق کد زیر نصب کنید:sudo apt install apache2
apt
نصب آپاچی و تمام وابستههای موردنیاز آن را انجام میدهد.مرحله دوم؛ تنظیم فایروال
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)80
مجوز داشته باشد. این کار را ازطریق کد زیر انجام دهید:sudo ufw allow 'Apache'
sudo ufw status
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
hostname -I
icanhazip.com
است. برای استفاده از این وب سایت میتوانید دستور زیر را اجرا کنید:curl -4 icanhazip.com
http://your_server_ip
مرحله چهارم؛ مدیریت فرایندهای آپاچی
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
مرحله پنجم؛ راهاندازی هاستهای مجازی در فرایند نصب آپاچی (مرحله پیشنهادی)
/var/www/html
استفاده میکند. این پیکربندی برای یک وب سایت میتواند عملکردی عالی را ارائه دهد، اما میزبانی چندین وب سایت برای آن ممکن است سخت باشد. برای اصلاح این روند، به جای تغییر /var/www/html
، یک ساختار دایرکتوری در /var/www
برای یک سایت با دامنه your_domain ایجاد کرده و /var/www/html
را به عنوان دایرکتوری جایگزین پیشفرض در نظر میگیریم. چنانچه درخواست کلاینت با سایر وب سایتها مطابقت نداشته باشد، این جایگزین ارائه میشود.sudo mkdir /var/www/your_domain
USER$
، مالکیت دایرکتوری را به حساب کاربری که در آن لحظه از آن استفاده میکنید، اختصاص دهید:sudo chown -R $USER:$USER /var/www/your_domain
sudo chmod -R 755 /var/www/your_domain
nano
یا هر ویرایشگر دیگری که از آن استفاده میکنید، یک صفحه نمونه index.html
ایجاد کنید. این کار را با کد زیر انجام دهید:sudo nano /var/www/your_domain/index.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
که نام دامنه خود را در آن جایگذاری کردهاید، باید صفحهای مشابه تصویر زیر را ببینید.مرحله ششم؛ آشنایی با فایلها و دایرکتوریهای مهم آپاچی
محتوای آپاچی
/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
برای تعیین مقدار جزئیات در گزارش خطاها استفاده میشود.جمعبندی