apache virtualhosts

ساخت virtualhost در اوبونتو

در این آموزش نحوه ساخت virtualhost و تعیین مسیری در home directory کاربر به عنوان دایرکتوری فرا فراخواهیم گرفت. در واقع می خواهیم ضمن ساخت یک هاست مجازی، مسیر پیشفرض آپاچی را هم تغییر دهیم. مطالب این آموزش بر روی سیستم عامل Ubuntu انجام شده اند.

ساخت virtualhost

ابتدا باید در پوشه sites-available مربوط به آپاچی که در مسیر /etc/apache2/ قرار دارد می رویم و یک فایل با پسوند conf برای virtualhost جدید ایجاد کنیم. میتوانیم از کد زیر برای ایجاد فایل کمک بگیریم:


sudo gedit /etc/apache2/sites-available/test.conf

سپس کدهای زیر را در آن کپی کنیم.


<VirtualHost 127.0.0.5:80>
ServerAdmin info@test
ServerName test
ServerAlias test
DocumentRoot /home/yusef/public_html/
ErrorLog ${APACHE_LOG_DIR}/test-error.log
CustomLog ${APACHE_LOG_DIR}/test-access.log combined
</VirtualHost>

در قطعه کد بالا ServerName نامی است که با آن می توانیم به virtualhost دسترسی داشته باشیم و همانطور که به نظر می رسد، DocumentRoot مسیر Root مربوط به این هاست مجازی را تعیین می کند.

ErrorLog و CustomLog نیز برای ثبت خطاهای رخ داده در virtualhost و نیز ثبت Log های دیگر به کار می روند و باید مسیر فایل های آنها در شاخه پیشفرض آپاچی باشد.

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

فعالسازی

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


a2ensite test

در دستور بالا باید نامی که برای ServerName در فایل مربوط به virtualhost انتخاب کرده ایم را وارد کنیم.

برای غیر فعال کردن نیز از دستور a2dissite به جای a2ensite استفاده می کنیم.

چنانچه آدرس DocumentRoot را در مسیری غیر از مسیر پیش فرض آپاچی که /var/www/html/ است، تعریف کنیم؛ هنگام مشاهده سایت با خطای ۴۰۳ مواجه می شویم. در این حالت باید فایل تنظیمات virtualhost را با دستور زیر باز کنیم:

sudo gedit /etc/apache2/sites-available/test.conf

و در قسمت پایانی کد زیر را بیافزاییم:

<Directory /home/yusef/public_html>
    #Options FollowSymLinks
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
    Allow from all
</Directory>

در واقع باید فایل test.conf درنهایت حاوی اطلاعات زیر باشد:

<VirtualHost 127.0.0.5:80>
ServerAdmin info@test
ServerName test
ServerAlias test
DocumentRoot /home/yusef/public_html/
ErrorLog ${APACHE_LOG_DIR}/test-error.log
CustomLog ${APACHE_LOG_DIR}/test-access.log combined

<Directory /home/yusef/public_html>
 #Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
 AllowOverride All
 Require all granted
 Allow from all
</Directory>
</VirtualHost>

در انتها باید به کمک دستور زیر سرویس apache را راه اندازی مجدد کنیم تا تغییرات جدید اعمال شوند.


sudo service apache2 restart

اگر بدون هیچ خطایی بتونید سرویس apache را راه اندازی مجدد کنید، یعنی تنظیمات را بدرستی انجام داده اید. حال در مرورگر خود آدرس ۱۲۷٫۰٫۰٫۵ را وارد کنید. اگر با خطای ۴۰۳ یاهمان Forbidden مواجه شدید، به این معناست که آپاچی امکان دسترسی به پوشه مربوطه را ندارد. در نتیجه باید دستور زیر را برای دادن این دسترسی وارد کنید:


chmod -R 777 /home/yusef/public_html

روش فوق روش ساده ای به نظر می رسد اما همیشه کارآمد نخواهد بود. بهتر است برای دادن دسترسی به آپاچی از ماژولهایی مانند suExec و یا mpm-ik استفاه کنید. اما گذشته از این موضوع پس از وارد کردن دستور بالا باید بتوانید وب سایت خود را به درستی مشاهده کنید.

 

دسترسی به virtualhost با نام مستعار

برای اینکه بتوانیم با وارد کردن عبارت test.dev و یا هر نام دلخواه دیگری، در مرورگر خود به virtualhost برویم باید فایل hosts را ویرایش کنیم. برای اینکار دستور زیر را در ترمینال وارد کنید:


sudo gedit /etc/hosts

سپس کد زیر را به آن اضافه کنید:


۱۲۷٫۰٫۰٫۵  test.dev

حال اگر در مرورگر خود عبارت test.dev را وارد کنید و enter بزنید، می توانید وارد شوید.

لیست Virtualhost ها

برای مشاهده لیست virtualhost ها و اطلاع از نام و آی پی مورد استفاده هر کدام از آنها تنها کافیست تا دستور زیر را در ترمینال وارد کنید:


sudo apache2ctl -S

 

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

موفق و پیروز باشید…

در این آموزش نحوه ساخت virtualhost و تعیین مسیری در home directory کاربر به عنوان دایرکتوری فرا فراخواهیم گرفت. در واقع می خواهیم ضمن ساخت یک هاست مجازی، مسیر پیشفرض آپاچی را هم تغییر دهیم. مطالب این آموزش بر روی سیستم عامل Ubuntu انجام شده اند. ساخت virtualhost ابتدا باید در پوشه sites-available مربوط به …

بررسی کلی

امتیاز کاربر: 4.9 ( 1 رای)
0

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme