การจะพัฒนาเว็บแอป.สักตัวให้ทำงานภายใต้บรรยากาศที่เป็น subdomain นั้น ไม่ยากอย่างที่คิด. วิธีต่อไปนี้จะช่วยให้คุณมี subdomain ตามที่ระบุ บน windows และ apache web server.
ข้อจำกัดของวิธีนี้ก็คือคุณจะไม่สามารถทำ subdomain แบบ dns wildcard ได้ (subdomain แบบที่ไม่ต้องมาสร้างทุกครั้ง ใช้ dns wildcard และ htaccess mod rewrite ช่วยเหมือนอย่าง wordpress)
ตัวอย่างที่จะทำให้ดูต่อไปนี้ จะทำให้คุณได้ทั้ง domain + subdomain ใหม่ และ localhost เก่า โดยไม่ต้องเสียมันไป
ขั้นแรก เตรียมพร้อม folder
สมมุติว่า folder ของ webroot คุณอยู่ที่ C:\www
เมื่อเรียก localhost มันจะไปยังที่ C:\www
คราวนี้เราจะเพิ่ม domain ใหม่ ชื่อ test.lc และ www.lc ไปที่ C:\www\test (lc ย่อมาจาก local ซึ่งจะใช้ดอทอื่นก็ได้)
สร้าง folder test ไว้ใน C:\www จากนั้นสร้างไฟล์ index.html ที่เขียนอธิบายไว้ว่าหน้าที่คุณเรียกคือ test.lc
ขั้นที่สอง จัดการ host file
เปิด notepad ด้วยการคลิกขวา > Run as administrator (สำหรับผู้ใช้ windows 7, vista)
เปิดไฟล์ C:\Windows\System32\drivers\etc\host
เพิ่ม 127.0.0.1 test.lc
127.0.0.1 www.test.lc
จากนั้นก็ save
ขั้นที่สาม ปรับแต่ง apache
เปิด folder ไปที่ apache\conf และ apache\conf\extra (apache folder นี้ขึ้นอยู่กับที่คุณติดตั้ง อาจอยู่ใน Program Files หรือที่อื่นที่คุณได้ติดตั้งไว้)
แก้ไขไฟล์ apache\conf\httpd.conf
มองหา #Include conf/extra/httpd-vhosts.conf จากนั้นให้ลบเครื่องหมาย # ออก แล้ว save และปิดไฟล์
แก้ไขไฟล์ apache\conf\extra\httpd-vhosts.conf
ใส่เครื่องหมาย # หน้าพวกที่มีอยู่เดิมไว้ป้องกันไม่ให้มายุ่งเกี่ยว
เพิ่ม สำหรับ test.lc และ www.test.lc
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.lc
DocumentRoot "C:\www\test"
ServerName test.lc
ServerAlias www.test.lc
Options Indexes FollowSymLinks
ErrorLog "logs/okvee.lc-error.log"
CustomLog "logs/okvee.lc-access.log" common
</VirtualHost>
เพิ่ม สำหรับ localhost
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.lc
DocumentRoot "C:\www"
ServerName localhost
ServerAlias localhost
Options Indexes FollowSymLinks
ErrorLog "logs/okvee.lc-error.log"
CustomLog "logs/okvee.lc-access.log" common
</VirtualHost>
โดยเรียงตามลำดับ localhost อยู่ล่างสุด
save ไฟล์ แล้ว restart apache
ทดลองเรียก test.lc น่าจะพบกับหน้าที่บอกว่า "หน้าที่คุณเรียกคือ test.lc" ซึ่งเป็นอันเสร็จสิ้น
สำหรับการเพิ่ม subdomain อื่นๆภายใต้ test.lc เช่น forum.test.lc ก็ทำวิธีเดียวกัน
คือเพิ่มในไฟล์ host > สร้าง folder ชื่อ forum > เพิ่ม virtual host ที่มี servername และ serveralias เป็น forum.test.lc แล้วกำหนด documentroot ไปที่ forum
กรณีเรียก test.lc แล้วไม่ไป ให้ทำการ flushdns ใน command prompt แล้วลองใหม่อีกครั้ง
และอย่าลืม restart apache ทุกครั้งที่แก้ไขไฟล์ของมัน