Saturday, January 02, 2010

การติดตั้ง LAMP บน Ubuntu

การติดต้ัง LAMP (Linux + Apache + MySQL + PHP) บน Ubuntu

หากติดต้ัง Ubuntu Server จะสามารถเลือก Package LAMP ได้จาก
option ตอนที่ติดต้ังได้เลย แต่หาก ติดตั้ง Ubuntu Desktop นั้น
ก็สามารถทำได้ง่ายๆ ดังนี้



เตรียมพร้อม การติดตั้ง 
1.1. เปิด Terminal ขึ้นมา (Appication -> Accessories -> Terminal)
1.2. พิมพ์คำสั่ง sudo apt-get update  แล้วก็กด Enter ไปหนึ่งที
1.3. จากนั้น จะถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
1.4. โปรแกรมก็จะทำการเชื่อมต่อไปยัง Server ตาม file /etc/apt/sources.list 
    ไปเรื่อยๆ จนกระทั่งขึ้นคำว่า Reading package lists... Done
     แล้วก็จะกลับมาที่ prompt อีกครั้ง 
     แต่หากไม่สามารถเชื่อมต่อได้ อาจจะเป็น เพราะต้องผ่าน proxy สามารถแก้ไขได้โดย
     พิมพ์ sudo export http_proxy="http://serveraddress:port/"
     เช่น sudo export http_proxy="http://202.12.97.116:8088/"
     จากนั้นก็ลอง sudo apt-get update อีกที

..............................................................................................................

เริ่มต้นติดตั้ง Apache 
เริ่มต้นจาก Apache ก่อนเลยละกัน 
2.1. เปิด Terminal ขึ้นมา (Appication -> Accessories -> Terminal)
2.2. พิมพ์คำสั่ง sudo apt-get install apache2  แล้วก็กด Enter ไปหนึ่งที
2.3. จากนั้น จะถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
Ubuntu ก็จะไป get package apache2 มาแล้วก็ทำการติดต้ัง ให้เรียบร้อย
เป็นอันว่า เสร็จไปหนึ่ง .... แต่ยังก่อน เพื่อความแน่ใจ เรามาทดสอบกันดีกว่า

ทดสอบ Apache
3.1. เปิด Terminal ขึ้นมา แล้วพิมพ์คำสั่ง netstat -lnt (แอลเอ็นที) 
3.2. มองหาบรรทัดที่มี 0 :::80 :::* LISTEN ถ้ามีแสดงว่า Apache พร้อมให้บริการแล้ว
3.3. เปิด Browser ขึ้นมา ที่ช่อง Address ใส่ http://localhost ควรจะเจอ หน้าพื้นฐานของ
    Apache คือ It works! 
..................................................................................................................

ข้าม MySQL ไปก่อน เรามาติดต้ัง PHP ก่อนดีกว่า

เริ่มต้นติดต้ัง PHP 
 
4.1. เหมือนเดิมครับขั้นแรก เปิด Terminal ขึ้นมา (Appication -> Accessories -> Terminal)
4.2. พิมพ์ sudo apt-get install php5 libapache2-mod-php5  แล้วก็กด Enter ไปหนึ่งที
4.3. จากนั้น จะถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
Ubuntu ก็จะไป get package PHP มาแล้วก็ทำการติดต้ัง ให้เรียบร้อย
เป็นอันว่า เสร็จไปอีกหนึ่ง .... จริงเหรอ ? 
ยังก่อน เพราะว่า Apache มันจะยังไม่รู้ตัวว่ามีเพื่อนร่วมทีมมาอีกคน คือ PHP 
แล้วจะทำไง ??? ง่ายๆ ก็สั่งให้มันเริ่มทำงานใหม่ โดยการพิมพ์คำสั่ง

sudo /etc/init.d/apache2 restart 

(หากเจอ error Could not reliably determine the server's  fully qualified domain name,
using 127.0.0.1 for ServerName ให้แก้ไข file /etc/apache2/httpd.conf เพิ่ม บรรทัด SeverName localhost เข้าไป 
แล้ว sudo /etc/init.d/apache2 restart อีกครั้ง error จะหายไป) 

ทดสอบ PHP มั่งดีกว่า
ติดตั้งไปสองตัวแล้ว แนะนำให้มันรู้จักกันแล้ว ทีนี้ จะมั่นใจได้ไงว่ามันทำงานร่วมกันได้
ม่ะ เรามาทดสอบกันดีกว่า 
5.1. อีกทีครับ เปิด Terminal ขึ้นมา (Appication -> Accessories -> Terminal)
5.2. พิมพ์ sudo nano /var/www/testphp.php  แล้วก็กด Enter ไปหนึ่งที
5.3. จากนั้น จะถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
5.4. จะมีหน้าจอ nano ขึ้นมา (เป็น text editor ตัวนึงที่ผมชอบมาก) ให้พิมพ์ บรรทัดนี้ลงไป
    <?php phpinfo(); ?> แค่นี้เองครับ แล้วก็ save file (กด Ctrl+O ปุ่ม Ctrl กับ ตัวโอ พร้อมกัน
    จะมีข้อความว่า File Name to Write: /var/www/testphp.php ให้กด Enter ไปทีนึง) 
5.5. ทีนี้ ก็ไปที่ Browser แล้วพิมพ์  http://localhost/testphp.php เข้าไปที่ช่อง URL
    ก็จะแสดงหน้ารายละเอียด ของ PHP ขึ้นมา เป็นอันว่าเรียบร้อย Apache กับ PHP 
    สามารถไปด้วยกันได้แล้ว !!!
..............................................................................................................

มาถึงขั้นตอนสุดท้ายแล้ว 
ติดตั้ง MySQL 

6.1. เหมือนเดิมครับ เปิด Terminal ขึ้นมา (Appication -> Accessories -> Terminal)
6.2. แล้วก็พิมพ์ sudo apt-get install mysql server เข้าไปแล้วก็กด Enter ไปหนึ่งที
6.3. จากนั้น จะถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
6.4. ถ้าเราต้องการให้เครื่องอื่น สามารถเข้าถึง database ของเราได้ให้ดำเนินการดังนี้
       พิมพ์ sudo nano /etc/mysql/my.cnf  แล้วก็กด Enter ไปหนึ่งที
       จากนั้น จะถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
       จะมีหน้าจอ nano ขึ้นมา ให้แก้ไขบรรทัดที่บอกว่า bind-address = 127.0.0.1 
       เป็น bin-address = ipของเครื่องตัวเอง ( ใน nano เราสามารถค้นหาคำได้โดยกด 
       ปุ่ม Ctrl และปุ่ม w พร้อมกัน แล้วพิมพ์คำที่ต้องการลงไป! ) 
6.5. ที่ Terminal ให้พิมพ์คำว่า mysql -u root แล้วกด Enter ไปหนึ่งที จะเป็นการเข้าสู่ mysql
6.6. ที่ prompt จะเปลี่ยนไปเป็น mysql> ดำเนินการดังนี้
       mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('รหัสผ่านที่ต้องการ');
       แล้วก็จำรหัสผ่านนั้นไว้ให้แม่นๆ แล้วก็พิมพ์ mysql> exit ออกมาซะ
6.7. ทีนี้ถ้าจะทำงานบน command line คงไม่สะดวก เอาเครื่องมือช่วยดีกว่าเราจะมาติดตั้งโปรแกรม
       อีกตัวที่ชื่อ phpMyAdmin เป็นการจัดการ Database ผ่าน Browser ครับ ตั้งสติดีๆ พร้อมแล้วพิมพ์เลย

    sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin เข้าไปแล้วก็กด 

    Enter ไปหนึ่งที จากนั้น จะมีการถาม password ของ superuser ให้ใส่เข้าไป แล้วกด Enter ไปอีกที
    โปรแกรมก็จะได้รับการติดต้ังเรียบร้อย ??? ยังก่อน เราต้องให้ php มันทำความรู้จักกับ MySQL นิดนึง
    โดยเราต้องไปแก้ไข file ทีชื่อว่า php.ini เอาละ ตั้งสติดีๆ พร้อมยัง พร้อมแล้วลุยเลย พิมพ์

     sudo nano /etc/php5/apache2/php.ini แล้วกด Enter ไปอีกที เหมือนเคย

     ทีนี้เราก็ค้นหาบรรทัดที่ว่า ;extension=mysql.so (ลืมอ้ะยัง ใช้ปุ่ม Ctrl + w ในการค้นหาคำที่ต้องการครับ)
     แล้วก็ดำเนินการ ลบ ; ข้างหน้ามันออกไปซะ save file แล้วก็ออกจาก nano กลับมาที่ prompt ครับ 
     ทีนี้ ก่อนมันจะทำงานได้ ก็ต้อง restart apache อีกครั้งโดยการ พิมพ์ 

     sudo /etc/init.d/apache2 restart แล้วกด Enter ไปทีนึง

     เป็นอันเรียบร้อย เราก็เข้าไปดูผลงานตัวเองสักหน่อย โดยการเปิด Browser ขึ้นมา แล้วในช่อง Address 
     ให้ใส่ http://localhost/phpmyadmin แล้วกด Enter จะมีหน้าจอ log-in ของ phpMyAdmin ขึ้นมา 
     ช่อง Username ให้ใส่ root ช่อง Password ให้ใส่รหัสผ่านที่เราได้ตั้งไว้ ตามข้อ 6.6 แล้วกดปุ่ม Go
     ก็จะปรากฎหน้า database ของเราในรูปแบบ Graphic ครับ 

เสร็จเรียบร้อยแล้วครับ เท่านี้เราก็จะได้ LAMP บน Ubuntu แล้วครับ ^__^