subdomain บน localhost
การสร้าง subdomain บน server สร้างยังไงผมคงไม่พูดถึงแหละครับ แต่ละ server ก็คงมีการสร้างแตกต่างกันออกไป แต่สำหรับผู้ใช้ Appserver สิครับ อยากทดสอบเว็บในรูปของ subdomain จะทำไงดีหนอ ?
ปกติ บน localhost เมื่อติดตั้ง Appserver เราจะได้ server ในชื่อ http://localhost หากเราจะเพิ่ม subdomain เป็น http://blog.localhost โดยที่เมื่อเรียก url นี้แล้วจะไปทำการเปิดเว็บที่ C:/AppServ/www/blog ขึ้นมาทำงาน ทำได้ดังนี้ครับ
1.เปิดไฟล์ C:\windows\system32\drivers\etc\hosts ด้วย text editor ทั่วไปครับ ในนั้นจะพบข้อความประมาณนี้
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#102.54.94.97 rhino.acme.com # source server
#38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
127.0.0.1 blog.localhost
ลงในข้อความบรรทัดต่อจาก
127.0.0.1 localhost
ครับจะได้เป็นประมาณว่า
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
127.0.0.1 blog.localhost
แล้วก็ save
บรรทัดที่เพิ่มขึ้นมาเป็นการกำหนด host ที่เราต้องการครับ อยากเปลี่ยนเป็นชื่ออื่นก็ตามใจ หรือหากต้องการหลายๆ subdomain ก็เขียนเพิ่มเติมเข้าไปแต่ละบรรทัดครับ
2.ทำให้ Appserver รู้จัก host ที่สร้างขึ้นและรู้ว่าต้องไปที่ไหนครับ
เปิดไฟล์ httpd.conf ของ Appserver ครับไม่รู้ว่าอยู่ที่ไหนดูในเมนูของ Appserver ก็ได้ครับ คลิกที่ Apache Edit the httpd.conf Configuration File เพิ่มเติม
<VirtualHost *:80>
ServerName localhost
DocumentRoot C:/AppServ/www
</VirtualHost>
<VirtualHost *:80>
ServerName blog.localhost
DocumentRoot C:/AppServ/www/blog
</VirtualHost>
ลงบนส่วนต้นๆของไฟล์ก็ได้ครับ
ส่วนแรก เป็นการบอกให้ Appserver รู้จัก localhost ตามปกติแหละครับ
ServerName localhost <== ชื่อ host http://localhost
DocumentRoot C:/AppServ/www <== ไดเร็คทอรี่ที่เก็บไฟล์
ส่วนที่ 2 ก็สำหรับ blog ที่สร้างขึ้นใหม่ครับ
เสร็จแล้ว save แล้วก็ Restart Appserver ใหม่ครับ ทดสอบโดยการพิมพ์ http://localhost จะต้องไปเปิดเพจตามปกติ แต่ถ้าพิมพ์ http://blog.localhost จะต้องไปเปิด blog ครับ เราสามารถเพิ่มเติมได้หลาย subdomain ตามที่กำหนดไว้ในข้อ 1 โดยเพิ่มแต่ละ section ลงไปนะครับ