หน้า 1 จากทั้งหมด 1

เทคนิคการสร้าง Alias บน Apache Web Server

โพสต์โพสต์แล้ว: 13 เม.ย. 2010 10:32
โดย nuiz
ปกตินะครับเวลาเราติดตั้ง Apache เป็น Web Server ไดเร็คตอรี่ราก หรือเรียกว่า Document Root ของ Apache จะอยู่ที่ไดเร็คตอรี่ /var/www/html แล้วพอเราติดตั้งเว็บใหม่ๆเพิ่มเข้าไป เราก็มักจะติดตั้งเป็น Sub Directory ของ /var/www/html เช่น /var/www/html/web1 เป็นต้น แล้วเวลาเราเรียกเว็บนี้ก็เรียกแบบนี้ http://x.x.x.x/web1

แต่ผมจะแนะนำว่าเราไม่จำเป็นต้องทำแบบนี้ก็ได้ ไม่จำเป็นต้องติดตั้งเว็บไว้ภายใต้ไดเร็คตอรี่ /var/www/html ก็ได้ เช่นอาจจะติดตั้งไว้ที่ไดเร็คตอรี่ /opt แทน ก็จะได้เป็น /opt/web1 หรือไดเร็คตอรี่ /home ก็ได กลายเป็น /home/web1

แต่ถ้าเราทำแบบนี้โดยที่ไม่ได้ทำอะไรเพิ่มเติม เราก็จะเรียกหน้าเว็บไม่ได้ เพราะ Apache ไม่รู้จักไดเร็คตอรี่อื่นนอกเหนือจาก /var/www/html (ดีฟอลท์) เราต้องทำให้มันรู้จักว่ามีไฟล์เอกสารเว็บอยู่ในไดเร็คตอรี่อื่นด้วย ซึ่งมีวิธีการทำอยู่ 2 แบบครับ ต่อไปนี้

1. ทำ Symbolic Link
ง่ายๆครับ ติดตั้งไฟล์เอกสารเว็บไว้ที่ไดเร็คตอรี่หนึ่ง สมมติว่าเป็นไดเร็คตอรี่ /opt/web1 แล้วก็ทำ Symbolic Link ไปที่ไดเร็คตอรี่ /var/www/html ด้วยคำสั่งนี้
โค้ด: เลือกทั้งหมด
ln -s /opt/web1 /var/www/html/web1

หรือเปลี่ยนชื่อไดเร็คตอรี่ไปเลยก็ได้ เช่น
โค้ด: เลือกทั้งหมด
ln -s /opt/web1 /var/www/html/myweb

แล้วเวลาเรียกก็เรียกแบบนี้
http://x.x.x.x/myweb
โดยไม่ต้องรีสตาร์ท Apache แต่อย่างใด

2. ใช้ Alias
สร้างไฟล์ๆหนึ่งในไดเร็คตอรี่ /etc/httpd/conf.d สมมติว่าชื่อไฟล์ alias.conf
โค้ด: เลือกทั้งหมด
vi /etc/httpd/conf.d/alias.conf


ใส่บรรทัด Alias เพิ่มเข้าไป ตัวอย่าง
โค้ด: เลือกทั้งหมด
Alias /myweb /opt/web1

หรือ
โค้ด: เลือกทั้งหมด
Alias /web1 /opt/web1

ใส่เพิ่มได้เรื่อยๆครับ
เซฟไฟล์แล้วรีสตาร์ท Apache

เวลาเรียกก็เรียกแบบนี้ http://x.x.x.x/myweb หรือ http://x.x.x.x/web1

บทความที่เกี่ยวข้อง
เทคนิคการทำ Self Signed Certificate ให้ Apache Web Server
เทคนิคป้องกันหน้าเว็บเพจด้วย Apache Auth