PDA

View Full Version : آموزش: ایجاد چند دامین روی سیستم لوکال



nextplus
پنج شنبه 24 دی 1388, 22:32 عصر
سلام دوستان

با اجازه بزرگتر های بخش میخوام طریقه ایجاد آدرس های مجازی رو روی لوکال مطرح کنم.

اجازه هست ؟؟!!:خجالت:

فرض رو بر این میگیریم که شما یک root دارید و چند تا سایت داخل اون با پوشه های مختلف ایجاد کردید.

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

مثلا ما چند تا پوشه داخل روت داریم (site1,site2,site3,....)
حالا با یک روت زمان اجرا باید بدین صورت اونها رو اجرا کنیم
http://localhost/site1/
http://localhost/site2/
http://localhost/site3
و .....:اشتباه:

من میخوام با وارد کردن آدرس http://site1.loc روت من http://localhost/site1/ و با وارد کردن http://site2.loc روتم http://localhost/site2/ و ..... باشه.

البته نمیخوام ریدایرکت بشه روی اون آدرس ؛ بلکه یک روت جداگانه و مستقل داشته باشم.
برای این کار ابتدا باید apache رو کانفیگ کنم.
برای این کار فایل httpd.conf که فایل تنظیمات آپاچی هست رو باز میکنید و به سطر آخر برید.

حالا این کد رو اضافه کنید.


NameVirtualHost 127.0.0.1
با این کار شما بخش هاست مجازی لوکالتون رو فعال کردید.

من فرض رو بر این میگیرم که آدرس local من D:\web\www باشه.

حالا این کد را اضافه کنید که localhost اصلی گم نشه و آپاچی قاطی نکنه. چون بالاخره به لوکال واقعی نیاز دارید . اگر هم نیاز ندارید بیخیال کد رو ننویسید



<VirtualHost 127.0.0.1>
DocumentRoot "D:\web\www"
ServerName localhost
</VirtualHost>
خب حالا میخوام آدرس http://site1.loc رو ایجاد کنم.


<VirtualHost 127.0.0.1>
DocumentRoot "D:\web\www\site1"
ServerName site1.loc
</VirtualHost>
و به همین صورت آدرس های مجازی که دوست داریم ایجاد میکنیم.

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

c:\windows\system32\drivers\etc\

برید ( منظورو از c:\windows همون پوشه نصب ویندوزه ) و فایل hosts رو با notepad بازکنید.

تو آخرین خط این فایل


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



127.0.0.1 site1.loc
و به همین صورت میتونیم برای آدرس های دیگه از این کد استفاده کنیم.

خب جالا آپاچی رو restart کرده و میتونید از این دامنه های مجازی استفده کنید.

امیدوارم که استفاده کرده باشید .:لبخندساده:

nextplus
جمعه 25 دی 1388, 00:51 صبح
در ضمن اگر ميخواهيد روتهاي فيزيكي تون از هم جدا باشه

مثلا روت site1.loc روي درايو D و روت site2.loc روي درايو E باشه بايد براي دايركتوريهاش هم دسترسي تعريف كنيد.

يعني اگه site1.loc رو اينطوري تعريف كنيم



<VirtualHost 127.0.0.1>
DocumentRoot "D:\site1"
ServerName site1.loc
</VirtualHost>

بايد كد زير رو داخل httpd.conf وارد كنيد.



<Directory "D:\site1">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>


چون تو حالت پيش فرض فقط دسترسي به پوشه لوكال اوليه تعريف شده.

nextplus
جمعه 25 دی 1388, 11:26 صبح
در ضمن توجه كنيد آدرس هايي كه داخل hosts تعريف ميكنيد از آدرس هاي حقيقي نباشه چون ديگه از اون سيستم نميتونيد به اون سايت كانكت شيد.

مثلا اگه NameServer هاست مجازي رو google.com تعريف كنيد و اسم اون رو هم براي hosts تعريف كنيد وقتي google.com رو باز ميكنيد بجاي سايت گوگل آدرس مجازي كه شما تعريف كرديد باز ميشه و ديگه از سيستمتون نمي تونيد google.com رو ببينيد.

afshin9032
جمعه 25 دی 1388, 23:36 عصر
ترفند جالب بود