خیلی پیش می آید که ما نیاز به چند آدرس مختلف در یک کامپیوتر داشته باشیم، مثلا نیاز مند این باشیم که کاربران شبکه داخلی، با زدن آی پی کامپیوتر در بروزر خودشان، یک صفحه ببینند و مثلا کاربرانی که از یک شبکه دیگر (مثلا اینترنت) به کامپیوتر شما رجوع میکنند چیز دیگری ببینند و اصلا گاهی لازم میشود که شما چندین هاست مجازی مختلف به صورت محلی (Local) بر روی کامپیوتر خود داشته باشید تا بتوانید به صورت کاملا مستقل از هم بر روی هر کدام کار کنید.
برای اینکار آپاچی قابلیت Virtual Host را پیشنهاد میکند.
برای اینکار ابتدا باید آی پی های مختلف مد نظرتان را مشخص کنید. مثلا من به این آی پی ها نیاز دارم و میخواهم همه آنها به صورت جدا از هم باشند.
- 127.0.0.1 برای استفاده شخصی خودم
- 192.168.0.1 آدرسی که کاربران شبکه میبینند
- 78.53.33.13 آی پی من در اینترنت (این آی پی همین طوری و خیلی اتفاقی انتخاب شده :) باور کنید من برلین نیستم و این آی پی من نیست! )
- و در نهایت یک سایت محلی دیگر، مجزا از 127.0.0.1
برای اینکار، نیازمند ویرایش فایل httpd.conf هستیم .این فایل برای ویندوز در آدرسی هست که آپاچی نصب شده، ولی در لینوکس در /etc/apache2 هست.
127.0.0.1
معمولا آدرس 127.0.0.1 را میتوانید هنگام نصب به عنوان آدرس اصلی انتخاب کنید، اگر بنا به هر دلیلی این آدرس در کامپیوتر شما مشکل داشت، دقیقا مثل آدرس چهارم عمل کنید
192.168.0.1
برای افزودن این آدرس، کافی است کد زیر را به انتها فایل httpd.conf اضافه کنید :
<VirtualHost 192.168.0.1:80> ServerAdmin yourmail{AT}yourhost.com DocumentRoot "c:/path/to/the/root/folder/for/this/host" ServerName localnetwork.loc </VirtualHost>
ابتدا، باید آی پی مورد نظرتان را انتخاب و پورتی که آپاچی روی آن فعال است را نیز انتخاب کنید. در این مثال 192.168.0.1:80 فقط مطمئن شوید همان پورتی را انتخاب میکنید که آپاچی آن را در اختیار دارد، برای اینکه مطمئن شوید داخل همین فایل دنبال عبارت Listen 80 بگردید (80 ممکن است هر عدد دیگری باشد مثلا 8080 ) این عدد نشانگر پورت مورد استفاده آپاچی است.
بعد آدرس میل ادمین این سایت، برای نمایش در امضای صفحات (معمولا صفحات خطا) سپس پوشه ای که در نظر دارید نقش ریشه این هاست مجازی را داشته باشد، و در نهایت نامی که برای این هاست در نظر گرفته اید، که در این مورد چون روی یک شبکه محلی هستید مهم نیست :) را وارد کنید.
گزینه های دیگر هم هست، و تقریبا تمام تنظیمات مربوط به هاست اصلی هم در این بلاک قابل استفاده خواهد بود.
78.53.33.13
برای اینهم دقیقا شبیه بالایی عمل کنید، فقط این آی پی را وارد کنید و مسیر دیگری مربوط به این هاست انتخاب کنید.
یک هاست محلی دیگر
خیلی پیش می آید که شما بخواهید دو یا چند هاست مختلف روی کامپیوتر خود داشته باشید، مثلا روی یکی WordPress نصب کنید، دومی یک سیستم دیگر و همین طور الی آخر، البته میتوان از مسیر های داخلی هم استفاده کرد مثلا http://localhost/wordpress ولی من این را نمی پسندم. ویندوز، تمام آی پی های محدوده 127.0.0.x را برای Loop Back (یعنی آی پی که در حقیقت برای Local استفاده میشود ) رزرو کرده است.
برای اینکار، میتوانید از یک آی پی مثل 127.0.0.2 استفاده کنیم ، به این صورت :
<VirtualHost 127.0.0.2:80> ServerAdmin yourmail{AT}yourhost.com DocumentRoot "c:/path/to/the/root/folder/for/this/another/host" ServerName localnetwork.loc </VirtualHost>
بعد از این کار، این آدرس، از آدرس قبلی 127.0.0.1 و کلا همه آدرس های دیگر مجزا خواهد بود. اما برای اینکه این آدرس یک نام داشته باشد، مثلا localhost2 چکار کنیم؟
فایل زیر در ویندوز :
%WINDIR%\system32\drivers\etc\hosts
و یا فایل زیر در لینوکس :
/etc/hosts
را با یک ادیتور متنی مثل Notepad یا Notepad++ یا هر ادیتور دیگری که دوست دارید، باز کنید. یک خط به این صورت به انتهای آن اضافه کنید :
127.0.0.2 localhost2
%WINDIR% پوشه ویندوز شماست و این فایل هم هیچگونه پسوندی ندارد! برای لینوکس و ویندوز سون این فایل رو باید با ویرایشگری که دسترسی ادمین داشته باشه ویرایش کنید.
که به ترتیب آی پی مورد نظر شما با چند فاصله (مهم نیست چند تا، فضای خالی یا کاراکتر تب) و نام مورد نظر شماست. در این صورت میتوانید از این نام جدید هم به صورت محلی استفاده کنید.
چند نکته مهم :
برای نامگذاری سایتهای محلی از اسم سایتهای واقعی استفاده نکنید، در این صورت دیگر به هیچ عنوان نمیتوانید آن سایتها را باز کنید! و همیشه سایت محلی باز خواهد شد.
دوم، در صورتی که با باز کردن این هاست های مجازی در مرورگر خود، خطای Forbidden میگیرید، باید پوشه ای را که برای این هاست در نظر گرفته اید را به لیست پوشه های مجاز آپاچی اضافه کنید به این صورت :
<Directory "c:/path/to/the/root/folder/for/this/host"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Includes ExecCGI # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory>
که کامنتها گویای اینکه هر کدام از این گزینه ها چه معنی ای دارند، هست.
::: تازه متوجه شدم که این یکی پست را هم با عبارت خیلی پیش میاد شروع کردم!