สิ่งที่ควรรู้
- ในเทอร์มินัล ใช้คำสั่ง sudo apt-get install tasksel && sudo tasksel install lamp-server
- รักษาความปลอดภัย MySQL ใหม่: sudo mysql_secure_installation แล้วตั้งรหัสผ่าน Admin (root)
- ทดสอบ Apache: เปิด Firefox ใส่ https://localhost หากเห็น It Works และโลโก้ Ubuntu แสดงว่าติดตั้งสำเร็จ
คู่มือนี้แสดงวิธีง่ายที่สุดในการติดตั้ง LAMP Web Server บน Ubuntu Desktop (รองรับถึง 20.04 LTS) LAMP ย่อมาจาก Linux, Apache, MySQL, PHP
วิธีติดตั้ง LAMP Web Server ด้วย Tasksel
ติดตั้ง LAMP Stack ทั้งหมดง่ายมาก ใช้เพียง 2 คำสั่ง
บทความอื่นอาจสอนติดตั้งแต่ละส่วนแยกกัน แต่สามารถติดตั้งทั้งหมดพร้อมกันได้
เปิดเทอร์มินัล กด Ctrl + Alt + T พร้อมกัน
ในเทอร์มินัล พิมพ์คำสั่ง:
sudo apt-get install tasksel sudo tasksel install lamp-server
คำสั่งด้านบนติดตั้งเครื่องมือ tasksel แล้วใช้ tasksel ติดตั้ง Meta-package ชื่อ lamp-server
ตั้งค่ารหัสผ่าน MySQL
หลังรันคำสั่งข้างต้น แพ็กเกจ Apache, MySQL, PHP จะถูกดาวน์โหลดและติดตั้ง ตอนนี้ต้องรักษาความปลอดภัย MySQL ใหม่และเพิ่มรหัสผ่าน Admin เพื่อจัดการ
เปิดเทอร์มินัล รันคำสั่งเพื่อเริ่มสคริปต์ความปลอดภัยของ MySQL:
sudo mysql_secure_installation
สคริปต์จะขอตั้งค่า Password Validation กด N มิฉะนั้น Plugin จะรบกวนเครื่องมืออย่าง PHPMyAdmin ภายหลัง

จะถูกขอรหัสผ่าน Admin (root) รหัสนี้ไม่ใช่รหัสล็อกอิน ตั้งค่าอะไรก็ได้ ควรตั้งให้ปลอดภัยที่สุด เพราะผู้ครองรหัสนี้สามารถจัดการ Database Server ทั้งหมด สร้าง/ลบ User, Permission, Schema, Table ฯลฯ
หลังใส่รหัสผ่าน จะมีคำถามเพิ่มเติมสำหรับรักษาความปลอดภัย ตอบ Y ทุกข้อ
จะกลับสู่ Command Prompt ทดสอบ Server ว่าทำงานสำเร็จหรือไม่

Tasksel คืออะไร?
Tasksel ให้ติดตั้งกลุ่มแพ็กเกจพร้อมกัน ดังที่กล่าว LAMP = Linux, Apache, MySQL, PHP มักติดตั้งร่วมกัน
รัน taskcel เพียงอย่างเดียว:
sudo tasksel
จะแสดงหน้าต่างรายการแพ็กเกจ/กลุ่มแพ็กเกจ ที่ติดตั้งได้ เช่น KDE Desktop, Lubuntu Desktop, Mail Server, OpenSSH Server
ติดตั้งด้วย tasksel ไม่ใช่ติดตั้งแพ็กเกจเดียว แต่กลุ่มแพ็กเกจที่เกี่ยวข้องรวมกันเป็นระบบใหญ่ ในกรณีนี้คือ LAMP Server
ข้อควรทราบเกี่ยว Apache Server
Apache เป็นหนึ่งในหลาย Web Server สำหรับ Linux อื่นๆ ได้แก่ Lighttpd และ NGinx
MySQL คือ Database Server ช่วยทำให้หน้าเว็บโต้ตอบได้ โดยเก็บและแสดงข้อมูล
PHP (Hypertext Preprocessor) คือภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ สร้าง Server-side Code และ Web APIs ที่ Client-side (HTML, JavaScript, CSS) เรียกใช้
บทความนี้示範ติดตั้ง LAMP บน Ubuntu Desktop เพื่อให้นักพัฒนาเว็บตั้งค่าสภาพแวดล้อม Development/Test Ubuntu Web Server ยังใช้เป็น Intranet สำหรับหน้าเว็บภายในบ้านได้
แม้จะทำให้ Web Server เข้าถึงได้จากสาธารณะ แต่ไม่เหมาะกับคอมพิวเตอร์บ้าน เพราะ ISP มักเปลี่ยน IP Address ต้องใช้ DynDNS สำหรับ Static IP แบนด์วิดท์ของ ISP อาจไม่เพียงพอสำหรับ Serve หน้าเว็บ
เปิดให้สาธารณะยังหมายความว่าคุณต้องรับผิดชอบรักษาความปลอดภัย Apache ตั้งค่า Firewall และ Patch ซอฟต์แวร์ให้ถูกต้อง
หากต้องการสร้างเว็บไซต์สำหรับสาธารณะ แนะนำเลือก Web Host ที่มี CPanel Hosting ซึ่งลดภาระเหล่านี้
วิธีทดสอบ Apache
วิธีง่ายที่สุดทดสอบ Apache:
เปิด Firefox คลิกไอคอนบน Launcher (ลำดับที่ 3 จากบน)
ใน Address Bar ใส่ https://localhost
ควรเห็นหน้าเว็บ หากเห็นคำว่า "It Works" พร้อมโลโก้ Ubuntu และคำว่า Apache แสดงว่าติดตั้งสำเร็จ

หน้านี้เป็น Placeholder แทนที่ด้วยเว็บเพจของคุณได้ ไฟล์เว็บต้องเก็บในโฟลเดอร์ /var/www/html
หน้านี้ชื่อ index.html เพื่อแก้ไข ต้องมี Permission โฟลเดอร์ /var/www/html วิธีแนะนำ:
เปิดเทอร์มินัล รันคำสั่ง:
sudo gpasswd -a username www-data sudo chown -R www-data:www-data /var/www/html sudo chmod -R g+rwx /var/www/html
แทนที่ "username" ในคำสั่งแรกด้วย Username จริง ต้อง Log out และ Login ใหม่ (หรือ Restart) เพื่อให้ Permission 有效
วิธีตรวจสอบว่า PHP ติดตั้งสำเร็จ
ขั้นตอนต่อไป ตรวจสอบ PHP:
เปิดเทอร์มินัล รัน:
sudo nano /var/www/html/phpinfo.php
หากชอบ Vim, Emacs, Gedit ใช้แทน Nano ได้
ใน Nano Editor ใส่โค้ด PHP:
<?php phpinfo(); ?>
บันทึก Ctrl+O ออก Ctrl+X
เปลี่ยน Permission และ Owner ให้ Server เข้าถึงและรันได้:
sudo chown www-data:www-data /var/www/html/phpinfo.php sudo chmod +x /var/www/html/phpinfo.php
เปิด Firefox ใส่ใน Address Bar:
https://localhost/phpinfo.php
หาก PHP ติดตั้งถูกต้อง จะเห็นหน้าข้อมูล PHP คล้ายภาพ
หน้า PHPInfo มีข้อมูลมากมาย รวม PHP Modules ที่ติดตั้ง และ Apache Version ควรเก็บหน้านี้ไว้ขณะพัฒนา เพื่อตรวจสอบ Module ที่โปรเจกต์ต้องการ
แนะนำ MySQL Workbench
MySQL ตัวเดียวยากต่อการจัดการจากบรรทัดคำสั่ง แนะนำติดตั้งอีก 2 เครื่องมือ:
- MySQL Workbench
- PHPMyAdmin
ทดสอบ MySQL ด้วยคำสั่งง่ายในเทอร์มินัล:
sudo mysqladmin -u root -p status
เมื่อขอรหัสผ่าน ใส่รหัส Root ของ MySQL (ไม่ใช่รหัส Ubuntu)

หาก MySQL ทำงาน จะเห็นข้อความ:
Uptime: 6269 Threads: 3 Questions: 33 Slow queries: 0 Opens: 112 Flush tables: 1 Open tables: 31 Queries per second avg: 0.005
ติดตั้ง MySQL Workbench:
sudo apt install mysql-workbench
หาก Ubuntu ยังไม่แพ็กเกจ Workbench สำหรับรุ่นล่าสุด ตรวจสอบหน้าดาวน์โหลดทางการ บางครั้งติดตั้งแพ็กเกจรุ่นก่อนหน้าก็ได้
cd ~/Downloads sudo apt install ./mysql-workbench-community_X.X.XX-ubuntuXX.XX_amd64.deb
ก่อนเปิด Workbench ต้องมี User จัดการ เพื่อความปลอดภัย ไม่สามารถล็อกอินเป็น Root ต้องสร้าง User ใหม่สำหรับแต่ละ Database ที่ต้องการจัดการ เช่น ตั้งค่า WordPress:
sudo mysql -u root -p CREATE DATABASE wordpress; CREATE USER `wpadmin`@`localhost` IDENTIFIED BY 'userpassword'; GRANT ALL ON wordpress.* TO `wpadmin`@`localhost`; FLUSH PRIVILEGES; \q
สร้าง Database WordPress และ User MySQL ชื่อ "wpadmin" รหัส "userpassword" เพื่อจัดการ
ติดตั้งเสร็จ กดไอคอน Applications บน Launcher พิมพ์ "MySQL" ในกล่องค้นหา
ไอคอนโลมา (Dolphin) แทน MySQL Workbench เลือก Dolphin Icon เมื่อปรากฏ

Workbench เปิดครั้งแรก จะเห็น Connection Box ทั่วไปด้านล่าง เลือกมัน แล้วกดไอคอน Wrench (Edit) ด้านบน ข้าง MySQL Connections

หน้าต่างใหม่ ปรับ Connection Info เปลี่ยน Username จาก root เป็นที่คุณเลือก

หากไม่ต้องการพิมพ์รหัสทุกครั้ง เลือก Store in Keychain ข้าง Password ใส่รหัส Database User ปิดหน้าต่าง
เลือก Connection อีกครั้งเพื่อเชื่อมต่อ Database

MySQL Workbench ทรงพลัง แต่ค่อนข้างช้า
แถบด้านซ้ายเลือกด้านต่างๆ ของ MySQL Server:
- Server Status
- Client Connections
- Administer Users and Privileges
- Manage System Variables
- Export Data
- Import Data
Server Status แสดงสถานะ Server Uptime, Load, Connections ฯลฯ
Client Connections แสดงการเชื่อมต่อปัจจุบัน
ใน Users and Privileges เพิ่ม User เปลี่ยนรหัสผ่าน กำหนดสิทธิ์ต่อ Schema ต่างๆ
มุมซ้ายล่าง แสดง Database Schemas เพิ่ม Schema ใหม่ได้ด้วยคลิกขวา Create Schema
ขยาย Schema เพื่อดู Objects: Tables, Views, Stored Procedures, Functions
คลิกขวา Object เพื่อสร้าง Object ใหม่ เช่น Table ใหม่
แผงขวาเป็นพื้นที่ทำงานจริง เช่น สร้าง Table เพิ่ม Columns พร้อม Data Types เพิ่ม Procedures Template สำหรับ Stored Procedure
วิธีติดตั้ง PHPMyAdmin
เครื่องมือยอดนิยมจัดการ MySQL คือ PHPMyAdmin ติดตั้งเพื่อยืนยันว่า Apache, PHP, MySQL ทำงานถูกต้อง
เปิดเทอร์มินัล รัน:
sudo apt install phpmyadmin

หน้าต่างถาม Web Server ที่ติดตั้ง
ค่าเริ่มต้นคือ Apache กด Tab ไฮไลท์ OK กด Enter
หน้าต่างถามสร้าง Database เริ่มต้นสำหรับ PHPMyAdmin
กด Tab เลือก Yes กด Enter
PHPMyAdmin ขอ Username จัดการ Database ค่าเริ่มต้น "phpmyadmin" ใช้ได้ หรือเปลี่ยนชื่อที่จดจำง่าย
สุดท้าย กรอกรหัสผ่านสำหรับ Database PHPMyAdmin ใส่รหัสปลอดภัยสำหรับ Login PHPMyAdmin
ซอฟต์แวร์ติดตั้งเสร็จ กลับสู่ Command Prompt
อาจไม่ต้องขั้นตอนนี้ บน Ubuntu 20.04 LTS ทดสอบไม่จำเป็น ลองใช้ PHPMyAdmin ก่อน หากไม่ทำงาน ค่อยกลับมาทำขั้นตอนนี้
รันคำสั่งตั้งค่า Apache สำหรับ PHPMyAdmin:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin.conf sudo systemctl reload apache2.service
คำสั่งสร้าง Symbolic Link apache.conf จาก /etc/phpmyadmin ไป /etc/apache2/conf-available
บรรทัดที่ 2 เปิดใช้งาน phpmyadmin config ใน Apache บรรทัดสุดท้าย Restart Apache Service
ตอนนี้ควรใช้ PHPMyAdmin จัดการ Database ได้:
- เปิด Firefox
- ใส่ https://localhost/phpmyadmin ใน Address Bar
- ใส่รหัสผ่าน PHPMyAdmin กด Go

จะเข้าสู่หน้าจัดการ PHPMyAdmin จัดการ Database ได้จากที่นี่

PHPMyAdmin เป็นเครื่องมือเว็บจัดการ MySQL Database
แผงซ้ายแสดง Database Schemas คลิก Schema จะขยายแสดง Objects
แถบไอคอนบนสุดจัดการด้านต่างๆ ของ MySQL:
- Databases
- SQL Editor
- Server Status
- User Accounts
- Export Data
- Import Data
- Settings
- Replication
- Variables
- Character Sets
- Engines
- Plugins
เพิ่มเติม
ตอนนี้มี Database Server พร้อม สามารถเริ่มพัฒนา Web Application แบบเต็มรูปแบบ
จุดเริ่มต้นเรียน HTML, CSS, ASP, JavaScript, PHP ที่ดีคือ W3Schools
เว็บไซต์มี Tutorials ครบครัน ง่ายต่อการเข้าใจ สำหรับ Client-side และ Server-side Development
แม้จะไม่ได้ความรู้ลึก แต่จะเข้าใจพื้นฐานและแนวคิดพอเริ่มต้นได้