مقالات

آموزش نصب وب سرور آپاچی روی اوبونتو

در این مقاله به آموزش نصب آپاچی شامل بررسی پیش‌نیازها، تنظیم فایروال و مدیریت 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 زیر را به آن اضافه کنید:

/var/www/your_domain/index.html
<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</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

حالا باید بلوک پیکربندی زیر را اضافه کنید. این بلوک شبیه نمونه پیش‌فرض است، اما متناسب با دایرکتوری و نام دامنه جدید شما تغییر کرده است:

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

توجه کنید که در این کد، 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 یکی از محبوب‌ترین وب سرورها است و با نصب آن، گزینه‌های متعددی برای نوع محتوایی که می‌توانید ارائه دهید، در دسترس خواهید داشت.

با خرید سرور ابری زَس می‌توانید آپاچی را روی سرور خود نصب و راه‌اندازی نمایید. علاوه بر این در صورت تمایل می‌توانید این فرایند را به ابر زَس بسپارید تا تحت «سرویس مدیریت شده» روی سرور راه‌اندازی شده و به صورت آماده در اختیارتان قرار بگیرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

دکمه بازگشت به بالا

دریافت سرویس تست رایگان

ارتباط با ابر زَس

تلفن:        91078149 –  021

ایمیل:       [email protected]