Virtual Hossts یک دستورالعمل پیکربندی Apache است که به شما امکان می دهد بیش از یک وب سایت را روی یک سرور واحد اجرا کنید. با Virtual Hossts ، می توانید ریشه سند سایت (دایرکتوری حاوی پرونده های وب سایت) را مشخص کنید ، یک سیاست امنیتی جداگانه برای هر سایت ایجاد کنید ، از گواهینامه های SSL مختلف و موارد دیگر استفاده کنید. در این مقاله ، نحوه تنظیم Virtual Hossts Apache در Ubuntu 20.04 توضیح داده شده است. با ما در شتابان هاست همراه باشيد.
پیش نیازها
اطمینان حاصل کنید که قبل از شروع كردن شرایط زیر را رعایت کرده اید:
- یک یا چند نام دامنه که به IP سرور عمومی شما اشاره می کنند.
- آپاچی روی سیستم اوبونتو نصب شده است.
- شما به عنوان root یا کاربر دارای امتیازات sudo وارد شده اید.
1) ایجاد ساختار دایرکتوری
root دایرکتوری است که فایل های وب سایت برای نام دامنه در پاسخ به درخواست ها در آن ذخیره و سرو می شوند. می توانید سند root را در هر مکانی که می خواهید تنظیم کنید؛ در این مثال از ساختار فهرست زیر استفاده خواهیم کرد:
/var/www/ ├── domain1.com │ └── public_html ├── domain2.com │ └── public_html
هر دامنه ای که در سرور هاست باشد ، سند root خود را بر روی / var / www / <domain_name> / public_html تنظیم مي کند.
با ایجاد فهرست اصلی برای دامنه شروع کنید:
sudo mkdir -p /var/www/domain1.com/public_html
ما همچنین یک فایل index.html را در فهرست سند root دامنه ایجاد خواهیم کرد که هنگام بازدید از دامنه در مرورگر شما نشان داده می شود:
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Welcome to domain1.com</title> </head> <body> <h1>Success! domain1.com home page!</h1> </body>
</html>
از آنجا که دستورات فوق به عنوان کاربر sudo اجرا می شوند ، پرونده ها و دایرکتوری های تازه ایجاد شده متعلق به root هستند. برای جلوگیری از هرگونه مجوز ، مالکیت دایرکتوری root و کلیه پرونده های موجود در فهرست را به کاربر apache تغییر دهید:
sudo chown -R www-data: /var/www/domain1.com
2) ایجاد Virtual Hossts
در سیستم های اوبونتو ، پرونده های پیکربندی Virtual Hossts در فهرست / etc / apache2 / سایت های موجود قرار دارند. آنها را می توان با ایجاد پیوندهای نمادین به فهرست / etc / apache2 / سایت های فعال شده از سایت ، که آپاچی در هنگام راه اندازی خوانده است ، فعال کنید.
ویرایشگر متن مورد نظر خود را باز کنید و فایل پیکربندی اولیه Virtual Hosst زیر را ایجاد کنید:
<VirtualHost *:80> ServerName domain1.com ServerAlias www.domain1.com ServerAdmin webmaster@domain1.com DocumentRoot /var/www/domain1.com/public_html
<Directory /var/www/domain1.com/public_html> Options -Indexes +FollowSymLinks AllowOverride All </Directory>
ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost> - ServerName : دامنه ای که باید برای این پیکربندی هاست مجازی مطابقت داشته باشد. این باید نام دامنه شما باشد.
- ServerAlias : تمام دامنه ها یا زیر دامنه های دیگر که باید برای این Virtual Hosst مانند زیر دامنه www مطابقت داشته باشند.
- DocumentRoot : دایرکتوری که Apache از آن به پرونده های دامنه سرویس می دهد.
- Options : این بخشنامه کنترل می کند که کدام ویژگی های سرور در یک فهرست خاص وجود دارد.
- -Indexes : از لیست دایرکتوری ها جلوگیری می کند.
- FollowSymLinks : وقتی این گزینه فعال شود ، Apache پیوندهای نمادین را دنبال می کند.
- AllowOverride : مشخص می کند کدام بخشنامه اعلام شده در پرونده .htaccess می تواند دستورالعمل های پیکربندی را نادیده بگیرد.
ErrorLog,CustomLog:موقعیت مکانی برای پرونده های log را مشخص می کند.
می توانید پرونده پیکربندی را مطابق دلخواه خود نامگذاری کنید ، اما بهترین روش استفاده از نام دامنه به عنوان نام فایل پیکربندی Virtual Hossts است.
برای فعال کردن پرونده Virtual Hossts جدید ، از اسکریپت a2ensite استفاده کنید که یک پیوند نمادین از پرونده Virtual Hosst به فهرست دایرکتوری سایت ها ایجاد می کند:
sudo a2ensite domain1.com
گزینه دیگر این است که بطور دستی مانند سیم کارت مانند شکل زیر ایجاد کنید:
sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/
پس از اتمام ، برای جلوگيري از هرگونه خطاي احتمالي عبارت را تايپ كنيد:
sudo apachectl configtest
در صورت عدم خطا ، خروجی زیر را مشاهده خواهید کرد:
Syntax OK
برای اعمال تغییرات ، سرویس Apache را مجدداً راه اندازی کنید:
sudo systemctl restart apache2
در آخر برای تأیید اینکه همه چیز مطابق آنچه انتظار می رود کار مي کند ، http://domain1.com را در مرورگر خود باز کنید و محتوای صفحه index.html را مشاهده خواهید کرد.
شما آموخته اید که چگونه یک Virtual Hosst در apache ایجاد کنید تا هاست چندین دامنه بر روی یک سرور Ubuntu باشد. ما را در شتابان هاست دنبال كنيد.
