تنظیم Apache Virtual Hosts (هاست مجازی آپاچی) روی لینوکس اوبونتو

با سلام 🙂 در ادامه با آموزش مرحله به مرحله طریقه راه اندازی Apache Virtual Hosts روی Ubuntu 18.0.4 در خدمتتون هستم.

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

پیش نیاز اصلی نصب بودن آپاچی روی لینوکس شما هست. در این آموزش من قصد دارم دامین asemanexpress.ir رو بیارم بالا.

به ساختار زیر توجه کنید:

/var/www/
├── domain1.com
│   └── public_html

به ازای هر دامنه شما باید ساختاری مانند بالا داشته باشیم (در پایین مثال ساختاری سه دامنه آورده شده است)

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

پس برای هر دامنه ای که میخواهیم روی سرورمان میزبانی کنیم ما باید دایرکتوری جداگانه ای در دایرکتوری /var/www داشته باشیم. داخل هر دایرکتوری نیز دایرکتوری با نام public_html داریم که داخل آن فایل های وبسایت را نگهداری می کنیم.

قدم اول :

ساخت دایرکتوری برای دامنه جدیدمان، از این به بعد، مثالمان asemanexpress.ir می باشد:

sudo mkdir -p /var/www/asemanexpress.ir/public_html

برای تست کردن در آینده نیاز به یک فایل Html ساده نیز داریم. فایلرا با نام index.html و در مسیر زیر می سازیم :

nano /var/www/asemanexpress.ir/public_html/index.html

محتوای فایل را مانند زیر بسازید:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to AsemanExpress.ir</title>
  </head>
  <body>
    <h1>Success! AsemanExpress.ir now is run and acceptable!</h1>
  </body>
</html>

برای جلوگیری از پیشامد های permission ها، صاحب دایرکتوری اصلی دامنه را به کاربر آپاچی (www-data) تغییر می دهیم:

sudo chown -R www-data: /var/www/asemanexpress.ir

قدم دوم :

ساخت هاست های مجازی، بصورت پیشفرض در اوبونتو، فایل های کانفیگ هاست های مجازی در دایرکتوری /etc/apache2/sites-available ذخیره شده اند. و باید در دایرکتوری /etc/apache2/sites-enabled فعال شوند.

پس به دایرکتوری /etc/apache2/sites-available رفته و فایل asemanexpress.ir.conf را بسازید.

/sudo nano etc/apache2/sites-available/asemanexpress.ir.conf 

محتوای فایل را به صورت زیر بسازید:

<VirtualHost *:80>
    ServerName asemanexpress.ir
    ServerAlias www.asemanexpress.ir
    ServerAdmin webmaster@asemanexpress.ir
    DocumentRoot /var/www/asemanexpress.ir/public_html

    <Directory /var/www/asemanexpress.ir/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/asemanexpress.ir-error.log
    CustomLog ${APACHE_LOG_DIR}/asemanexpress.ir-access.log combined
</VirtualHost>

قدم سوم : فعال کردن هاست مجازی

برای enable کردن هاست مجازی از a2ensite می شود استفاده کرد:

sudo a2ensite asemanexpress.ir

روش دیگه به صورت دستی و Manual است :

sudo ln -s /etc/apache2/sites-available/asemanexpress.ir.conf /etc/apache2/sites-enabled/

خب حالا که هاست را فعال کردید، با دستور زیر چک کنید اروری نداشته باشید:

sudo apachectl configtest

خروجی باید به صورت زیر باشد:

Syntax OK

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

sudo systemctl restart apache2
http://asemanexpress.ir