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\\Start Menu\Programs\AppServ\Control Server by Service\
ดับเบิลคลิก Apache Restart

ปล.
ก่อนจะทดลองทำ Virtual Host แนะนำให้ Back up ไว้ก่อนก็ดีครับ ทั้ง 3 ไฟล์ที่กล่าวมาข้างต้น

Comments are closed.