คู่มือ VPS & Server
ติดตั้ง LEMP Stack บน VPS [2026]
คู่มือสมบูรณ์ Linux + Nginx + MariaDB + PHP
LEMP Stack คือชุดซอฟต์แวร์พื้นฐานที่นักพัฒนาเว็บใช้ในการ deploy เว็บไซต์และ web application บน VPS Linux ประกอบด้วย Linux (Operating System), Enginx (Web Server), MariaDB/MySQL (Database) และ PHP (Server-side Language) ซึ่งทำงานร่วมกันเป็น full-stack web environment
ในปี 2026 LEMP Stack ยังคงเป็นตัวเลือกอันดับต้นของ developer ที่ต้องการ setup web server ที่รวดเร็ว เสถียร และประหยัด resource โดยเฉพาะเมื่อใช้คู่กับ Nginx ที่มี performance สูงกว่า Apache ในหลายสถานการณ์
สารบัญ
- LEMP Stack คืออะไร?
- LEMP vs LAMP — เลือกอะไรดี?
- ข้อกำหนด VPS และข้อมูลที่ต้องเตรียม
- Step 1 — อัพเดท Ubuntu
- Step 2 — ติดตั้ง Nginx
- Step 3 — ติดตั้ง MariaDB
- Step 4 — ติดตั้ง PHP-FPM
- Step 5 — ตั้งค่า Nginx Virtual Host
- Step 6 — ทดสอบ PHP และฐานข้อมูล
- Step 7 — ติดตั้ง WordPress บน LEMP
- เพิ่มความปลอดภัย LEMP Stack
- เพิ่ม Performance
- FAQ คำถามพบบ่อย
LEMP Stack คืออะไร?
ชื่อ "LEMP" มาจากตัวอักษรย่อของส่วนประกอบหลัก 4 ตัว:
- L — Linux: ระบบปฏิบัติการ open-source (Ubuntu, Debian, CentOS ฯลฯ)
- E — Nginx (อ่านว่า "Engine-X"): Web server ที่รู้จักในด้าน performance สูงและ memory footprint ต่ำ
- M — MariaDB หรือ MySQL: Relational database system สำหรับจัดเก็บข้อมูล
- P — PHP: ภาษา server-side scripting ที่ใช้กว้างขวางที่สุดสำหรับ web development
แต่ละ component ทำงานแยกกัน ทำให้อัพเดทหรือเปลี่ยนแปลงแต่ละส่วนได้อิสระ โดยทั่วไป Nginx รับ request จาก browser ส่ง static files โดยตรง และส่งต่อ PHP request ไปยัง PHP-FPM process manager ซึ่งจะ execute PHP code และคืนผลลัพธ์กลับ ข้อมูลถูกดึงจาก MariaDB และ render เป็น HTML ส่งกลับไปยัง browser
LEMP vs LAMP — เลือกอะไรดี?
หลายคนสับสนระหว่าง LEMP และ LAMP Stack ซึ่งต่างกันเพียงตัว Web Server:
| คุณสมบัติ | LEMP (Nginx) | LAMP (Apache) |
|---|---|---|
| Memory Usage | ต่ำกว่า (event-driven) | สูงกว่า (process-based) |
| Concurrent Connections | สูงมาก | จำกัดโดย process |
| Static File Serving | เร็วมาก | ปานกลาง |
| .htaccess รองรับ | ไม่รองรับ (ต้องตั้งค่า nginx.conf) | รองรับ |
| PHP Execution | ผ่าน PHP-FPM | ผ่าน mod_php หรือ PHP-FPM |
| Configuration | ไฟล์ config Nginx | .htaccess หรือ httpd.conf |
| เหมาะกับ | Traffic สูง, VPS RAM น้อย | Shared hosting, WordPress แบบง่าย |
ข้อมูล ณ ตุลาคม 2026 — สเปคและ benchmark อาจเปลี่ยนตามเวอร์ชัน
สำหรับ VPS ทั่วไป LEMP มักให้ performance ดีกว่า เพราะ Nginx ใช้ event-driven architecture จัดการ request พร้อมกันหลายพันรายการโดยใช้ thread น้อยมาก เหมาะมากสำหรับ VPS ที่มี RAM 1-2GB
เมื่อไรควรใช้ LAMP แทน? ถ้าคุณใช้ cPanel หรือต้องการ .htaccess rules จำนวนมาก (เช่น redirect rules ที่ซับซ้อน) Apache อาจสะดวกกว่า Nginx ต้องแปลง .htaccess เป็น nginx.conf ด้วยมือ
ข้อกำหนด VPS และสิ่งที่ต้องเตรียม
ก่อนเริ่มติดตั้ง ตรวจสอบว่าคุณมีสิ่งต่อไปนี้:
- VPS Linux: Ubuntu 22.04 LTS หรือ 24.04 LTS (แนะนำ)
- RAM: ขั้นต่ำ 512MB แนะนำ 1GB+ สำหรับ production
- CPU: 1 core ขึ้นไป
- Storage: SSD 20GB ขึ้นไป
- Root access หรือ sudo privileges
- SSH client (Terminal บน Mac/Linux หรือ PuTTY/Windows Terminal บน Windows)
- Domain name (optional แต่แนะนำ สำหรับ SSL)
VPS แนะนำสำหรับไทย: AsiaGB (เซิร์ฟเวอร์ไทย/สิงคโปร์, support ภาษาไทย 24 ชม.) หรือ Ruk-Com Cloud ที่มีทีมงานไทยรองรับ
อัพเดท Ubuntu ก่อนเริ่ม
เชื่อมต่อ VPS ผ่าน SSH แล้วรันคำสั่งอัพเดทระบบก่อนเสมอ เพื่อให้แน่ใจว่าทุก package เป็นเวอร์ชันล่าสุดและไม่มีช่องโหว่:
sudo apt update && sudo apt upgrade -y
คำสั่งนี้จะอัพเดท package list และอัพเกรด package ที่ติดตั้งอยู่ทั้งหมด ใช้เวลาสักครู่ขึ้นอยู่กับจำนวน update ที่มี
ติดตั้ง Nginx
Nginx อยู่ใน Ubuntu default repository สามารถติดตั้งได้ทันที:
sudo apt install nginx -y
เมื่อติดตั้งเสร็จ เปิดใช้งานและตรวจสอบสถานะ:
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx
ถ้า active (running) แสดงว่า Nginx ทำงานปกติ ทดสอบโดยเปิด browser แล้วไปที่ http://IP_ของคุณ จะเห็นหน้า "Welcome to nginx!"
ตั้งค่า Firewall (UFW)
ถ้าใช้ UFW firewall ต้องอนุญาต port 80 และ 443:
sudo ufw allow 'Nginx Full'
sudo ufw status
ติดตั้ง MariaDB
MariaDB เป็น drop-in replacement ของ MySQL ที่ compatible 100% แนะนำ MariaDB 10.11 LTS (Long Term Support ถึงปี 2028):
sudo apt install mariadb-server mariadb-client -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
Secure MariaDB Installation
รัน script ความปลอดภัยที่มาพร้อม MariaDB เสมอ:
sudo mysql_secure_installation
Script นี้จะถามหลายคำถาม:
- Enter current password for root: กด Enter (ยังไม่มี password)
- Switch to unix_socket authentication: Y
- Change the root password: Y แล้วตั้ง password แข็งแกร่ง
- Remove anonymous users: Y
- Disallow root login remotely: Y
- Remove test database: Y
- Reload privilege tables: Y
สร้าง Database และ User
สำหรับแต่ละเว็บไซต์ ควรสร้าง database และ user แยกต่างหาก:
sudo mysql -u root -p
CREATE DATABASE mywebsite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mywebsite_user'@'localhost' IDENTIFIED BY 'รหัสผ่านที่แข็งแกร่ง';
GRANT ALL PRIVILEGES ON mywebsite_db.* TO 'mywebsite_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
ติดตั้ง PHP-FPM
Nginx ไม่มี PHP built-in จำเป็นต้องใช้ PHP-FPM (FastCGI Process Manager) ซึ่งรัน PHP เป็น service แยกต่างหากและสื่อสารกับ Nginx ผ่าน socket
PHP เวอร์ชันที่แนะนำ (ข้อมูล ณ ตุลาคม 2026)
- PHP 8.3 — Security support ถึง 31 ธันวาคม 2027 (แนะนำสำหรับ production ที่ต้องการ stability)
- PHP 8.4 — Active support ถึง 31 ธันวาคม 2026, security ถึง 2028 (สำหรับโปรเจกต์ใหม่)
- PHP 8.5 — Released พฤศจิกายน 2025 (เวอร์ชันใหม่ล่าสุด)
- PHP 8.2 — Security support ถึง 31 ธันวาคม 2026 เท่านั้น (ใกล้ EOL)
ตรวจสอบ support timeline ล่าสุดที่ php.net/supported-versions.php
ติดตั้ง PHP 8.3
บน Ubuntu 22.04 ต้องเพิ่ม PPA ก่อน:
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
บน Ubuntu 24.04 PHP 8.3 อยู่ใน default repository แต่แนะนำใช้ PPA ของ Ondřej Surý เพื่อรับเวอร์ชันใหม่สุด:
sudo apt install php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-intl php8.3-gd php8.3-bcmath php8.3-imagick -y
เปิดใช้งาน PHP-FPM:
sudo systemctl enable php8.3-fpm
sudo systemctl start php8.3-fpm
sudo systemctl status php8.3-fpm
Extensions ที่ควรติดตั้งเพิ่ม
สำหรับ WordPress หรือ CMS ทั่วไป extensions ที่จำเป็น:
sudo apt install php8.3-opcache php8.3-redis php8.3-soap -y
ตั้งค่า Nginx Virtual Host
สร้างไฟล์ configuration สำหรับเว็บไซต์ของคุณ:
sudo nano /etc/nginx/sites-available/yourdomain.com
ใส่ config ต่อไปนี้ (แก้ yourdomain.com เป็น domain จริง):
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com;
index index.php index.html;
# Static file caching
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
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;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
}
Enable Virtual Host
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
nginx -t จะทดสอบ syntax ของ config ถ้าผ่านค่อย reload Nginx
สร้าง Document Root
sudo mkdir -p /var/www/yourdomain.com
sudo chown -R www-data:www-data /var/www/yourdomain.com
sudo chmod -R 755 /var/www/yourdomain.com
ทดสอบ PHP และฐานข้อมูล
สร้างไฟล์ PHP info เพื่อตรวจสอบว่า PHP-FPM ทำงานกับ Nginx ได้:
sudo nano /var/www/yourdomain.com/info.php
<?php phpinfo(); ?>
เปิด browser ไปที่ http://yourdomain.com/info.php ถ้าเห็นหน้า PHP Info แสดงว่าทุกอย่างทำงานถูกต้อง
สำคัญ: ลบไฟล์ info.php ออกหลังทดสอบเสร็จ เพราะไฟล์นี้เปิดเผยข้อมูล server ที่อาจเป็นประโยชน์ต่อผู้โจมตี:
sudo rm /var/www/yourdomain.com/info.php
ทดสอบการเชื่อมต่อ Database
สร้าง PHP script ทดสอบ DB connection:
<?php
$conn = new mysqli('localhost', 'mywebsite_user', 'รหัสผ่าน', 'mywebsite_db');
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
echo 'Connected successfully to MariaDB!';
$conn->close();
?>
ติดตั้ง WordPress บน LEMP Stack
WordPress ทำงานได้ดีมากบน LEMP Stack ขั้นตอนการติดตั้ง:
ดาวน์โหลด WordPress
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo cp -r wordpress/* /var/www/yourdomain.com/
sudo chown -R www-data:www-data /var/www/yourdomain.com/
sudo chmod -R 755 /var/www/yourdomain.com/
สร้าง wp-config.php
cd /var/www/yourdomain.com
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
แก้ค่าเหล่านี้ใน wp-config.php:
define('DB_NAME', 'mywebsite_db');
define('DB_USER', 'mywebsite_user');
define('DB_PASSWORD', 'รหัสผ่านของคุณ');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
Nginx Config สำหรับ WordPress
WordPress ต้องใช้ config พิเศษเพื่อรองรับ pretty permalink:
location / {
try_files $uri $uri/ /index.php?$args;
}
# WordPress: ห้าม PHP execution ใน uploads
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
ติดตั้ง SSL ด้วย Let's Encrypt
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot จะตั้งค่า SSL และ redirect HTTP → HTTPS ให้อัตโนมัติ certificate ต่ออายุอัตโนมัติทุก 90 วัน
เพิ่มความปลอดภัย LEMP Stack
security คือสิ่งสำคัญสำหรับ production server ขั้นตอนพื้นฐานที่ควรทำ:
1. เปลี่ยน SSH Port และใช้ Key-based Authentication
sudo nano /etc/ssh/sshd_config
# เพิ่ม/แก้:
Port 2222
PasswordAuthentication no
PermitRootLogin no
2. ตั้งค่า Fail2Ban
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
3. ซ่อนเวอร์ชัน Nginx
ใน /etc/nginx/nginx.conf ใน http block:
server_tokens off;
4. จำกัด PHP-FPM Process
ปรับ /etc/php/8.3/fpm/pool.d/www.conf:
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 7
5. ตั้งค่า PHP Security
sudo nano /etc/php/8.3/fpm/php.ini
expose_php = Off
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 60
เพิ่ม Performance
หลังจาก LEMP Stack พื้นฐานทำงานได้แล้ว สิ่งที่ควรเพิ่มเพื่อ performance:
1. PHP OPcache
OPcache ช่วยให้ PHP ไม่ต้อง parse script ซ้ำทุก request ลดเวลา response ลงได้มาก:
sudo nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
2. Nginx Gzip Compression
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_vary on;
gzip_min_length 1024;
3. Redis Cache (Optional)
สำหรับ WordPress ที่มี traffic สูง Redis object cache ช่วยลด DB queries:
sudo apt install redis-server php8.3-redis -y
sudo systemctl enable redis
sudo systemctl start redis
บทความแนะนำ
ต้องการ VPS ไทยรองรับ LEMP Stack พร้อม support ภาษาไทย?
ดู AsiaGB VPS ThailandFAQ — คำถามที่พบบ่อยเกี่ยวกับ LEMP Stack
LEMP Stack คืออะไร?
LEMP Stack คือชุดซอฟต์แวร์ open-source สำหรับ web server ประกอบด้วย Linux, Nginx, MariaDB/MySQL และ PHP ใช้สำหรับ host dynamic website และ web application บน VPS
LEMP ต่างจาก LAMP อย่างไร?
LAMP ใช้ Apache เป็น web server ส่วน LEMP ใช้ Nginx Nginx ใช้ RAM น้อยกว่า รองรับ concurrent connections ได้มากกว่า และเหมาะกับ VPS ที่มี resource จำกัด
ควรใช้ PHP เวอร์ชันไหนกับ LEMP?
ปี 2026 แนะนำ PHP 8.3 (security support ถึง Dec 2027) สำหรับ production ที่ต้องการความเสถียร หรือ PHP 8.4 สำหรับโปรเจกต์ใหม่ที่ต้องการ features ล่าสุด
MariaDB ต่างจาก MySQL อย่างไร?
MariaDB เป็น fork ของ MySQL ที่ compatible กัน 100% แต่ open-source กว่า มีบาง feature ที่ดีกว่า และ community ที่แข็งแกร่ง ใช้แทนกันได้ทันทีสำหรับ WordPress และ web apps ทั่วไป
LEMP Stack รองรับ WordPress ไหม?
ได้ WordPress ทำงานบน LEMP ได้ดีมาก แต่ต้องตั้งค่า Nginx config ให้รองรับ WordPress permalinks โดยเฉพาะ try_files directive แทน .htaccess ของ Apache
ต้องการ VPS สเปคเท่าไรสำหรับ LEMP?
สำหรับเว็บไซต์ขนาดเล็กถึงกลาง: RAM 1GB, CPU 1-2 cores, SSD 20GB ขึ้นไป LEMP ประหยัด resource กว่า LAMP จึงทำงานได้ดีแม้กับ VPS ราคาประหยัด
ติดตั้ง LEMP บน Ubuntu 24.04 ได้ไหม?
ได้ คำสั่งส่วนใหญ่ใช้ได้เหมือนกันบน Ubuntu 22.04 และ 24.04 แนะนำ Ubuntu 24.04 LTS สำหรับ VPS ใหม่เพราะมี support ยาวกว่าและ packages ใหม่กว่า