GORAGOD.com

subdomain บน localhost

subdomain คืออะไร? subdomain คือ domain name ย่อยๆของเว็บไซต์หลักอีกทีครับเช่น https://www.goragod.com หรือ http://goragod.com อาจมี subdomain เป็น http://chat.goragod.com ซึ่งหมายถึง url ของ chat หรือ http://blog.goragod.com ซึ่งหมายถึง url ของ blog ครับ โดยทั่วๆไปเรามักกำหนดให้ subdomain เป็นไดเร็คทอรี่หนึ่งๆของเว็บไซต์ เช่นอาจเป็น https://www.goragod.com/chat แต่เพื่อให้เรียกใช้ง่ายขึ้นก็เลยทำเป็น subdomain ในชื่อ http://chat.goragod.com แทน ซึ่งก็จะทำให้ url จดจำได้ง่ายขึ้นครับ และก็ไม่ต้องเสียตั้งจดทะเบียนหลายๆโดเมนด้วย

การสร้าง 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 ลงไปนะครับ