LEMP Stack คือชุดซอฟต์แวร์พื้นฐานสำหรับ Web Hosting ประกอบด้วย Linux, Nginx (Engine-X), MySQL/MariaDB และ PHP เป็นทางเลือกยอดนิยมสำหรับการ Deploy เว็บไซต์ เช่น WordPress, Laravel หรือเว็บแอปลิเคชัน PHP ทั่วไป
ก่อนเริ่ม
- Ubuntu 22.04 LTS (แนะนำ) หรือ Ubuntu 20.04
- VPS ที่มี RAM อย่างน้อย 1 GB
- เข้าถึงได้ด้วย SSH ในฐานะ root หรือ sudo user
ขั้นตอนที่ 1 — อัปเดต System
sudo apt update && sudo apt upgrade -y
ขั้นตอนที่ 2 — ติดตั้ง Nginx
sudo apt install nginx -y
# เปิดใช้งานและตั้งให้เริ่มอัตโนมัติเมื่อ Boot
sudo systemctl enable nginx
sudo systemctl start nginx
# ตรวจสอบ
sudo systemctl status nginx
เปิด Browser แล้วพิมพ์ IP Address ของ VPS ควรเห็นหน้า Welcome to nginx!
ขั้นตอนที่ 3 — ติดตั้ง MySQL
sudo apt install mysql-server -y
sudo systemctl enable mysql
sudo systemctl start mysql
# ตั้งค่าความปลอดภัย MySQL
sudo mysql_secure_installation
ระหว่าง mysql_secure_installation แนะนำให้:
- VALIDATE PASSWORD: Y (เปิดใช้ password policy)
- Remove anonymous users: Y
- Disallow root login remotely: Y
- Remove test database: Y
- Reload privilege tables: Y
สร้าง Database และ User
sudo mysql
-- สร้าง database
CREATE DATABASE mysite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- สร้าง user และกำหนดสิทธิ์
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mysite.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
ขั้นตอนที่ 4 — ติดตั้ง PHP
# ติดตั้ง PHP 8.3 และ Extensions ที่จำเป็น
sudo apt install php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl \
php8.3-gd php8.3-mbstring php8.3-zip php8.3-bcmath php8.3-intl -y
# ตรวจสอบเวอร์ชัน
php --version
# เปิดใช้งานและตั้งให้เริ่มอัตโนมัติ
sudo systemctl enable php8.3-fpm
sudo systemctl start php8.3-fpm
ขั้นตอนที่ 5 — ตั้งค่า Nginx สำหรับ PHP
สร้างไฟล์ Config สำหรับเว็บไซต์:
sudo nano /etc/nginx/sites-available/mysite.conf
ใส่เนื้อหาดังนี้:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/mysite;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
}
# เปิดใช้งาน site config
sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/
# ตรวจสอบ syntax
sudo nginx -t
# Reload Nginx
sudo systemctl reload nginx
# สร้างโฟลเดอร์ web root
sudo mkdir -p /var/www/mysite
sudo chown -R www-data:www-data /var/www/mysite
ขั้นตอนที่ 6 — ทดสอบ PHP ทำงานผ่าน Nginx
# สร้างไฟล์ทดสอบ
echo '' | sudo tee /var/www/mysite/info.php
# เปิด Browser ไปที่
# http://YOUR_VPS_IP/info.php
# ลบไฟล์หลังทดสอบ
sudo rm /var/www/mysite/info.php
ตั้งค่า PHP เพิ่มเติม
sudo nano /etc/php/8.3/fpm/php.ini
ค้นหาและปรับค่าเหล่านี้:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
date.timezone = Asia/Bangkok
# Restart PHP-FPM หลังแก้ไข
sudo systemctl restart php8.3-fpm
สรุป: สังเกต LEMP Stack
| Component | Package | คำสั่งตรวจสอบ |
|---|---|---|
| Linux | Ubuntu 22.04 | uname -a |
| Nginx | nginx | nginx -v |
| MySQL | mysql-server | mysql –version |
| PHP | php8.3-fpm | php –version |
สรุป
หลังติดตั้ง LEMP Stack เสร็จ VPS ของคุณพร้อมสำหรับการ Deploy เว็บไซต์ PHP ทุกประเภท ไม่ว่าจะเป็น WordPress, Laravel, Symfony หรือแอปพลิเคชัน PHP ที่ฮอดเอง ขั้นตอนถัดไปคือติดตั้ง SSL Certificate ด้วย Certbot เพื่อเปิดใช้งาน HTTPS
