Create virtual host on Apache
การสร้าง Virtual Host บน Apache
สภาพแวดล้อมที่ทดสอบ
– AppServ 2.5.10 for Windows
– Window XP SP3
โดยปกติเราจะทำเว็บจะเข้าไปสร้างที่ โฟลเดอร์ C:\AppServ\www แต่แนะนำให้ทำที่ D:\AppServ\www จะป้องกันข้อมูลหายอันเกิดจากลง Windows ใหม่โดยลืม Backup Web App ที่เราได้ทำไป
เวลาเราต้องการทดสอบ Web App ที่เราได้ develop ไปแล้ว ก็เปิดเบราเซอร์ http://localhost/MyWebApp ซึ่งมันเป็นโฟลเดอร์ย่อย ที่เราไปสร้างไว้
D:\AppServ\www\MyWebApp
ถ้าเราต้องการให้ url ของเราในเครื่องของเรา จาก http://localhost/MyWebApp ให้เป็น http://www.MyWebApp.com จะทำได้มั้ย มีวิธีมั้ย?
คำตอบ มีครับโดยการใช้วิธี virtual host และยังสามารถสร้าง App ของเราไว้ใน ไดรว์ไหนก็ได้
ขั้นตอนการทำ virtual host มีทั้งหมด 3 ขั้นตอน
1. แก้ที่ไฟล์ hosts จะอยู่ใน C:\Windows\System32\drivers\etc\
เป็นการบอกเส้นทางให้เบราเซอร์รู้ว่ามันจะไปทางไหน ในไฟล์ host จะเก็บ ชื่อ URL และ IP ไว้ เมื่อเบราเซอร์เห็นว่า URL นี่มัน IP 127.0.0.1 มันอยู่ในเครื่องเราเอง ก็ไม่จำเป็นต้องออกไปสู้โลกภายนอก แต่ถ้า url ที่เราพิมพ์มาไม่เจอในไฟล์ host ก็จะส่งคำร้องออกไปสู่วงแลน ถ้ายังไม่มีอีกก็จะส่งออกไปสู้ผู้ให้บริการอินเตอร์เน็ตที่กำลังเชื่อมต่ออยู่ต่อไป
แก้ไขไฟล์ hosts กำหนดเส้นทาง
1.1 เปิดไฟล์ hosts ขึ้นมาด้วยโปรแกรม Notepad
1.2 เพิ่มชื่อเว็บไซต์ที่เราต้องการ หรือสมมติเข้าไป และให้ชี้กลับมาที่เครื่องเราเอง จะใช้ .com ก็ได้ครับ หรือจะใช้ดอท อะไรก็ได้ครับ
127.0.0.1 www.MyWebApp.loc |
1.3 Save ไฟล์ Host
2. แก้ที่ไฟล์ httpd.conf จะอยู่ใน D:\AppServ\Apache2.2\conf\
เป็นการเปิดปลักอิน mod_vhost_alias ที่ถูกปิดไว้ และกำหนดสิทธิ์ในการเข้าใช้งาน virtual host
2.1 เปิดไฟล์ httpd.conf ขึ้นมาด้วยโปรแกรม Notepad
2.2 ที่บรรทัด 203 ให้เอาเครื่องหมาย # ออก
#LoadModule vhost_alias_module modules/mod_vhost_alias.so |
แก้ไขเป็น
LoadModule vhost_alias_module modules/mod_vhost_alias.so |
2.3 ที่บรรทัด 561 ให้เอาเครื่องหมาย # ออก
# Virtual hosts #Include conf/extra/httpd-vhosts.conf |
แก้ไขเป็น
# Virtual hosts Include conf/extra/httpd-vhosts.conf |
2.4 เพิ่มสิทธิ์ในการเข้าใช้งานโฟลเดอร์ MyWebApp บนไดร์ D: ต่อท้ายไฟล์ httpd.conf ได้เลย
<Directory "E:/Workspace/MyWebApp"> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Allow from all </Directory> |
2.5 Save ไฟล์ httpd.conf
3. แก้ที่ไฟล์ httpd-vhosts.conf จะอยู่ใน D:\AppServ\Apache2.2\conf\extra
เป็นการกำหนดที่เก็บ App ของเราในที่นี้ชื่อ MyWebApp เพื่อ กำหนดให้ url www.MyWebApp.loc ชี้ไปที่ Web App ของเรา
3.1 เปิดไฟล์ httpd-vhosts.conf ขึ้นมาด้วยโปรแกรม Notepad
3.2 เพิ่มข้อมูลข้างล่างต่อท้ายไฟล์ได้เลย
<VirtualHost *:80> ServerAdmin webmaster@MyWebApp.loc DocumentRoot "E:/Workspace/MyWebApp" ServerName MyWebApp.loc ServerAlias www.MyWebApp.loc ErrorLog "logs/MyWebApp.loc-error.log" CustomLog "logs/MyWebApp.loc-access.log" common </VirtualHost> |
– DocumentRoot : คือที่เก็บไฟล์
– ServerName : ชื่อโดเมน ต้องเป็นชื่อเดียวกับที่อยู่ในไฟล์ hosts
– ServerAlias : ชื่อเสมือนโดเมน มันจะได้เข้าได้ทั้งมี www และ ไม่มี
3.3 Save ไฟล์ httpd-vhosts.conf
หลังจากทำมาจนครบ 3 ขั้นตอนแล้วให้ Restart Apache ก่อน โดยเข้าไปที่
C:\Documents and Settings\
ดับเบิลคลิก Apache Restart
ปล.
ก่อนจะทดลองทำ Virtual Host แนะนำให้ Back up ไว้ก่อนก็ดีครับ ทั้ง 3 ไฟล์ที่กล่าวมาข้างต้น