Virtual Host คือ การทำให้ Server เครื่องเดียวสามารถให้บริการได้มากกว่า 1 เว็บไซต์ ซึ่งโดยปกติสามารถให้บริการได้เพียงเว็บไซต์เดียวนั้นเอง มาดูวิธีการทำกันเถอะ
ขั้นตอนที่ 1 แก้ไข httpd-vhosts.conf
ไปที่ C:\xampp\apache\conf\extra\httpd-vhosts.conf เปิดไฟล์ขึ้นมา ลบข้อความภายในไฟล์ออกให้หมด จากนั้นเพิ่มบรรทัดแรกด้วย code นี้
NameVirtualHost *:80
กำหนด Virtual Host ของ localhost เพื่อที่เราจะเรียกใช้งาน localhost ได้เหมือนเดิม ด้วย Code นี้
<VirtualHost *:80>
DocumentRoot c:/xampp/htdocs
ServerName localhost
<Directory c:/xampp/htdocs>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
กำหนด Virtual Host ของด้วย Domain name ที่เราต้องการ จากตัวอย่าง code เราจะทำการจำลองไว้สัก 2 Project
<VirtualHost *:80>
DocumentRoot c:/xampp/htdocs/project1
ServerName myproject1.local
<Directory c:/xampp/htdocs/project1>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot c:/xampp/htdocs/project2
ServerName myproject2.com
<Directory c:/xampp/htdocs/project2>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
จากตัวอย่าง เราได้ทำการจำลอง Host ไว้ 2 Host ด้วยกัน คือ myproject1.local และ myproject2.com และแน่นอนว่าเราสามารถจำลองชื่อ Domain name ให้ตรงกับชื่อ Domain name จริง ๆ ของเว็บเรา แต่ไม่แนะนำเนื่องจากคุณอาจสับสนเองได้ ควรจะใช้วิธีดังนี้
Real host : myproject1.com
Virtual host : myproject1.local
ขั้นตอนที่ 2 แก้ไข hosts
ไปที่ C:\Windows\System32\drivers\etc\hosts เปิดไฟล์ขึ้นมาทำการเพิ่ม Host Name และ IP Address เพื่อให้เครื่องของเรารู้จักชื่อ Host Name ที่เราสร้างขึ้นในไฟล์
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 project1.local
127.0.0.1 project2.com
ขั้นตอนที่ 3 ทำการ Restart Apache
ขั้นตอนสุดท้ายคือการ Restart Apache เพื่อให้ Apache ทำการโหลดค่าที่เรากำหนดใน httpd-vhosts.conf ใหม่เท่านี้ก็สามารถใช้ Virtual Host บน XAMPP ได้แล้ว