การสร้าง virtualhost บน Apache2 web server (2.4.x ขึ้นไป)

ขอเล่าเรื่องการสร้าง virtualhost บน Apache2 web server (2.4.x ขึ้นไป) อย่างง่ายๆ แต่ก็เป็นผลมาจากการเปลี่ยนจาก ubuntu 12.04 server ไปเป็น ubuntu 14.04 server เมื่อเร็วๆนี้ Apache 2.4.x เช่น 2.4.7 ที่มาพร้อม ubuntu 14.04 server จะมีการจัดการเรื่อง Document root ที่แตกต่างจากเวอร์ชั่นที่ต่ำกว่า เช่น Document root จะอยู่ที่ /var/www/html แทนที่จะเป็น /var/www เหมือนเดิม ดังนั้นเมื่อทำ virtualhost จึงต้องมีการวางไดเรกทอรีไว้ที่ /var/www และทำ virtualhost เช่น www.example.com และชี้ documentroot ที่ /var/www/www.example.com มาดูกันครับว่าจะต้องทำอย่างไรบ้าง เริ่มต้นที่หลังจากติดตั้ง ubuntu 14.04 เสร็จแล้ว พร้อมทั้งได้ติดตั้ง packages LAMP หากไม่แน่ใจก็ตรวจสอบด้วยคำสั่ง sudo tasksel ในบทความมีการอ้างถึง editor ที่ใช้แก้ไขไฟล์ชื่อ vi หากไม่คุ้นเคยวิธีใช้ก็ให้เปลี่ยนเป็นคำว่า nano จะเป็น full screen editor ใช้ง่ายกว่า ตรวจสอบว่าเรามีโดเมนเนมแล้ว (check domain name) mama@ubuntu:$ host www.example.com www.example.com is an alias for iserver.example.com. iserver.example.com has address 10.0.100.9 เข้าไปที่ไดเรกทอรี mama@ubuntu:$ cd /var/www/ สร้างไดเรกทอรีชื่อ www.example.com mama@ubuntu:/var/www$ sudo mkdir www.example.com สร้างไฟล์ตัวอย่างของเว็บไซต์ mama@ubuntu:/var/www$ sudo vi www.example.com/index.php มีข้อความเพียง 1 บรรทัด <?php echo “WWW Hello, world!”; ?> ใช้คำสั่งแสดงรายการ จะเห็น mama@ubuntu:/var/www$ ls www.example.com/ index.php ใช้คำสั่งแสดงข้อมูลในไฟล์ จะเห็น mama@ubuntu:/var/www$ cat www.example.com/index.php <?php echo “WWW Hello, world!”; ?> เข้าไปไดเรกทอรีสำหรับจัดการ config site mama@ubuntu:/var/www/html$ cd /etc/apache2/sites-available ใช้คำสั่งแสดงรายการ จะเห็น mama@ubuntu:/etc/apache2/sites-available$ ls 000-default.conf  default-ssl.conf สร้างไฟล์สำหรับ config virtual host ชื่อมี .conf ต่อท้ายด้วย mama@ubuntu:/etc/apache2/sites-available$ sudo cp 000-default.conf www.example.com.conf แก้ไขไฟล์ www.example.com.conf mama@ubuntu:/etc/apache2/sites-available$ sudo vi www.example.com.conf แก้ไขเฉพาะบรรทัดข้างล่างนี้ NameVirtualHost www.example.com:80 <VirtualHost www.example.com:80> ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/www.example.com สั่งให้ apache2 รับ site ใหม่ mama@ubuntu:/etc/apache2/sites-available$ sudo a2ensite www.example.com สั่ง reload apache2 mama@ubuntu:/etc/apache2/sites-available$ sudo service apache2 reload ทดสอบ www.example.com ด้วยคำสั่ง w3m mama@ubuntu:/etc/apache2/sites-available$ w3m http://www.example.com จะเห็นหน้าเว็บเพจ WWW Hello, world! กด

Read More »