وب سرور آپاچی یکی از محبوب ترین وب سرور ها در اینترنت است که بیش از ۵۰ درصد وب سایت های فعال در اینترنت را شامل می شود و بسیار قدرتمند و انعطاف پذیر است.Apache عملکرد و اجزای خود را به واحد های فردی تقسیم میکند که می تواند مستقل و سفارشی شود. واحد اصلی که یک سایت یا دامنه خاص را تولید می کند یک Virtual Host است.
این تقسیمات به مدیران اجازه می دهد که با استفاده از یک مکانیزم تطبیق بتوانند از یک سرور و IP برای میزبانی بیش از یک سایت استفاده کنند.
هر دامنه ای که پیکربندی یا کانفیگ شده است این قابلیت را دارد که بازدید کننده را به یک دایرکتوری که اطلاعات سایت را نگهداری می کند، هدایت کند. بازدید کننده متوجه نمی شود که این سرور میزبان سایت های دیگری نیز هست. در تعداد دامنه میزبانی شده از نظر نرم افزاری محدودیتی وجود ندارد و تا حدی که سرور پاسخگو باشد می توان دامنه اضافه کرد.
در این آموزش ما به شما نشان خواهیم داد که چگونه محتوای مختلف را به بازدید کننده های مختلف بسته به دامنه هایی که وارد می کنند، نشان دهید.
قبل از شروع آموزش باید یک کاربر غیر root ایجاد کنید.
همچنین باید آپاچی را بر روی سرور خود نصب کنید.
برای نصب وب سرور آپاچی در اوبونتو از دستورات زیر استفاده کنید.
sudo apt-get update
sudo apt-get install apache2
و برای نصب روی CentOs از این دستورات استفاده کنید.
yum install httpd
بعد از نصب سرویس آپاچی را ری استارت کنید.
sudo service apache2 restart
هدف: ایجاد هاست مجازی برای دامنه های Example.com , Test.com است.
اولین قدم ایجاد یک ساختار دایرکتوری برای نگهداری اطلاعات سایت برای نمایش به بازدیدکنندگان است.
دایرکتوری root (دایرکتوری سطح بالا که آپاچی برای دسترسی به اطلاعات سایت ابتدا از اینجا شروع به جست و جوی اطلاعات می کند) در دایرکتوری(آدرس) /var/www/ قرار دارد و ما برای ساخت هر هاست مجازی برای هر سایت در این مکان یک دایرکتوری ایجاد می کنیم.
در هریک از این دایرکتوری ها یک زیر دایرکتوری به نام public_html ایجاد می کنیم که محتوای اصلی سایت ما در این مکان قرار می گیرد. این مسأله انعطاف پذیری بیشتری به هاست ما می دهد.
به عنوان مثال برای سایت های معرفی شده با این دستور دایرکتوری public_html ایجاد می کنیم.
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
قسمت های قرمز نمایانگر نام دامنه هایی است که می خواهیم با VPS به آنها سرویس دهی کنیم دهیم.
اکنون ما دایرکتوری های مورد نیاز را تولید کرده ایم اما تنها توسط کاربر روت می توان آن ها را مدیریت کرد.
اگر بخواهیم کاربر ما بتواند فایل های خود را مدیریت کند باید به آن ها دسترسی لازم برای انجام این کار به آن بدهیم:
sudo chown -R $USER:$USER /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html
متغیر User$ ارزش(value) که کاربر برای مرود به سیستم از آن استفاده می کند در خود نگهداری می کند. با انجام این کار کاربر معمولی ما دارای زیرشاخه ی public_html است و می تواند محتوای سایت را در آن دخیره کند.
همچنین ما باید مجوزهای دسترسی داریکتوری عمومی وب را نیز تغییر دهیم و به آن اجازه ی خواندن بدهیم.
sudo chmod -R 755 /var/www
وب سرور باید مجوز لازم برای ارائه محتوا و خدمات داشته باشد و همچنین کاربر نیز باید بتواند مطالب را در پوشه های لازم ایجاد و ذخیره کند.
بعد از ایجاد دایرکتوری ما نیاز به محتوا برای نمایش به بازدیدکنندگان داریم. حال می توانید در این مرحله یک محتوای ساده ایجاد کنید یا اگر محتوای سایت به صورت آماده دارید داخل دایرکتوری ها انتقال دهید و از این مرحله گذر کنید.
با Example.com شروع میکنیم و در در داخل دایرکتوری public_html آن یک صفحه وب به نام index.html ایجاد می کنیم و با ویرایشگر آن را باز می کنیم.
زمانی که قصد ویرایش یک فایل با دستور nano را دارید، در صورتی که فایل مورد نظر موجود نباشد، توسط ویرایشگر nano ایجاد می شود و فرصت ویرایش به شما داده می شود.
nano /var/www/example.com/public_html/index.html
اطلاعات زیر را برای ساخت صفحه نمایشی در آن وارد کنید.
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The Example.com virtual host is working!</h1>
</body>
</html>
فایل مورد نظر را ذخیره کنید (Ctrl+O) و ببندید(Ctrl+X).
با استفاده از همین روش برای هاست دوم نیز یک فایل به همین شکل بسازید. هم در آدرس ویرایشگر و هم در کد های HTML به جای Example.com کلمه Test.com را جایگزین نمایید.
فایل های میزبان مجازی فایل هایی هستند که پیکربندی اصلی میزبان مجازی را مشخص می کنند به نحوی که وب سرور آپاچی چگونه به درخواست های مختلف دامنه پاسخ دهد.
آپاچی یک فایل Vitual Host به نام ۰۰۰-default.conf به صورت پیش فرض دارد که می توانیم برای دیگر Virtual Host ها از آن کپی و استفاده کنیم.
ما از یک دامنه شروع می کنیم، آن را کانفیگ یا پیکربندی می کنیم، سپس آن را برای دیگر دامنه کپی می کنیم و سپس برخی تنظیمات لارم را انجام می دهیم.
با کپی کردن فایل برای دامنه اول شروع کنید.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
فایل جدید را با دسترسی روت توسط ویرایشگر باز کنید.
sudo nano /etc/apache2/sites-available/example.com.conf
فایل چیزی شبیه به این خواهد بود. (کامنت ها حذف شده تا باعث گیج شدن کاربران نشود.)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog
${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
در این بخش تنظیمات و تغییرات را اعمال خواهیم کرد.
ابتدا باید ایمیل ادمین سرور را تغییر دهیم که ادمین سایت بتوند از طریق آن ایمیل ها را دریافت کند.
ServerAdmin admin@example.com
پس از این ۲ دستورالعمل را تعریف می کنیم.
اول، نام سرور (Server Name) دامنه پایه ای را تعریف می کند که باید با مقادیر تعریف شده در Virtual Host مطابقت داشته باشد.
دوم، Server Alias که نام های جاگزین دامنه برای هاست استفاده می شود همانند www.
ServerName example.com
ServerAlias www.example.com
تنها چیزی که ما برای تغییر فایل اصلی Virtual Host نیاز داریم این است که دایرکتوری که در آن ذخیره شده است بدانیم.
و ما فقط نیاز داریم که تنظیمات DocumentRoot را تغییر دهیم.
DocumentRoot /var/www/example.com/public_html
در مجموع ، فایل Virtual Host شما باید بدین صورت باشد.
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
فایل مورد نظر را ذخیره کنید (Ctrl+O) و ببندید(Ctrl+X).
با این دستور فایل کانفیگ را برای دامنه دوم کپی کنید و همین مرحله را برای دامنه دوم تکرار کنید. دقت بفرمایید به جای example.com از test.com استفاده کنید.
sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
حال که ما فایل های Virtual Host را ایجاد کردیم باید با ابزارهای آپاچی آن ها را فعال کنیم.
ما از ابزار a2ensite برای فعال سازی سایت ها استفاده می کنیم.
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
هنگامی که فعال سازی پایان یافت، آپاچی را ری استارت کنید تا تغییرات اعمال شود.
sudo service apache2 restart
احتمالا پیامی مشابه این پیام دریافت خواهید کرد.
Restarting web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
این پیام بر روی سایت و کار ما تأثیری ندارد.
حال که Virtual Host خود را کانفیگ کرده اید می توانید با وارد کردن آدرس سایت خود test.com , example.com در مرورگر سایت خود را مشاهده کنید.
که باید صفحه ای شامل این پیام را ببینید.
در صورتی که این دو تصویر را مشاهده کردید Virtual Host به درستی کانفیگ شده است.
اگر شما میخواهید میزبانی تعدادی دامنه را در سرور خود به صورت مجزا داشته باشید ، می توانید این مراحل را در سرور مجازی خود انجام دهید.
محدودیت نرم افزاری از طرف آپاچی برای تعداد دامنه وجود ندارد و سرعت دامنه ها بستگی به سخت افزار سرور و تعداد بازدید سایت های شما دارد.
امیدوارم این مطلب مفید واقع شده باشد.