เมื่อวันจันทร์ที่ผ่านมา ผมต้องทำเว็บเซิร์ฟเวอร์ให้กับคณะเภสัชศาสตร์ ศิลปากร (ไม่เคยทำมาก่อนด้วย ก็กลัวจะทำไมได้เหมือนกัน) โดยตอนแรกเลือกใช้ Ubuntu Server 8.04 LTS แล้วก็เปลี่ยนมาเป็น Debian Lenny แทน ขั้นตอนการลงก็ไม่ได้ยากอะไร หลังจากนั้นก็ลง VHCS (Virtual Hosting Control System) โดยใช้วิธีตามเว็บนี้ VHCS Installation script by Armadillo ซึ่งเราไม่จำเป็นต้องลง Apache2, PHP5, MySQL และ phpMyAdmin ก่อน
ก่อนที่เราจะลง VHCS นั้น เราต้องเพิ่ม source list ก่อน โดยดูจากเว็บไซต์ Dotdeb โดยเปิดไฟล์ที่อยู่ใน /etc/apt/sources.list ด้วยคำสั่ง
vim /etc/apt/sources.list
จากนั้นให้เพิ่ม
deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all
ติดตั้ง VHCS2
ขั้นแรกต้องโหลด script ลงมาที่เครื่องก่อนแล้วจึงสั่งให้ทำงาน ดังนี้
wget http://mirrors.penguinfriends.org/VHCS2/vhcs.sh chmod 777 vhcs.sh ./vhcs.sh
ถัดจากนี้ไป จะเข้าสู่การทำงานตามใน script ที่โหลดมา ผมก็มีหน้าที่กรอกข้อมูลตามที่ script ต้องการเท่านั้น

รูปที่ 1 แสดงภาพข้อตกลงการใช้งานการติดตั้ง VHCS ผ่าน script นี้

รูปที่ 2 แสดงภาพเมนูหลักของการติดตั้ง VHCS
เมื่อเลือกติดตั้ง VHCS 2.4.7.1 แล้ว ก็จะเข้าสู่งขั้นตอนดังต่อไปนี้
- Checking Distribution name
- Beginning Installation Now
- Making Temporary Directories
- Updating apt cache
- Upgrading the system
- Removing Uneeded Packages
- Removing Some Packages from startup if they exist
- Installing Required Packages

รูปที่ 3 แสดงภาพขั้นตอน Installing Required Packagesหลังจากกด enter แล้วก็จะให้ตั้งรหัสผ่านของ MySQL และยืนยันรหัสผ่าน ดังรูปด้านล่าง

รูปที่ 4 แสดงภาพการตั้งรหัสผ่านของ MySQL
รูปที่ 5 แสดงภาพการยืนยันรหัสผ่านของ MySQLขั้นตอนต่อไปนั้นมีความสำคัญมาก โปรดอ่านข้อความในรูปที่ 4 ให้ละเอียดว่าจะต้องทำอะไร

รูปที่ 6 แสดงภาพหน้าต่าง Configuring courier-base
รูปที่ 7 แสดงภาพหน้าต่าง Postfix Configuration
รูปที่ 8 แสดงภาพหน้าต่าง ProFTPD configuration - Downloading VHCS2 Archive
- Untaring VHCS Archive
- Compiling/Installing VHCS2
- Setting up Mysql Password
- Running VHCS Install Engine ในขั้นตอนนี้จะต้องกรอกข้อมูลที่ script ต้องการ ดังรูปด้านล่าง

รูปที่ 9 แสดงภาพตัวอย่างข้อมูลที่ต้องกรอกในการติดตั้ง VHCS2 - Write Configuration Files
- Restart Apache ระหว่างการรีสตาร์ทนั้นผมเจอปัญหาดังรูปด้านล่าง โดยผมจะแก้ไขหลังจากการติดตั้งเสร็จ

รูปที่ 10 แสดงภาพปัญหาที่พบระหว่างการรีสตาร์ท Apache - Adding Daemon to rc*.d
- Restoring user's source.list
- Congratulations

รูปที่ 11 แสดงภาพเสร็จสิ้นการติดตั้ง VHCS2
แก้ไขปัญหาที่พบ
หลังจากติดตั้ง VHCS เรียบร้อยแล้ว ต่อไปเราก็มาแก้ปัญหาที่พบกันต่อ โดยเริ่มแก้ปัญหาของ Apache ก่อน
apache2: apr_sockaddr_info_get() failed for demo.pharm.su.ac.th apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [Mon May 04 20:50:20 2009] [warn] NameVirtualHost *:80 has no VirtualHosts
วิธีแก้ไขนั้นให้เปิดไฟล์ที่ /etc/apache2/apach2.conf ด้วยคำสั่ง
vim /etc/apache2/apach2.conf
จากนั้นให้เพิ่ม Servername demo.pharm.su.ac.th เข้าไปในไฟล์ apache2.conf
Servername demo.pharm.su.ac.th
ต่อไปให้เปิดไฟล์ที่ /etc/apache2/port.conf
vim /etc/apache2/port.conf
จากนั้นให้ comment ในบรรทัดที่เป็น NameVirtualHost *:80
# NameVirtualHost *:80
เมื่อเสร็จแล้ว ลองสั่งรีสตาร์ทด้วยคำสั่ง
/etc/init.d/apache2 restart
จะเห็นว่าไม่มีข้อผิดพลาดแจ้งแล้ว
เมื่อแก้ปัญหาของ Apache เสร็จก็ถึงคราวของ proFTPD บ้าง ซึ่งปัญหาของมัน คือ
- warning: the DisplayFirstChdir directive is deprecated and will be removed in a future release. Please use the DisplayChdir directive. - Fatal: unknown configuration directive 'SQLBackend' on line 88 of '/etc/proftpd/proftpd.conf'
วิธีแก้นั้น ให้เปิดไฟล์ที่ /etc/proftpd/proftpd.conf ด้วยคำสั่ง
vim /etc/proftpd/proftpd.conf
แล้วหาคำว่า DisplayFirstChdir แก้ให้เป็น DisplayChdir ต่อไปเปิดไฟล์ที่ /etc/proftpd/modules.conf ด้วยคำสั่ง
vim /etc/proftpd/modules.conf
ให้เอา comment ของ mod_sql.c และ mod_sql_mysql.c ออก จะเป็นดังตัวอย่าง
# Install proftpd-mod-mysql or proftpd-mod-pgsql to use this LoadModule mod_sql.c ... # Install proftpd-mod-mysql to use this LoadModule mod_sql_mysql.c
ต่อไปเปิดไฟล์ที่ /etc/hosts ด้วยคำสั่งนี้
vim /etc/hosts
ซึ่งข้อมูลที่มีอยู่ คือ
127.0.0.1 demo.local localhost 192.168.77.128 demo demo
ให้แก้เป็น
127.0.0.1 demo.local localhost 192.168.77.128 demo.pharm.su.ac.th demo
เมื่อเสร็จตามขั้นตอนด้านบนแล้ว ให้สตาร์ทการทำงานของ proFTPD ด้วยคำสั่งนี้
/etc/init.d/proftpd start
เมื่อเสร็จแล้ว proFTPD จะสามารถทำงานได้ เสร็จกับการลง VHCS2 บน Debian ละ (ใช้ได้กับเซิร์ฟเวอร์ที่อื่นหรือป่าวไม่รู้นะครับ แต่ที่นี่ใช้งานได้แน่นอน) หากใครมีข้อแนะนำสามารถบอกกันได้นะครับ
ปล. ขอขอบคุณผู้ให้คำแนะนำและให้ความช่วยเหลือ
1. ฟอร์ด
2. พี่สุกรี
3. การ


