คำตอบสั้น ๆ: ติดตั้งชุด LEMP คือ Nginx, PHP-FPM และ MariaDB บน Ubuntu 22.04 หรือ 24.04 พร้อมสร้าง Server Block ให้เว็บไซต์ PHP ทำงานได้ทันที
คู่มือนี้อธิบาย MariaDB ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
LEMP คือชุดซอฟต์แวร์สำหรับรันเว็บไซต์ภาษา PHP ประกอบด้วย Linux, Nginx (อ่านว่า Engine-X), MariaDB หรือ MySQL และ PHP ที่ทำงานผ่าน PHP-FPM ชุดนี้เหมาะกับเว็บไซต์อย่าง WordPress, Laravel หรือระบบหลังบ้านที่เขียนด้วย PHP โดย Nginx รับคำขอจากผู้ใช้และส่งต่อไฟล์ PHP ให้ PHP-FPM ประมวลผล ส่วน MariaDB เก็บข้อมูลของเว็บไซต์
คู่มือนี้อธิบายการติดตั้งบน Ubuntu 22.04 และ 24.04 ตั้งแต่ติดตั้งแพ็กเกจ ตั้งค่า Server Block สำหรับโดเมนของคุณ ไปจนถึงทดสอบว่า PHP ทำงานได้จริง เหมาะสำหรับเซิร์ฟเวอร์ที่เพิ่งสร้างใหม่และยังไม่มี Web Server ตัวอื่นติดตั้งอยู่
สิ่งที่ต้องเตรียม
- เซิร์ฟเวอร์ Ubuntu 22.04 หรือ 24.04 ที่เข้าถึงผ่าน SSH ได้
- ผู้ใช้ที่มีสิทธิ์
sudo(ดูวิธีสร้างได้ที่ สร้างผู้ใช้ใหม่และให้สิทธิ์ sudo บน Linux) - โดเมนที่ชี้ A Record มายัง IP ของเซิร์ฟเวอร์แล้ว (ถ้ายังไม่มี ใช้ IP ทดสอบไปก่อนได้)
- พอร์ต 80 และ 443 เปิดให้เข้าถึงได้
ในตัวอย่างจะใช้โดเมน example.com ให้เปลี่ยนเป็นโดเมนจริงของคุณทุกจุด
ขั้นตอนที่ 1: อัปเดตแพ็กเกจและติดตั้ง Nginx
เริ่มจากอัปเดตรายการแพ็กเกจ แล้วติดตั้ง Nginx
sudo apt update
sudo apt install -y nginxเมื่อติดตั้งเสร็จ Nginx จะเริ่มทำงานและตั้งให้เปิดอัตโนมัติเมื่อบูตเครื่อง ตรวจสอบสถานะได้ด้วยคำสั่ง
systemctl status nginxผลลัพธ์ควรแสดง Active: active (running) กด q เพื่อออก
หากเปิด UFW Firewall ไว้ ให้อนุญาตพอร์ต HTTP และ HTTPS
sudo ufw allow 'Nginx Full'
sudo ufw statusหากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เปิดพอร์ตนั้นเพิ่มด้วย จากนั้นเปิดเบราว์เซอร์ไปที่ http://IP-ของเซิร์ฟเวอร์ จะเห็นหน้า "Welcome to nginx!"
ขั้นตอนที่ 2: ติดตั้ง MariaDB และตั้งค่าความปลอดภัยเบื้องต้น
sudo apt install -y mariadb-server
sudo systemctl status mariadbUbuntu 22.04 จะได้ MariaDB 10.6 ส่วน Ubuntu 24.04 จะได้ MariaDB 10.11 จากนั้นรันสคริปต์ตั้งค่าความปลอดภัย
sudo mysql_secure_installationคำตอบที่แนะนำสำหรับเซิร์ฟเวอร์ใหม่มีดังนี้
- Enter current password for root: กด Enter เพราะยังไม่มีรหัสผ่าน
- Switch to unix_socket authentication: ตอบ
nเพราะบน Ubuntu ผู้ใช้ root ของ MariaDB ใช้ unix_socket อยู่แล้ว - Change the root password: ตอบ
nได้ ผู้ใช้ root จะเข้าได้ผ่านsudo mysqlเท่านั้น ซึ่งปลอดภัยกว่า - Remove anonymous users, Disallow root login remotely, Remove test database, Reload privilege tables: ตอบ
Yทั้งหมด
ทดสอบเข้าใช้งานด้วย
sudo mysqlจะเห็นพรอมต์ MariaDB [(none)]> พิมพ์ exit เพื่อออก สำหรับการสร้างฐานข้อมูลและผู้ใช้ให้เว็บไซต์ ดูต่อได้ที่ สร้างฐานข้อมูลและผู้ใช้ MySQL/MariaDB พร้อมกำหนดสิทธิ์
ขั้นตอนที่ 3: ติดตั้ง PHP-FPM และส่วนขยายที่ใช้บ่อย
sudo apt install -y php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd php-intlแพ็กเกจ php-fpm จะติดตั้ง PHP เวอร์ชันมาตรฐานของ Ubuntu รุ่นนั้น คือ PHP 8.1 บน Ubuntu 22.04 และ PHP 8.3 บน Ubuntu 24.04 ตรวจสอบเวอร์ชันและชื่อ Socket ที่ต้องใช้ในขั้นตอนถัดไป
php -v
ls /run/php/ผลลัพธ์ของ ls จะเป็นชื่อไฟล์ เช่น php8.3-fpm.sock ให้จดไว้ และตรวจว่า Service ทำงานอยู่
systemctl status php8.3-fpmหากใช้ Ubuntu 22.04 ให้เปลี่ยน 8.3 เป็น 8.1 ทุกจุดในคู่มือนี้
หมายเหตุ: ไม่ต้องติดตั้งแพ็กเกจ
phpเปล่า ๆ เพราะบางกรณีจะดึง Apache ติดตั้งมาด้วยและแย่งพอร์ต 80 กับ Nginx การติดตั้งphp-fpmตามคำสั่งข้างต้นเพียงพอแล้ว