ติดตั้ง LAMP Server บน Linux Mint 13
LAMP Server เป็นชื่อเรียกสั้นๆ ของ Linux + Apache + MySQL + PHP ครับ สำหรับบน Windows เราเรียกกันว่า WAMP (Windows + Apache + MySQL + PHP) ซึ่งปกติที่เราใช้กันก็ไม่พ้น AppServ หรือ XAMPP อะไรพวกนี้ ซึ่งเราเพียงแค่โหลดตัวติดตั้งมา และติดตั้งมันลงไป ก็พร้อมใช้งาน
สำหรับบน Linux นั้นอาจจะไม่มีตัวติดตั้งสำเร็จรูปแบบบนวินโดวส์ (ผมเคยเจอก็เป็นลักษณะของ shell script) แต่ก็ยังคงสามารถติดตั้งได้ผ่านการลงแพ็คเกจแต่ละตัวลงไปเอง พร้อมกับคอนฟิกเพิ่มเติมนิดหน่อยครับ วันนี้เลยจะพาไปดูการติดตั้ง LAMP บน Linux Mint 13 กันครับ (ลีนุกซ์สายพันธุ์ Debian อื่นๆ เช่น Debian หรือ Ubuntu ก็ใช้วิธีไม่ต่างกันนัก)
ติดตั้ง Apache2
แพ็คเกจที่เราจะต้องติดตั้งก็คือแพ็คเกจ apache2 ครับ เราสามารถค้นหาใน Software Manager ได้เลย
หรือสามารถติดตั้งผ่าน Terminal ก็ได้เช่นกัน ด้วยคำสั่ง
sudo apt-get install apache2
Apache 2 ไม่ต้องคอนฟิกอะไรมากครับ เมื่อติดตั้งเสร็จสามารถเปิดเบราเซอร์และลองเข้า http://localhost ดูได้เลย ก็สมควรจะเจอหน้าทดสอบของ Apache แล้วครับ
แก้ไข Document root ของ Apache2
เรื่องน่ารำคาญอย่างหนึ่งของ Apache2 หลังจากที่เราติดตั้งลงไปใหม่ๆ ก็คือ Document root ของมันจะไปอยู่ที่ /var/www ครับ ซึ่งเราจำเป็นจะต้องเป็น root หรือใช้คำสั่ง sudo ทุกครั้งที่ต้องการแก้ไขไฟล์ในนั้น ซึ่งไม่ค่อยจะน่ารื่นรมย์สักเท่าไหร่นัก ดังนั้นเราจึงต้องแก้ให้ Document root ไปอยู่ในไดเรคทอรี่ที่เรียกใช้ได้สะดวกๆ นั่นคือใน home ของเรานั่นเองครับ
แต่ละ User บนลีนุกซ์ มักจะมี home directory ของตัวเองอยู่ใน /home/<username> (เช่นของผมที่ใช้ user ว่า jirayu ก็จะเป็น /home/jirayu หรือถ้าใช้ user ว่า xxx ก็จะอยู่ใน /home/xxx) ดังนั้นผมจึงจะสร้างไดเรคทอรี่ /home/jirayu/www เอาไว้ เพื่อใช้เก็บไฟล์สำหรับเว็บไซต์ครับ เอาล่ะ เปิด home แล้วไปสร้างโฟลเดอร์ www กันซะ
จากนั้นก็ให้ไปแก้ไขไฟล์ /etc/apache2/sites-enabled/000-default ครับ ซึ่งต้องอาศัยสิทธิ์ของ root ในการแก้ไข ถ้าผ่าน terminal เราก็ใช้คำสั่งอย่างเช่น
sudo gedit /etc/apache2/sites-enabled/000-default
หรือ
sudo nano /etc/apache2/sites-enabled/000-default
ในการแก้ไขได้ในทันที หรือถ้าผ่าน File Manager อย่าง Nautilus ก็เข้าไปที่ File System > etc > apache2 > sites-enabled และคลิกขวาที่ไฟล์ 000-default?และเลือก Open as administrator
ให้เราแก้ไข directory สองจุด คือตรง
DocumentRoot /var/www
และ
<Directory /var/www/>
ให้ตรงกับไดเรคทอรี่ใหม่ที่สร้างไว้ เช่น
DocumentRoot /home/jirayu/www
และ
<Directory /home/jirayu/www/>
เสร็จเรียบร้อยให้เซฟเอาไว้ และลองไปก็อปไฟล์ /var/www/index.html ไปไว้ที่ /home/<username>/www ครับ แล้วจะลองแก้ไขไฟล์ index.html ให้ข้างในต่างจากเดิมบ้างก็ได้ (เพื่อจะได้เห็นความต่าง) จากนั้นให้ restart apache2 หนึ่งรอบ ผ่านคำสั่ง
sudo service apache2 restart
เรียบร้อยแล้วก็เปิดเบราเซอร์ขึ้นมา และเปิดไปที่ http://localhost เหมือนเดิม ถ้าไม่มีอะไรผิดพลาดก็ควรจะขึ้นหน้า index.html ของเราใน ~/www เป็นที่เรียบร้อยแล้วครับ
จากนี้จะของเรียก /home/<username>/www ว่า ~/www นะครับ เนื้องจากบนลีนุกซ์ ไดเรคทอรี่ ~ คือช็อตคัทเข้าไปยัง home directory ของเราครับ เช่นถ้าผมสั่ง cd ~ มันก็จะไปโผล่ที่ /home/jirayu นั่นเอง
ติดตั้ง PHP
แพ็คเกจต่อมาที่เราจะต้องติดตั้งก็คือแพ็คเกจเกี่ยวกับ PHP ครับ ในส่วนนี้เราต้องการ 2 แพ็คเกจ นั่นก็คือ php5 และ libapache2-mod-php5 และเช่นเคยว่าสั่งสองแพ็คเกจนี้สามารถหาเอาได้ Software Manager ครับ หรือพิมพ์คำสั่งติดตั้งลงไปว่า
sudo apt-get install php5 libapache2-mod-php5
เมื่อติดตั้งเสร็จ เราสามารถสร้างไฟล์ php เพื่อทดสอบได้ครับ ให้ลองสร้างไฟล์ phpinfo.php ขึ้นมา และใส่ข้างในให้มีโค๊ดดังนี้
<? echo "DocRoot: ".$_SERVER['DOCUMENT_ROOT']; echo "<hr>"; phpinfo(); ?>
เรียบร้อยให้เซฟเอาไว้ใน ~/www และเมื่อเปิดเบราเซอร์ไปที่ http://localhost/phpinfo.php ก็ควรจะเจอหน้าตาประมาณนี้ครับ
ติดตั้ง MySQL
มาถึงส่วนสุดท้าย (แต่อาจไม่ท้ายสุด) ของการติดตั้ง LAMP กันครับ นั่นคือ MySQL ครับ ในขั้นตอนนี้จะใช้แพคเกจ 3 ตัวด้วยกัน นั่นคือ mysql-server, libapache2-mod-auth-mysql, และ php5-mysql ครับ ทั้งสามแพ็คเกจนี้สามารถหาได้จากใน Software Manager เช่นเคย หรือสามารถติดตั้งผ่าน Terminal ก็ได้เช่นกัน โดยเราจะแบ่งการติดตั้งออกเป็น 2 ขั้นตอนครับ คือการติดตั้ง mysql-server และการติดตั้ง libapache2-auth-mysql กับ php5-mysql
เริ่มด้วยการติดตั้ง MySQL ผ่านคำสั่ง
sudo apt-get install mysql-server
อย่างไรก็ตาม ในขั้นตอนติดตั้ง mysql-server ผมยังไม่เคยลองติดตั้งผ่าน Software Manager จึงไม่ทราบว่ามันจะขึ้นมาให้ตั้งรหัสผ่านของ root เหมือนอย่างการติดตั้งผ่าน Terminal ซึ่งถ้าหากว่ามันไม่ขึ้นมาให้ตั้งรหัสผ่าน เราสามารถตั้งรหัสผ่านได้เองครับ โดยขึ้นแรกให้เปิด Terminal ขึ้นมา และเรียกใช้ mysql
mysql -u root
เสร็จแล้วมันจะขึ้นพรอมท์ mysql> มาให้ครับ ให้เราพิมพ์คำสั่งต่อไปนี้ลงไป (และอย่าลืม ; ปิดท้ายนะครับ)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('รหัสผ่านที่ต้องการ');
ก็เป็นอันเสร็จขั้นตอนการตั้งรหัสผ่านให้ root จากนั้นเราสามารถพิมพ์ quit หรือปิดหน้าต่าง Terminal ออกมาได้เลยครับ
ขั้นตอนต่อไปคือการติดตั้ง libapache2-auth-mysql และ php5-mysql ซึ่งสามารถหาได้ใน Software Manager เช่นเคย หรือผ่าน Terminal ด้วยคำสั่งต่อไปนี้
sudo apt-get install libapache2-mod-auth-mysql php5-mysql
เมื่อติดตั้งเรียบร้อย ก็ให้ทำการ restart apache2 สักรอบครับ
sudo service apache2 restart
เราสามารถทดสอบว่า MySQL ใช้งานได้หรือยัง ด้วยการลองต่อกับฐานข้อมูลดูครับ ให้เปิดไฟล์ phpinfo.php ของเรากลับขึ้นมา และใส่โค๊ดเหล่านี้ลงไปแทนของเดิม
<? $db['host'] = "localhost"; $db['user'] = "root"; $db['pass'] = "รหัสผ่านที่ตั้งไว้"; $connect = mysql_connect($db['host'], $db['user'], $db['pass']); if($connect){ echo "Database is now connected"; }else{ echo "Database connection fail"; } ?>
หากไม่มีปัญหาอะไร ก็ควรจะขึ้นว่า Database is now connected ดังภาพครับ
ถึงตอนนี้ ทุกอย่างก็พร้อมใช้งานแล้วครับ ขาดก็เพียงแต่ phpMyAdmin ซึ่งผมจะเขียนให้อีกทีในภายหลังครับ (หรือไม่ก็สามารถหาวิธีติดตั้ง phpMyAdmin บนลีนุกซ์ได้จากในกูเกิลครับ)
และถ้าหากใครต้องการลองทำโดเมนหลอกๆเอาไว้ในเครื่องตัวเองเพื่อทดสอบหลายๆเว็บ (เช่นทำ wordpress.loc ไว้สำหรับทดสอบเวิร์ดเพรส และทำ drupal.loc ไว้สำหรับทำสอบดรูปอล) สามารถตามไปอ่านได้ในบทความนี้เลยครับ
ปล.ไฟล์ v-host ของ Apache2 บน debian จะเก็บเอาไว้ที่ /etc/apache2/sites-enable ครับ ลองดูไฟล์ 000-default เป็นตัวอย่างได้เลย (บทความในตัวอย่างเป็นการทำบน Windows ครับ เดี๋ยวไว้ว่างๆจะเขียนเวอร์ชั่นลีนุกซ์ให้อีกทีนะครับ)