การทำ Web server ภาษา PHP บน Ubuntu Server


ปัจจุบันภาษา PHP ถูกสอนในหลายๆ สถาบันการศึกษา เพื่อฝึกเด็กนักศึกษาให้เป็นเว็บโปรแกรมเมอร์ ที่มีความสามารถ หลายๆ ท่านอาจจะเคยฝึกเขียนโปรแกรมบนวินโดวส์ อาจจะเคยใช้ Appserv หรือ XAMPP แล้วคิดจะลองเอาโปรแกรมเหล่านี้ ขึ้นไปทดสอบใช้งานบน Server ที่ใช้งานอยู่จริงบ้าง ผมจึงได้เขียนบทความเพื่อแนะนำ การนำโปรแกรมที่เราพัฒนาเหล่านั้นขึ้นไปใช้จริงบน Server ที่นิยมใช้งานบน Hosting ให้เช่า ที่นิยมมากในปัจจุบัน ซึ่งเป็น Apache Web Server

ขั้นแรกนั้นให้เราหาคอมพิวเตอร์เปล่าๆ ซักเครื่องหนึ่ง ไม่จำเป็นว่าจะต้องเป็น คอมพิวเตอร์ที่เค้าจัดจำหน่ายเป็น Server ที่มีขายตามท้องตลาด แต่เราอาจจะนำเอา PC เก่าๆ ซักเครื่องมาทดลอง แล้วทดลองต่อในวงแลน ซึ่งผมเคยทดลองใช้เครื่อง Spec ต่ำที่สุดที่เคยทดลอง ก็คือ CPU 400 Mhz Ram 64M Harrdisk 8G และให้นักเรียนทั้งห้องที่อบรม เข้าไปใช้งาน Web Server ได้ ซึ่งการอบรมครั้งนั้นจัดขึ้นที่ภูเก็ต (http://gallery.lanna-oss.org/index.php/Opensource-training-with-SIPA-Phuket)
ถ้าหากว่าใครยังไม่มีพื้นฐานในการติดตั้ง Ubuntu Server ก็แนะนำให้หาหนังสือของชมรมโอเพนซอร์สล้านนา ไปอ่าน โดยคลิ๊ก Link จากด้านล่างนี้
http://www.lanna-oss.org/Ubuntu-Administrator-Book
ซึ่งการทำ Web Server บน Ubuntu Server ที่ผมนำมาเขียนบทความนี้จะมีทั้งรุ่น 12.04 และ 14.04
หลังจากที่เราติดตั้งจนเสร็จตามขั้นตอนแล้ว ในการที่จะติดตั้ง Web Server วิธีที่ง่ายๆ ก็คือสั่ง
$sudo tasksel
จากนั้นก็จะปรากฎเมนูดังรูปด้านล่าง

ให้เราเลือก openssh กับ LAMP
LAMP ย่อมาจาก Linux Apache Mysql PHP ซึ่งเป็นชุดโปรแกรมสำหรับ Web Server PHP ส่วน Openssh เอาไว้สำหรับ Remote เข้าไปยังตัว Server โดยที่เราจะสามารถใช้ putty remote เข้าไปหรือ อาจจะใช้โปรแกรม winscp สำหรับส่งไฟล์เข้าไปได้
จากนั้นโปรแกรมก็จะถาม password สำหรับ Mysql ดังรูปด้านล่าง

เราก็จะต้องกรอกอยู่สองครั้งเพื่อความถูกต้องของรหัสผ่าน

จากนั้นเราก็จะได้ Ubuntu Server ที่เป็น Linux Server พร้อมใช้งาน
ซึ่งเราจะสามารถทดสอบได้โดยการ เปิดที่ Browser ของเรา แล้วพิมพ์ IP เครื่อง Server นั้น ก็จะปรากฎมีข้อความดังนี้

ซึ่งเครื่องที่ผมตั้งเป็น Web Server ที่ผมทดลองได้รับ IP 192.168.1.74 ส่วนคอมพิวเตอร์ที่ท่านใช้งานอยู่ อาจจะเปลี่ยนแปลงตามเหมาะสม แล้วแต่ท่านจะกำหนด
จากนั้นแล้ว ให้เราทำการ copy โปรแกรม ลงไปยังโดยอาจจะใช้ Winscp หรือโปรแกรมอื่นๆ ที่จะสามารถสื่อสารด้วย ssh หรือ sftp ได้ ซึ่งผมแนะนำให้ไปวางไว้ที่ ~/ หรือ home ของแต่ละท่าน จากนั้นสั่ง
sudo cp ~/*.php /var/www
เพื่อให้โปรแกรมไปอยู่ในส่วนที่สามารถเรียกใช้งานได้
แต่แค่ copy ไฟล์ลงไปใน Folder ยังไม่เพียงพอต่อการใช้งาน เพราะโครงสร้างของ Linux แตกต่างจากวินโดวส์ จะต้องแก้ใข Permission และสิทธิ์เจ้าของแฟ้มให้ถูกต้องโดย
สั่ง
sudo chmod -R 755 /var/www
เพื่อเปลี่ยนสิทธิ์ในการเข้าถึง จากนั้นสั่ง
sudo chown -R www-data:www-data /var/www
เพื่อเปลี่ยนสิทธ์ให้เป็นเจ้าของไฟล์ที่แท้จริง มิฉะนั้นแล้ว การทำงานบางอย่างอาจจะเกิดปัญหา เพราะการเข้าถึงแฟ้มไม่ได้ จะทำให้บางโปรแกรมไม่ทำงาน
จากนั้นเราก็ต้องแก้ใขเพิ่มเติม ในส่วนของ Apache เพื่อไม่ให้เกิดข้อความแจ้ง Error ทุกๆ ครั้งที่ Restart Service ของ Apache
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
ถ้าเป็นรุ่น 12.04 ให้เราสั่ง
เราต้องไปเพิ่มไฟล์ /etc/apache2/conf.d/fqdn ให้ข้างในมีข้อความว่า ServerName localhost โดยสั่ง
echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
หลังจากนั้น ให้สั่ง
sudo /etc/init.d/apache2 restart

แต่ถ้าเป็นรุ่น 14.04 ให้เราสั่ง
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
sudo a2enconf fqdn
sudo service apache2 restart

จากนั้นก็ทดสอบโปรแกรมที่ท่านทำมาทำงานนั้น สามารถทำงานได้อย่างถูกต้องบน Linux หรือไม่ เพราะว่า Bug เป็นสิ่งที่อยู่คู่กับโปรแกรมเมอร์

อ้างอิงจาก
http://askubuntu.com/questions/256013/could-not-reliably-determine-the-s...