วิธีติดตั้ง WordPress บน Linux VPS ด้วย Nginx
คู่มือนี้จะพาติดตั้ง WordPress บน VPS ที่ใช้ Ubuntu 22.04 หรือ 24.04 ด้วยชุดซอฟต์แวร์ LEMP ได้แก่ Linux, Nginx, MariaDB และ PHP-FPM เซิร์ฟเวอร์ที่มี 2 vCPU และ RAM 2 GB เป็นจุดเริ่มต้นที่เหมาะสม ดู วิธีเลือกสเปก VPS ประกอบได้ หรือจะ สร้าง Cloud VPS ได้ในไม่กี่นาทีแล้วทำตามไปพร้อมกัน เปลี่ยน example.com เป็นโดเมนของคุณ และชี้ DNS A record ของโดเมนไปยัง IP ของเซิร์ฟเวอร์ก่อนเริ่ม
1. อัปเดตเซิร์ฟเวอร์และเปิดไฟร์วอลล์
sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableหากยังไม่ได้ตั้งค่าความปลอดภัยของ SSH ให้ทำก่อนด้วย คู่มือเสริมความปลอดภัย SSH
2. ติดตั้ง Nginx, MariaDB และ PHP
sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl unzip curl
sudo mysql_secure_installation3. สร้างฐานข้อมูล
sudo mysqlCREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'USE_A_LONG_RANDOM_PASSWORD';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;4. ดาวน์โหลด WordPress
cd /tmp && curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo mv wordpress /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
cd /var/www/example.com && sudo -u www-data cp wp-config-sample.php wp-config.phpแก้ไฟล์ wp-config.php โดยกำหนดค่า DB_NAME, DB_USER และ DB_PASSWORD ให้ตรงกับค่าข้างต้น และแทนที่ authentication keys ด้วยค่าใหม่จากตัวสร้างทางการที่ https://api.wordpress.org/secret-key/1.1/salt/
5. ตั้งค่า Nginx
สร้างไฟล์ /etc/nginx/sites-available/example.com:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php;
location / { try_files $uri $uri/ /index.php?$args; }
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
location ~ /\.ht { deny all; }
}sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxหากไม่พบไฟล์ /run/php/php-fpm.sock ให้ใช้ socket ที่ระบุเวอร์ชัน เช่น /run/php/php8.3-fpm.sock
6. เพิ่มใบรับรอง HTTPS ฟรี
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.comCertbot จะติดตั้ง timer ที่ต่ออายุใบรับรองให้อัตโนมัติ ตรวจสอบได้ด้วยคำสั่ง sudo certbot renew --dry-run
7. ทำการติดตั้งผ่านเบราว์เซอร์และเสริมความปลอดภัย
เปิด https://example.com แล้วทำตามขั้นตอนของตัวติดตั้งให้เสร็จ จากนั้น:
- อัปเดต WordPress, ธีม และปลั๊กอินอยู่เสมอ และลบตัวที่ไม่ได้ใช้ออก
- ใช้รหัสผ่านผู้ดูแลที่แข็งแรงและไม่ซ้ำกัน และเปิดใช้การยืนยันตัวตนสองขั้นตอนเมื่อเข้าสู่ระบบ
- สร้าง สแนปชอตหรือการสำรองข้อมูล ก่อนอัปเดตครั้งใหญ่ทุกครั้ง
- ติดตั้งปลั๊กอินแคชเพื่อลดภาระบน VPS ขนาดเล็ก
คำถามที่พบบ่อย
ควรใช้ PHP เวอร์ชันไหน?
ให้ใช้เวอร์ชันที่มาพร้อมกับ Ubuntu รุ่นที่คุณใช้ ตราบใดที่ WordPress และปลั๊กอินของคุณรองรับ ตรวจสอบได้จากหน้าความต้องการของระบบ (requirements) ทางการ
สามารถโฮสต์หลายเว็บไซต์บน VPS เดียวกันได้ไหม?
ได้ โดยสร้าง server block ของ Nginx, ฐานข้อมูล และไดเรกทอรีแยกสำหรับแต่ละเว็บไซต์ และให้เซิร์ฟเวอร์มี RAM เพียงพอสำหรับทุกเว็บ
ทำไมขึ้น 502 Bad Gateway?
Nginx ไม่สามารถเชื่อมต่อกับ PHP-FPM ได้ ตรวจสอบว่า PHP-FPM กำลังทำงานอยู่ และ path ของ socket ในไฟล์ Nginx ตรงกับ socket ที่มีอยู่จริง