مقدمه:

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

پیش نیاز ها :

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

sudo yum -y install httpd

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

sudo systemctl enable httpd.service

مرحله اول – ساختن یک ساختار در دایرکتوری

در داخل هر یک از این فهرست ها ، ما یک دایرکتوری public_html ایجاد خواهیم کرد که پرونده های واقعی ما را در خود نگه می دارد. این به ما برخی از انعطاف پذیری و قابلیت در میزبانی ما را می دهد.
ما می توانیم این دایرکتوری ها را با استفاده از دستور mkdir ایجاد کنیم (با یک آپشن p- که به ما این امکان را می دهد که یک پوشه با یک پوشه تو در تو ایجاد کنیم):

sudo mkdir -p /var/www/example.com/public_htmlsudo mkdir -p /var/www/example2.com/public_html

نکته :
به یاد داشته باشید که قسمت های قرمز نشان دهنده نام دامنه هایی است که می خواهیم از VPS خود ارائه دهیم.

مرحله دوم – اعطای دسترسی به دایرکتوری ها

ما اکنون ساختار دایرکتوری پرونده های خود را داریم ، اما آنها متعلق به کاربر های اصلی ما هستند.
اگر می خواهیم کاربران عادی ما بتوانند پرونده ها را در فهرست وب ما تغییر دهدند ، می توانیم سطح دسترسی را با chown تغییر دهیم:

sudo chown -R $USER:$USER /var/www/example.com/public_html

sudo chown -R $USER:$USER /var/www/example2.com/public_html

 منظور ما از متغیر $ USER کاربری را که در حال حاضر به سیستم وارد شده است راکه در حال اجرای ارسال کامند میباشد را نشان میدهد. با این کار ، کاربر عادی ما اکنون دارای زیر شاخه های public_html است که در آن ما مطالب خود را ذخیره خواهیم کرد.
همچنین باید اطمینان حاصل کنیم که دسترسی خواندن به فهرست عمومی وب و همه پرونده ها و دایرکتوری های داخلی مجاز است ، نیاز است که ما مجوزهای یا دسترسی های خود را کمی تغییر دهیم تا صفحات به درستی ارائه شوند:

sudo chmod -R 755 /var/www

وب سرور شما اکنون باید مجوزهای لازم برای ارائه محتوا را داشته باشد و کاربر شما باید قادر به ایجاد محتوا در پوشه های مناسب باشد.

مرحله سوم – ایجاد صفحات نمایشی برای هر میزبان مجازی

اکنون که ساختار دایرکتوری خود را آماده کرده ایم ، باید محتوایی برای ارائه ایجاد کنیم. از آنجا که این فقط برای نمایش و آزمایش است ، صفحات ما بسیار ساده خواهند بود. ما فقط می خواهیم برای هر سایتی یک صفحه index.html ایجاد کنیم که آن دامنه خاص را مشخص کند.
بیایید با example.com شروع کنیم. می توانیم با تایپ کردن یک فایل index.html را در ویرایشگر خود باز کنیم.

nano /var/www/example.com/public_html/index.html
 در این فایل ، یک سند HTML ساده ایجاد کنید که سایتی را نشان دهد که صفحه به آن متصل شده است. برای این راهنما ، پرونده دامنه اول ما به شکل زیر است :
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com virtual host is working!</h1>
</body>
</html>
پس از اتمام پرونده ، آن را ذخیره کرده و ببندید.
 می توانیم با تایپ کردن این فایل ، این فایل را کپی کنیم تا به عنوان الگوی index.html سایت دوم خود استفاده کنیم.

مرحله چهارم – ایجاد پرونده های میزبان مجازی جدید

فایلهای میزبان مجازی همان مواردی هستند که پیکربندی سایتهای جداگانه ما را مشخص می کنند و نحوه پاسخگویی وب سرور Apache به درخواستهای دامنه مختلف را تعیین می کنند.

برای شروع ، ما باید آن دایرکتوری را که هاست های مجازی ما در آن ذخیره می شود و همچنین دایرکتوری که به Apache می گوید یک هاست مجازی آماده ارائه خدمات به بازدیدکنندگان است ، تنظیم کنیم. Sites-Available در دایرکتوری ها کلیه سایت های میزبان مجازی ما را نگه می دارد ، در حالی که sites-enabled سایت ها پیوندهای آماده سرویس دهی را در خود نگه می دارد. با کامند های زیر می توانیم هر دو فهرست را ایجاد کنیم:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
توجه: این طرح فهرست توسط منتشر کنندگان سیستم عامل های دبیان معرفی شده است ، اما ما آن را در اینجا برای انعطاف پذیری بیشتر در مدیریت هاست های مجازی خود قرار داده ایم (زیرا فعال کردن و غیرفعال کردن موقت هاست های مجازی از این طریق آسان تر است)
 باید به  وب سرور Apache بگوییم که در فهرست راهنمای sites-enabled ها به دنبال میزبانهای مجازی بگردد. برای انجام این کار ، ما فایل پیکربندی اصلی Apache را ویرایش کرده و یک خط اضافه می کنیم که یک فهرست اختیاری را برای پرونده های پیکربندی اضافی اعلام می کند:
sudo nano /etc/httpd/conf/httpd.conf
این خط را به انتهای پرونده اضافه کنید:
IncludeOptional sites-enabled/*.conf
پس از اتمام کار ، فایل را ذخیره و ببندید. اکنون آماده ایجاد اولین پرونده میزبان مجازی هستیم.
اولین فایل هاست مجازی را میسازیم :
با باز کردن فایل یا پوشه جدید در ویرایشگر خود با سطح دسترسی root شروع کنید:
sudo nano /etc/httpd/sites-available/example.com.conf
 توجه: با توجه به کانفیگ هایی که توضیح دادیم ، تمام فایل های هاست مجازی باید به .conf ختم شوند.
ابتدا با ایجاد یک جفت tag که محتوا را به عنوان هاست مجازی که در پورت ۸۰ (درگاه پیش فرض HTTP) گوش می دهد ، تعیین کنید:

<VirtualHost *:80>

</VirtualHost>
در ادامه نام اصلی سرور ، www.example.com را اعلام خواهیم کرد. ما همچنین یک نام مستعار سرور برای اشاره به example.com خواهیم ساخت ، به طوری که درخواست های www.example.com و example.com همان محتوا را ارائه می دهند:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
</VirtualHost>
توجه: برای اینکه نسخه www دامنه به درستی کار کند ، پیکربندی DNS دامنه به یک رکورد A یا CNAME نیاز دارد که درخواست های www را به IP سرور هدایت کند. یک رکورد wildcard (*) نیز کار خواهد کرد. برای کسب اطلاعات بیشتر در مورد نحوه کانفیگ DNS ، به راهنمای تنظیم نام میزبان ما مراجعه کنید.
 درپایان ما با اشاره به فهرست اصلی داکیومنت وب قابل دسترسی عمومی به پایان کانفیگ خود  خواهیم رسید.همچنین به Apache می گوییم که برای ذخیره این خطاها و ثبت گزارش های مربوط به این سایت خاص ، کجا ذخیره شود:

<VirtualHost *:80>

ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined
</VirtualHost>
پس از پایان نوشتن این موارد ، می توانید پرونده را ذخیره و ببندید.

اولین هاست مجازی را کپی کرده و  دامنه های اضافی را customize  کنید.
اکنون که اولین پرونده هاست مجازی خود را ساختیم ، می توانیم با کپی کردن آن فایل و تنظیم آن در صورت لزوم ، پرونده دوم خود را ایجاد کنیم.

برای کپی کردن آن با cp شروع کنید:

sudo cp /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-available/example2.com.conf
فایل جدید را با سطح دسترسی root در ویرایشگر متن خود باز کنید:
sudo nano /etc/httpd/sites-available/example2.com.conf

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

<VirtualHost *:80>
ServerName www.example2.com
DocumentRoot /var/www/example2.com/public_html
ServerAlias example2.com
ErrorLog /var/www/example2.com/error.log
CustomLog /var/www/example2.com/requests.log combined
</VirtualHost>

پس از انجام این تغییرات ، می توانید فایل را ذخیره و ببندید .
مرحله پنجم – فایل های هاست مجازی جدید را فعال کنید
اکنون که فایل های هاست های مجازی خود را ایجاد کرده ایم ، باید آنها را فعال کنیم تا Apache بداند که آنها را به بازدید کنندگان ارائه می دهد. برای انجام این کار ، می توانیم برای هر هاست مجازی یک پیوند نمایشی در فهرست فعال شده سایت ها ایجاد کنیم:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
sudo ln -s /etc/httpd/sites-available/example2.com.conf /etc/httpd/sites-enabled/example2.com.conf
پس از پایان کار ، Apache را مجدداً راه اندازی کنید تا این تغییرات اعمال شود:
sudo apachectl restart

مرحله ششم – تنظیم فایل میزبان locally (اختیاری)

اگر برای آزمایش این روش از دامنه های نمونه به جای دامنه های واقعی استفاده کرده اید ، با اصلاح موقت پرونده هاست ها در سرور local ، می توانید عملکرد میزبانهای مجازی خود را نیز آزمایش کنید. با این کار اگر درخواستی برای دامنه هایی که کانفیگ کرده اید به سمت سرور بیاید وب سرویس آنها را به سمت سرور VPS خود هدایت می کنید ، دقیقاً مانند سیستم DNS اگر از دامنه های ثبت شده استفاده می کنید. اگرچه این فقط از طریق کامپیوتر شما کار می کند و به سادگی برای آزمایش استفاده می شود.
توجه: اطمینان حاصل کنید که برای این مراحل بر روی سرور های local  خود کار می کنید و نه سرور VPS. شما نیاز دارید که یوزر و پسورد یوزر روت سرور را داشته باشید.
اگر از رایانه های Mac یا Linux استفاده می کنید ، با تایپ کردن:

sudo nano /etc/hosts

 جزئیاتی که باید اضافه کنید آدرس IP عمومی VPS شما است و بعلاوه آن دامنه ای که می خواهید برای رسیدن به آن VPS استفاده کنید:


۱۲۷.۰.۰.۱ localhost
۱۲۷.۰.۱.۱ guest-desktop
server_ip_address example.com
server_ip_address example2.com

با این کار هر درخواستی برای مثال com. و example2.com روی سرور local ما هدایت می شود و آنها را به server_ip_address به سرور ما ارسال می کنید.
مرحله هفتم – نتایج خود را آزمایش کنید
اکنون که هاست مجازی خود را کانفیگ کرده اید ، می توانید با رفتن به دامنه هایی که در مرورگر وب خود کانفیگ کرده اید ، تنظیمات خود را به راحتی آزمایش کنید:
در مرورگر خود ادرس زیر را وارد کنید:

http://example.com

شما باید صفحه ای را ببینید که به این شکل است:

به همین ترتیب ، اگر از دامنه های دیگر خود بازدید کنید ، پرونده هایی را که برای آنها ایجاد کرده اید مشاهده خواهید کرد.

اشتراک گذاری