รู้สึกเบื่อมั๊ยครับ เวลาทำเว็บแล้วต้องมาเทสด้วย URL แบบเดิม ๆ คือ http://localhost/work/myweb/ (ประมาณนี้) ยิ่งถ้าใครแบ่ง folder อย่างหรูหรา ก็ยิ่งไปกันใหญ่ http://localhost/work/2009/clients/sipa/task1/ (อู้วววว ใครจะไปจำได้วะ) วันนี้ผมมีทางออกให้สำหรับใครที่ยังไม่รู้ครับ
เดิมที เราอาจจะเบื่อแค่ domain ที่เป็นชื่อว่า localhost เราก็จะแก้ปัญหาวิธีนี้ด้วยการ map hosts file ให้เป็น www.domain.com ในเครื่องเรา ทีนี้แล้ว path ตามหลังยาว ๆ ล่ะ จะทำยังไงดี อยากพิมพ์แค่ www.domain.com เฉย ๆ ก็ใช้ได้เลย ปัญหานี้แก้ไ้ด้ไม่ยากครับ ผมจะยกตัวอย่างด้วยสภาพแวดล้อมที่ใช้ AppServ นะครับ
ขั้นตอนง่าย ๆ ก่อนอื่น เริ่มจากการแก้ hosts file ก่อนครับ
สำหรับคนที่ใช้ Windows ไฟล์ hosts จะอยู่ที่ C:\Windows\system32\drivers\etc\hosts นะครับ (Drive กับ Path ของ Windows อาจจะเปลี่ยนไป ขึ้นอยู่กับว่าคุณลง Windows อะไร และลงไว้ที่ไหนนะครับ)
ส่วนคนที่ใช้ Linux ไฟล์ hosts จะอยู่ที่ /etc/hosts ครับ
วิธีแก้ ก็ใช้ text editor ทั่ว ๆ ไปมาแก้ได้เลยครับ เช่น notepad (Windows) หรือ vi (Linux) เปิดมาแล้วก็เพิ่มบรรทัดนี้ลงไปครับ
127.0.0.1 www.domain.com
เสร็จแล้วก็ save ครับ เท่านี้ก็เรียบร้อย
วิธีทดสอบก็แค่เปิด Web Browser ขึ้นมาใหม่ แล้วก็ลองเข้าไปที่ www.domain.com ดูครับ มันควรจะพาไปหน้าเดียวกับ localhost ครับ
หลังจากนั้น เราก็ทำการแก้ไขไฟล์ httpd.conf ของ Apache ครับ
สำหรับคนที่ลง AppServ ใน Windows ไฟล์นี้จะอยู่ที่ C:\AppServ\Apache2.2\conf\httpd.conf (ขึ้นอยู่กับ Drive และ Path รวมถึง Apache version ที่เอามาลงด้วยครับว่าอยู่ที่ไหน) ส่วน Linux นั้น จะอยู่ที่ /usr/local/apache/conf/httpd.conf (อันนี้ก็เช่นกันครับ ขึ้นอยู่กับว่า เราลงไว้ที่ไหนครับ)
เสร็จแล้ว เปิดขึ้นมาด้วย text editor เหมือนเดิมครับ หาดูบรรทัดที่เขียนว่า
#Include conf/extra/httpd-vhosts.conf
เจอแล้วให้เอาเครื่องหมาย # หน้าบรรทัดออกครับ เสร็จแล้ว save ซักทีนึงครับ
หลังจากนั้น ให้เข้าไปที่ path conf/extra แล้วเปิดไฟล์ที่ชื่อ httpd-vhosts.conf ด้วย text editor แล้วพิมพ์ตามตัวอย่างด้านล่างนี้เลยครับ
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.x # บรรทัดนี้ ใส่ Path ของงานเราครับ อยู่ที่ไหนก็ได้ ถ้าเป็น windows ให้เปลี่ยน \ เป็น / ด้วยนะครับ DocumentRoot "D:/work/domain.com/www" # บรรทัดนี้ ใส่ชื่อ domain ครับ ServerName www.domain.com # บรรทัดนี้ ใส่ชื่อ domain ครับ ServerAlias www.domain.com # บรรทัดนี้ ระบุที่เก็บ error log ครับ ErrorLog "logs/www.domain.com-error.log" # บรรทัดนี้ระบบ access log ครับ CustomLog "logs/www.domain.com-access.log" common </VirtualHost>
เสร็จแล้ว ให้ Restart Apache รอบนึง เท่านี้ก็เรียบร้อยครับ ลองเปิด browser แล้วเข้าไปที่ www.domain.com อีกทีดูสิครับ แล้วดูความแตกต่างครับ
จากตัวอย่าง ลองเอาไฟล์ไปวางไว้ที่ D:\work\domain.com ดูครับ เช่น เราเอาไฟล์ index.html ไปวางไว้ที่ D:\work\domain.com เราก็ลองทดสอบด้วย URL http://www.domain.com/index.html ก็ได้ครับ
สำหรับคนที่ยังอยากใช้ localhost อยู่ ก็อย่าลืมทำสำหรับ localhost ด้วยนะครับ แค่เปลี่ยนจาก www.domain.com เป็น localhost เท่านั้นเองครับ
ทีนี้ เราก็ test งานของเราได้ง่าย ๆ ด้วย URL จริง ๆ จนหนำใจได้แล้วล่ะครับ
ลองทำตามทุกอย่างแล้ว แต่มันขึ้น
You don’t have permission to access / on this server
ช่วยแนะนำด้วย….
10 มิ.ย. 52
เข้าเว็บ http://www.appservnetwork.com/forum/index.php?topic=3523.0 ทำตามที่ฝรั่งเขาบอกได้แล้ว….
ไงก็ขอบคุณมากเลยนะครับ…
ดีใจด้วยครับ
ขอยคุณครับ พี่
มาลองเขียน php อีกกว่า น่าสนใจแหะ