نحوه نصب وب سرور آپاچی (Apache) روی لینوکس اوبونتو 20.04

معرفی

وب سرور Apache HTTP پرکاربرد ترین وب سرور در جهان است. وب سرور آپاچی بسیاری از ویژگی های قدرتمند، از جمله ماژول های قابل بارگذاری پویا (dynamically loadable modules)، پشتیبانی قوی از رسانه و ادغام گسترده با سایر نرم افزار های محبوب را دارا می باشد.

در این آموزش، ما نحوه نصب وب سرور آپاچی (Apache) روی لینوکس اوبونتو 20.04 را توضیح خواهیم داد.

پیش نیازها

قبل از شروع این آموزش، باید مطمئن شوید که به عنوان یک کاربر با امتیازات sudo وارد سیستم شده اید.

علاوه بر این، شما باید فایروال را فعال نمایید تا از پورت های غیرضروری جلوگیری کنید. 

با دنبال کردن آموزش راه اندازی اولیه سرور برای اوبونتو 20.04، میتوانید نحوه پیکربندی حساب کاربری عادی و تنظیم فایروال برای سرور خود را یاد بگیرید.

هنگامی که یک حساب کاربری در دسترس دارید، برای شروع به عنوان کاربر غیر ریشه خود وارد شوید.

گام اول – نصب آپاچی (Apache)

آپاچی در منابع پیش فرض اوبونتو موجود است، امکان نصب آن با استفاده از ابزار های مرسوم مدیریت بسته را فراهم می کند.

با به روزرسانی فهرست بسته محلی (local package) شروع به کار میکنیم تا آخرین تغییرات را اعمال کند:

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 وجود دارد:

  • 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)

همانطور که در خروجی نشان داده شده است، پروفایل فعال شده است تا امکان دسترسی به وب سرور آپاچی Apache را فراهم کند.

گام سوم – بررسی کردن وب سرور

در پایان مراحل نصب، اوبونتو 20.04 آپاچی را راه اندازی میکند. وب سرور از قبل باید فعال و در حال اجرا باشد.

برای شروع چک کردن با systemd باید مطمئن شویم که سرویس در حال اجرا است:

sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 29435 (apache2)
      Tasks: 55 (limit: 1137)
     Memory: 8.0M
     CGroup: /system.slice/apache2.service
             ├─29435 /usr/sbin/apache2 -k start
             ├─29437 /usr/sbin/apache2 -k start
             └─29438 /usr/sbin/apache2 -k start

برای تایید عملکرد صحیح نرم افزار از طریق آدرس ip شما می توانید به صفحه فرود (Landing page) پیش فرض آپاچی دسترسی پیدا کنید. اگر شما آدرس ip سرور خود را نمی دانید، می توانید از چند روش مختلف استفاده کنید.

این را در خط فرمان (command prompt) سرور خود تایپ کنید:

hostname -I

چند آدرس جدا شده با فاصله دریافت خواهید کرد. میتوانید هر کدام را در مرورگر وب خود امتحان کنید تا از کار کردن آن مطمئن شوید.

گزینه دیگر استفاده از ابزار Icanhazip است که باید آدرس IP عمومی شماره به عنوان خوانده شده از مکان دیگری در اینترنت به شما ارائه دهد:

curl -4 icanhazip.com

وقتی آدرس IP سرور خود را دارید، آن را در نوار آدرس مرورگر خود وارد کنید:

http://your_server_ip

شما باید صفحه وب پیش فرض اوبونتو 20.04 آپاچی را مشاهده کنید:

این صفحه نشان می دهد که آپاچی به درستی کار می کند. همچنین شامل برخی اطلاعات اساسی در مورد پرونده های مهم آپاچی و مکان دایرکتوری است.

گام چهارم – مدیریت فرآیند آپاچی

اکنون که وب سرور خود را فعال و اجرا کرده اید، بیایید برخی از دستورات مدیریت پایه را با استفاده از 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

آپاچی اکنون باید به طور اتوماتیک هنگام راه اندازی مجدد سرویس فعال شود.

گام پنجم – تنظیم میزبانی هاست (Virtual Hosts)

هنگام استفاده از وب سرور آپاچی، می تواند از میزبانی هاست مجازی ( مشابه بلوک های سرور در Nginx) برای کپسول کردن جزئیات پیکر بندی و میزبانی بیش از یک دامنه از یک سرور منفرد استفاده کنید. ما دامنه ای به نام your domain راه اندازی خواهیم کرد، اما شما باید این دامنه را با نام دامنه خود جایگزین کنید. 

آپاچی در اوبونتو 20.04 به طور پیش فرض یک بلوک سرور فعال کرده است که برای ارائه استفاده از دایرکتوری /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 زیر را اضافه کنید: 

<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

پس از اتمام پرونده، آن را ذخیره کرده و ببینید.

برای اینکه آپاچی، این محتوا را ارائه دهد، لازم است یک فایل میزبان مجازی با دستورالعمل های صحیح ایجاد کنید. به جای اصلاح مستقیم فایل پیکربندی پیش فرض واقع در /etc/apache2/sites-available/000-default.conf ، بیاید در آن یک فایل جدید بسازیم /etc/apache2/sites-available/your_domain.conf:

sudo nano /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

برای اجرای تغییرات ، Apache را مجدداً راه اندازی کنید:

sudo systemctl restart apache2

آپاچی اکنون باید نام دامنه شما را ارائه دهد. با رفتن به http://your_domain ، جایی که باید چیزی شبیه به این را ببینید ، می توانید این را امتحان کنید.

گام ششم – آشنایی با فایل ها و راهنما های مهم آپاچی

اکنون که می دانید چگونه خود سرویس Apache را مدیریت کنید ، باید چند دقیقه وقت بگذارید تا با چند دایرکتوری و پرونده مهم آشنا شوید.

محتوا

  • var/www/html/

محتوای واقعی وب ، که به طور پیش فرض فقط از صفحه پیش فرض Apache که قبلاً مشاهده کرده اید تشکیل شده است ، از دایرکتوری var/www/html/ ارائه می شود. با تغییر در پرونده های پیکربندی Apache می توانید این مورد را تغییر دهید.

پیکربندی سرور

  • etc/apache2/: فهرست پیکربندی Apache. تمام پرونده های پیکربندی Apache در اینجا قرار دارند.
  • /etc/apache2/apache2.conf: پرونده اصلی پیکربندی Apache است. این را می توان برای ایجاد تغییر در پیکربندی جهانی Apache اصلاح کرد. این پرونده مسئول بارگیری بسیاری از پرونده های دیگر در فهرست پیکربندی است.
  • /etc/apache2/ports.conf: این فایل پورتهایی را که آپاچی گوش خواهد داد را مشخص می کند. به طور پیش فرض، Apache هنگام فعال بودن ماژولی که قابلیت های SSL را فعال می کند، روی پورت 80 گوش می کند و علاوه بر این، به پورت 443 گوش می دهد.
  • /etc/apache2/sites-available/: پوشه ای که می توان میزبانهای مجازی هر سایت را در آن ذخیره کرد. Apache از پرونده های پیکربندی موجود در این دایرکتوری استفاده نمی کند مگر اینکه به فهرست فعال شده سایتها مرتبط شود. به طور معمول ، تمام پیکربندی های بلوک سرور در این فهرست انجام می شود ، و سپس با پیوند دادن به پوشه دیگر با دستور a2ensite فعال می شود.
  • /etc/apache2/sites-enabled/: پوشه ای که میزبان های مجازی در هر سایت در آن فعال شده اند. به طور معمول، این موارد با پیوند دادن به پرونده های پیکربندی موجود در فهرست موجود در سایت ها با a2ensite ایجاد می شوند. Apache هنگام راه اندازی یا بارگیری مجدد، پرونده های پیکربندی و پیوندهای موجود در این فهرست را برای کامپایل پیکربندی کامل می خواند.
  • /etc/apache2/conf-available/ و /etc/apache2 /conf-enabled/: این دایرکتوری ها همان ارتباط دایرکتوری های سایت های موجود و سایت ها را دارند ، اما برای ذخیره قطعات پیکربندی که مربوط به میزبان مجازی پرونده های موجود در پوشه conf-available را می توان با دستور a2enconf فعال کرد و با دستور a2disconf غیرفعال کرد.
  • /etc/apache2/mods-available/ و /etc/apache2/mods-enabled/: این فهرست ها به ترتیب حاوی ماژول های موجود و فعال هستند. پرونده هایی که به .load ختم می شوند شامل قطعاتی برای بارگیری ماژول های خاص هستند ، در حالی که پرونده هایی که به .conf ختم میشوند حاوی پیکربندی آن ماژول ها هستند. با استفاده از دستور a2enmod و a2dismod می توان ماژول ها را فعال و غیرفعال کرد.

گزارش های سرور

  • /var/log/apache2/access.log: به طور پیش فرض ، هر درخواست از وب سرور شما در این پرونده ورود به سیستم ثبت می شود ، مگر اینکه Apache به گونه دیگری تنظیم شود.
  • /var/log/apache2/error.log: به طور پیش فرض ، تمام خطاها در این پرونده ثبت می شوند. دستورالعمل LogLevel در پیکربندی Apache مشخص می کند که چه مقدار جزئیات مربوط به گزارش خطاها باشد.

نتیجه

اکنون که وب سرور خود را نصب کرده اید ، گزینه های زیادی برای نوع محتوایی که می توانید ارائه دهید و فناوری هایی که می توانید برای ایجاد تجربه غنی تر استفاده کنید ، در اختیار شما قرار گرفته است.

منبع: ِDigital Ocean

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا