GORAGOD.com

สร้างหลายโดเมน บน localhost

ปกติแล้วเมื่อเราติดตั้ง Appserver เราจะได้โดเมนเนมเป็น http://localhost หากเราต้องการเปลี่ยนเป็นชื่ออื่น เช่น http://project หรือเมื่อต้องการมีหลายๆ โดเมน เพื่อใช้กับหลายโปรเจ็ค จะทำไงดี

ยกตัวอย่างเช่น http://project1 เก็บไฟล์ไว้ที่ ไดเร็คทอรี่ project1 และ http://project2 เก็บไฟล์ไว้ใน project2 การจัดการหรือทดสอบคงง่ายขึ้นเยอะ ยิ่งถ้ามีหลายๆโปรเจ็คด้วยแล้วละก็งานคงง่ายขึ้นเยอะ

หลักการเบื้องต้นก็คล้ายๆกับ การทำ subdomain บน localhost คือ

1.เปิดไฟล์ C:\windows\system32\drivers\etc\hosts ด้วย text editor ทั่วไปครับ แล้วเพิ่ม โดเมนที่ต้องการลงไป เช่น
127.0.0.1    project1
127.0.0.1    project2

แล้วก็ save ครับ

สามารถเพิ่มได้ตามจำนวนโปรเจ็คที่ต้องการ และชื่อที่ต้องการ (รวมถึงสามารถทำ subdomain ได้ด้วยครับ)

2.เปิดไฟล์ httpd.conf ของ Appserver ครับไม่รู้ว่าอยู่ที่ไหนดูในเมนูของ Appserver ก็ได้ครับ คลิกที่ Apache Edit the httpd.conf Configuration File 

กำหนด ServerName ซึ่งปกติจะถูกกำหนดเป็น localhost ให้เป็น IP Address ครับ
ServerName localhost:80

เปลี่ยนเป็น
ServerName 127.0.0.1:80

3.กำหนด ไดเร็คทอรี่ให้กับ domain ที่สร้างขึ้นด้วย VirtualHost ซึ่งก่อนอื่นเราต้องกำหนด NameVirtualHost ก่อนที่จะกำหนด VirtualHost นะครับ
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/AppServ/www"
</VirtualHost>

<VirtualHost *:80>
    ServerName project
    DocumentRoot "C:/AppServ/www/project1"
</VirtualHost>

<VirtualHost *:80>
    ServerName project2
    DocumentRoot "C:/AppServ/www/project2"
</VirtualHost>

เราสามารถแทรกโค้ดนี้ไว้ตั้งแต่บรรทัดแรกของไฟล์ที่เปิดขึ้นมาได้เลยครับ

ความสำคัญของการกำหนดไดเร็คทอรี่ คือ ไดเร็คทอรี่ที่ต้องการต้องอยู่ภายใต้ DocumentRoot ของ Server เช่นปกติ มันจะถูกกำหนดไว้ที่ C:/AppServ/www เราก็ต้องกำหนด sub directory ภายใต้โฟลเดอร์นี้เท่านั้นเช่น C:/AppServ/www/project1

4.หลังจากนั้นก็ทำการสร้างไดเร็คทอรี่ที่จะใช้เก็บไฟล์ต่างๆ แล้วก็ Restart Apache ใหม่เป็นอันเสร็จครับ

ทีนี้การทดสอบก็ง่ายขึ้นแล้วครับ

หมายเหตุ สำหรับ XAMPP ไฟล์ httpd.conf จะอยู่ในโฟลเดอร์ /xampp/apache/conf/ ครับ (ถ้าเป็นตัวอื่นลองหาดูนครับ หลักการเดียวกันครับ)