เริ่มต้นสร้างป้อมปราการดิจิทัลให้ WordPress บน Ubuntu 24.04 update 2026
ถ้าคุณกำลังมองหาวิธี ตั้งค่า WordPress บน Ubuntu 24.04 ให้ปลอดภัย ใช้งานจริงได้ และรองรับการเข้ารหัสด้วย SSL แบบมืออาชีพ บทความนี้คือคู่มือที่ออกแบบมาสำหรับทั้งมือใหม่และผู้ที่อยากขยับจากการเช่าโฮสติ้งสำเร็จรูปมาสู่การควบคุมระบบด้วยตัวเองอย่างเต็มรูปแบบ เราจะพาคุณติดตั้ง WordPress บนเซิร์ฟเวอร์ Ubuntu 24.04 โดยใช้สแต็ก LEMP ซึ่งประกอบด้วย Linux, Nginx, MariaDB และ PHP-FPM จากนั้นต่อยอดด้วย Let’s Encrypt เพื่อให้เว็บไซต์ของคุณรันผ่าน HTTPS อย่างปลอดภัย จุดเด่นของแนวทางนี้คือความเร็ว ความเบา ความยืดหยุ่น และความสามารถในการทำ hardening ระบบให้เหมาะกับงานจริง ไม่ว่าจะเป็นเว็บบล็อก เว็บพอร์ตโฟลิโอ หรือแม้แต่เว็บเก็บองค์ความรู้เฉพาะทางที่ต้องการความเป็นส่วนตัวสูง เช่น คลังสูตรอาหารอีสานลับประจำตระกูลที่ไม่อยากฝากไว้บนแพลตฟอร์มกลางอีกต่อไป
ในเชิงเทคนิค การโฮสต์ WordPress เองบน Ubuntu 24.04 ช่วยให้เราควบคุมทุกชั้นของระบบ ตั้งแต่บัญชีผู้ใช้ สิทธิ์ไฟล์ การเปิดพอร์ต การกำหนดค่าเว็บเซิร์ฟเวอร์ ไปจนถึงนโยบายความปลอดภัยอย่างไฟร์วอลล์และระบบป้องกัน brute-force นี่คือแนวคิดของ Digital Sovereignty หรืออธิปไตยทางดิจิทัลอย่างแท้จริง คุณไม่จำเป็นต้องพึ่งแดชบอร์ดสำเร็จรูปเสมอไป หากคุณเรียนรู้โครงสร้างพื้นฐานพื้นฐานเหล่านี้ คุณจะสร้างระบบที่โปร่งใส ตรวจสอบได้ และขยายต่อได้เองในอนาคต ตลอดทั้งบทความนี้ เราจะเดินแบบ step-by-step พร้อมคำอธิบายทุกคำสั่ง ตัวอย่างไฟล์ config และข้อควรระวังในแต่ละช่วง เพื่อให้การ ตั้งค่า WordPress บน Ubuntu 24.04 กลายเป็นงานที่เข้าใจได้ ไม่ใช่เรื่องน่ากลัว
เตรียมเซิร์ฟเวอร์ Ubuntu 24.04 ให้พร้อมก่อนติดตั้ง
ก่อนจะเริ่มลงแพ็กเกจใด ๆ คุณควรมี Ubuntu 24.04 LTS ที่เข้าถึงได้ผ่าน SSH พร้อม public IP และโดเมนเนมที่ชี้มายังเครื่องเซิร์ฟเวอร์นั้นเรียบร้อย ตัวอย่างเช่น สมมติว่าเราใช้โดเมน isanrecipes.example.com และชี้ A record มายัง IP ของเครื่องแล้ว ขั้นตอนแรกคืออัปเดตแพ็กเกจของระบบ สร้างผู้ใช้ที่ไม่ใช่ root และตั้งค่าความปลอดภัยเบื้องต้น การทำงานด้วยผู้ใช้ปกติที่มีสิทธิ์ sudo จะปลอดภัยกว่าการใช้ root ตลอดเวลา เพราะลดโอกาสผิดพลาดและลดผลกระทบหาก credential ถูกขโมย คำสั่งพื้นฐานมีดังนี้
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip ca-certificates software-properties-common
sudo adduser deployer
sudo usermod -aG sudo deployer
su - deployer
หลังจากนั้นแนะนำให้ตั้งค่า SSH key authentication และปิด password login หากเป็นเซิร์ฟเวอร์ production โดยแก้ไฟล์ /etc/ssh/sshd_config และตรวจสอบค่าหลัก เช่น PermitRootLogin no และ PasswordAuthentication no จากนั้น restart SSH อย่างระมัดระวัง ตัวอย่างคำสั่งคือ sudo nano /etc/ssh/sshd_config แล้วตามด้วย sudo systemctl restart ssh สิ่งสำคัญคืออย่าปิด session เดิมก่อนทดสอบว่า login ด้วย key ได้จริง นี่เป็นจุดเริ่มต้นของการ hardening ระบบ ซึ่งมีผลโดยตรงต่อความปลอดภัยโดยรวมของ WordPress ในระยะยาว
ติดตั้ง Nginx เว็บเซิร์ฟเวอร์ที่เบาและเร็ว
เหตุผลที่บทความนี้เลือก Nginx แทน Apache คือ Nginx มีจุดแข็งเรื่องการจัดการ concurrent connection ได้ดี กินทรัพยากรไม่มาก และเหมาะกับการใช้ร่วมกับ PHP-FPM บนเซิร์ฟเวอร์สมัยใหม่มาก ๆ สำหรับผู้เริ่มต้น Nginx อาจดูแปลกตาเพราะไม่มีไฟล์ .htaccess แบบ Apache แต่ข้อดีคือ configuration ถูกกำหนดอย่างชัดเจนในระดับเซิร์ฟเวอร์ อ่านง่ายเมื่อเริ่มคุ้นเคย ขั้นตอนติดตั้งทำได้ตรงไปตรงมา
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx
เมื่อ Nginx ติดตั้งเสร็จ ให้เปิดเว็บผ่าน IP ของเซิร์ฟเวอร์ในเบราว์เซอร์ ถ้าระบบพร้อมจะเห็นหน้า welcome page ของ Nginx ทันที จากนั้นอย่าลืมเปิดไฟร์วอลล์สำหรับเว็บทราฟฟิกด้วย UFW โดยใช้โปรไฟล์สำเร็จรูปของ Nginx เช่น Nginx Full ซึ่งเปิดทั้งพอร์ต 80 และ 443 ตัวอย่างคำสั่งคือ sudo ufw allow OpenSSH, sudo ufw allow 'Nginx Full', และ sudo ufw enable จากนั้นเช็กสถานะด้วย sudo ufw status ขั้นตอนนี้สำคัญมาก เพราะต่อให้คุณติดตั้งทุกอย่างถูกต้อง แต่หากไฟร์วอลล์ปิดพอร์ตเว็บไว้ ภายนอกก็จะยังเข้าใช้งานไม่ได้อยู่ดี
ติดตั้ง MariaDB และสร้างฐานข้อมูลสำหรับ WordPress
หัวใจของ WordPress คือฐานข้อมูลที่ใช้เก็บโพสต์ หน้าเพจ ผู้ใช้ การตั้งค่าระบบ และ metadata ต่าง ๆ ใน Ubuntu 24.04 เราสามารถใช้ MariaDB ซึ่งเป็นโอเพนซอร์สที่เข้ากันได้ดีกับ MySQL และเป็นตัวเลือกยอดนิยมสำหรับระบบ WordPress จำนวนมาก ขั้นแรกให้ติดตั้งแพ็กเกจฐานข้อมูล จากนั้นรันสคริปต์ security setup เพื่อปิดช่องโหว่พื้นฐาน เช่น anonymous user และ test database คำสั่งมีดังนี้
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation
เมื่อ secure installation เสร็จแล้ว ให้เข้าสู่ MariaDB shell และสร้าง database กับ user สำหรับ WordPress โดยไม่ควรใช้ root database account โดยตรง ตัวอย่างด้านล่างนี้จะสร้างฐานข้อมูลชื่อ wordpress_db และผู้ใช้ wp_user พร้อมรหัสผ่านที่ควรเปลี่ยนให้ซับซ้อนจริงก่อนใช้งาน
sudo mariadb
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPasswordHere!2026';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
จุดที่อยากเสริมในเชิงวิเคราะห์คือ หลายคนมักมองข้ามเรื่องสิทธิ์ของ database user แล้วให้สิทธิ์มากเกินความจำเป็น ทั้งที่ WordPress ต้องการเพียงสิทธิ์ระดับฐานข้อมูลของตัวเองเท่านั้น การแยก user ต่อแอปเป็นนิสัยที่ดีมาก และจะยิ่งสำคัญเมื่อในอนาคตคุณมีหลายเว็บ หลาย service หรือใช้ reverse proxy ร่วมกับแอปอื่นในเครื่องเดียวกัน แนวคิด least privilege แบบนี้คือพื้นฐานของ system engineering ที่ดี ไม่ใช่แค่สำหรับองค์กรใหญ่ แต่เหมาะกับเว็บส่วนตัวทุกเว็บด้วยเช่นกัน
ติดตั้ง PHP-FPM และโมดูลที่ WordPress ต้องใช้
WordPress เขียนด้วย PHP ดังนั้นเราต้องติดตั้ง PHP เวอร์ชันที่ Ubuntu 24.04 รองรับ พร้อมส่วนขยายที่จำเป็น เช่น php-fpm, php-mysql, php-curl, php-xml, php-mbstring, php-zip, php-gd และ php-intl โมดูลเหล่านี้ช่วยให้ WordPress ทำงานได้ครบทั้งฝั่งฐานข้อมูล การจัดการไฟล์ การเรนเดอร์รูป และการรองรับภาษา ขั้นตอนติดตั้งสามารถใช้คำสั่งเดียวได้เลย
sudo apt install -y php-fpm php-mysql php-curl php-xml php-mbstring php-zip php-gd php-intl php-cli php-common php-imagick
php -v
systemctl status php8.3-fpm
หลังติดตั้ง แนะนำให้ปรับค่า PHP บางส่วนในไฟล์ /etc/php/8.3/fpm/php.ini เพื่อให้เหมาะกับ WordPress โดยเฉพาะหากจะอัปโหลดรูปหรือธีมขนาดใหญ่ ตัวอย่างค่าที่มักปรับคือ memory_limit = 256M, upload_max_filesize = 64M, post_max_size = 64M, max_execution_time = 120 เมื่อแก้ไขแล้วให้ restart PHP-FPM ด้วยคำสั่ง sudo systemctl restart php8.3-fpm แม้ค่าเหล่านี้จะดูเล็กน้อย แต่มีผลกับประสบการณ์ใช้งานจริงมาก โดยเฉพาะตอนติดตั้งปลั๊กอิน แบ็กอัป หรืออิมพอร์ตข้อมูล
ดาวน์โหลด WordPress และจัดโครงสร้างไฟล์ให้ปลอดภัย
ตอนนี้ระบบพร้อมสำหรับการนำ WordPress มาวางบนเครื่องแล้ว โดยแนวทางที่แนะนำคือเก็บไฟล์เว็บไซต์ไว้ใน /var/www/your-domain เพื่อให้แยกจากเว็บอื่นชัดเจน สมมติว่าเราใช้โดเมน isanrecipes.example.com ให้สร้างโฟลเดอร์เว็บไซต์ ดาวน์โหลดไฟล์เวอร์ชันล่าสุด และแตกไฟล์ออกไปยังตำแหน่งจริง ดังนี้
cd /tmp
curl -O https://wordpress.org/latest.zip
unzip latest.zip
sudo mkdir -p /var/www/isanrecipes.example.com
sudo rsync -avP /tmp/wordpress/ /var/www/isanrecipes.example.com/
sudo chown -R www-data:www-data /var/www/isanrecipes.example.com
sudo find /var/www/isanrecipes.example.com -type d -exec chmod 755 {} \;
sudo find /var/www/isanrecipes.example.com -type f -exec chmod 644 {} \;
การกำหนด owner เป็น www-data ช่วยให้ Nginx และ PHP-FPM เข้าถึงไฟล์ได้ถูกต้อง ส่วน permission แบบ 755 สำหรับไดเรกทอรีและ 644 สำหรับไฟล์คือค่ามาตรฐานที่สมดุลระหว่างการใช้งานกับความปลอดภัย สำหรับ production จริง ผมแนะนำให้ระวังสิทธิ์ของไฟล์สำคัญอย่าง wp-config.php เป็นพิเศษ และหากต้องการเข้มงวดขึ้นสามารถตั้งเป็น 640 หรือ 600 ตามบริบทของระบบได้ ทั้งนี้ควรตรวจสอบให้แน่ใจว่า PHP ยังอ่านไฟล์ได้ตาม user/group ที่รัน service อยู่
สร้าง wp-config.php และใส่คีย์ความปลอดภัยให้ครบ
ไฟล์ wp-config.php คือศูนย์กลางการเชื่อมต่อฐานข้อมูลและการกำหนดค่าหลักของ WordPress เราจะเริ่มจากการคัดลอกไฟล์ตัวอย่าง แล้วแก้รายละเอียดให้ตรงกับฐานข้อมูลที่สร้างไว้ก่อนหน้า จากนั้นเพิ่ม security salts ซึ่งเป็นกุญแจสุ่มสำหรับการเข้ารหัส session และ cookie ของ WordPress ขั้นตอนพื้นฐานคือ
cd /var/www/isanrecipes.example.com
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
ค่าที่ต้องแก้ไขในไฟล์จะมีประมาณนี้ define( 'DB_NAME', 'wordpress_db' );, define( 'DB_USER', 'wp_user' );, define( 'DB_PASSWORD', 'StrongPasswordHere!2026' );, define( 'DB_HOST', 'localhost' ); จากนั้นนำคีย์สุ่มจาก WordPress API ที่ https://api.wordpress.org/secret-key/1.1/salt/ มาแทนค่าชุดเดิมได้ทันที หรือใช้คำสั่ง curl -s https://api.wordpress.org/secret-key/1.1/salt/ เพื่อดึงมาใช้งาน เมื่อบันทึกไฟล์แล้ว คุณอาจเพิ่มค่าที่ช่วยด้านความปลอดภัยและดูแลระบบ เช่น define('FS_METHOD', 'direct'); ในบางกรณี, define('DISALLOW_FILE_EDIT', true); เพื่อปิดการแก้ไฟล์ผ่านแดชบอร์ด และ define('WP_AUTO_UPDATE_CORE', 'minor'); เพื่อเปิด auto update เฉพาะ security/minor release ซึ่งเป็นค่าที่ผมมองว่าช่วยลดความเสี่ยงได้ดีโดยไม่กระทบ workflow มากนัก
ตั้งค่า Nginx Server Block สำหรับ WordPress บน Ubuntu 24.04
ขั้นตอนสำคัญถัดไปของการ ตั้งค่า WordPress บน Ubuntu 24.04 คือการสร้าง server block ของ Nginx เพื่อให้เว็บเซิร์ฟเวอร์รู้ว่าจะตอบสนองต่อโดเมนไหน ใช้ document root ที่ใด และส่งไฟล์ PHP ไปประมวลผลผ่าน PHP-FPM อย่างไร ตัวอย่างไฟล์ config ด้านล่างนี้เป็นโครงสร้างพื้นฐานที่เหมาะกับ WordPress และรองรับ permalink ได้อย่างถูกต้อง
sudo nano /etc/nginx/sites-available/isanrecipes.example.com
server {
listen 80;
listen [::]:80;
server_name isanrecipes.example.com www.isanrecipes.example.com;
root /var/www/isanrecipes.example.com;
index index.php index.html index.htm;
access_log /var/log/nginx/isanrecipes_access.log;
error_log /var/log/nginx/isanrecipes_error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
}
เมื่อสร้างไฟล์แล้วให้เปิดใช้งานด้วย symlink และทดสอบ config ก่อน reload เสมอ คำสั่งคือ sudo ln -s /etc/nginx/sites-available/isanrecipes.example.com /etc/nginx/sites-enabled/, sudo nginx -t, และ sudo systemctl reload nginx ถ้าผ่าน คุณสามารถเปิดโดเมนในเบราว์เซอร์เพื่อเริ่ม WordPress installer ได้เลย ตรงนี้เองที่ผู้เริ่มต้นหลายคนพลาด เช่น พิมพ์ path ของ PHP socket ไม่ตรงกับเวอร์ชัน หรือใช้ root ผิดโฟลเดอร์ ดังนั้นการทดสอบด้วย nginx -t ทุกครั้งก่อน reload เป็นนิสัยที่ควรยึดไว้ตลอดการดูแลเซิร์ฟเวอร์
ติดตั้ง Let’s Encrypt SSL และบังคับใช้งาน HTTPS
ถ้าคุณต้องการให้เว็บไซต์ WordPress ดูน่าเชื่อถือและปลอดภัย การติดตั้ง SSL/TLS คือสิ่งที่ขาดไม่ได้ โดยเฉพาะในยุคที่เบราว์เซอร์เตือนทันทีเมื่อเว็บยังเป็น HTTP ธรรมดา สำหรับ Ubuntu 24.04 วิธีที่ง่ายและนิยมที่สุดคือใช้ Certbot ร่วมกับปลั๊กอิน Nginx เพื่อขอใบรับรองจาก Let’s Encrypt และให้ระบบแก้ config ให้อัตโนมัติ ขั้นตอนเริ่มต้นมีดังนี้
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d isanrecipes.example.com -d www.isanrecipes.example.com
ระหว่างรัน Certbot ระบบจะถามอีเมลสำหรับแจ้งเตือน การยอมรับเงื่อนไข และถามว่าต้องการ redirect HTTP ไป HTTPS หรือไม่ แนะนำให้เลือก redirect ทันทีเพื่อให้ทุก request วิ่งผ่านช่องทางเข้ารหัส หลังติดตั้งเสร็จคุณสามารถทดสอบได้ด้วยการเข้า https://isanrecipes.example.com และตรวจสอบสถานะใบรับรอง รวมถึงตั้งทดสอบการต่ออายุอัตโนมัติด้วยคำสั่ง sudo certbot renew --dry-run จุดที่ควรเข้าใจคือ Let’s Encrypt ออกใบรับรองอายุสั้นและเน้นระบบต่ออายุอัตโนมัติ นี่ไม่ใช่จุดอ่อน แต่เป็นปรัชญาการออกแบบที่ลดภาระมนุษย์และเพิ่มความคล่องตัวด้านความปลอดภัยอย่างมาก
บังคับ WordPress ให้รู้จัก HTTPS อย่างถูกต้อง
หลังจากเปิด SSL แล้ว บางระบบอาจเจอปัญหา mixed content หรือ URL ของ WordPress ยังชี้เป็น HTTP วิธีแก้คือกำหนดค่า Site URL ให้ชัดเจนผ่านแดชบอร์ดหรือระบุไว้ใน wp-config.php โดยตรงเพื่อความแน่นอน โดยเฉพาะเมื่อต้อง migration หรือทำ automation คำสั่งและตัวอย่างค่ามีดังนี้
sudo nano /var/www/isanrecipes.example.com/wp-config.php
define('WP_HOME', 'https://isanrecipes.example.com');
define('WP_SITEURL', 'https://isanrecipes.example.com');
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
หากมีรูปภาพหรือ asset เก่าที่ยังเป็น HTTP อาจต้องใช้ปลั๊กอินช่วยค้นหาและแทนที่ URL หรือใช้ WP-CLI ในการ search-replace อย่างระมัดระวัง เช่น wp search-replace 'http://isanrecipes.example.com' 'https://isanrecipes.example.com' --skip-columns=guid แน่นอนว่าก่อนรันคำสั่งแก้ฐานข้อมูลใด ๆ ควรแบ็กอัปก่อนเสมอ ผมมองว่าจุดนี้สะท้อนความต่างระหว่าง “ติดตั้งให้รันได้” กับ “ติดตั้งให้พร้อมใช้งานจริง” เพราะการมี HTTPS อย่างเดียวไม่พอ หากแอปยังอ้างลิงก์แบบเก่า ประสบการณ์ผู้ใช้และคะแนน SEO ก็ยังเสียได้อยู่ดี
เปิดใช้งาน UFW และ Fail2Ban เพื่อเสริมแนวป้องกัน
เซิร์ฟเวอร์ WordPress ที่ออนไลน์สู่สาธารณะย่อมถูกสแกนและถูกลองโจมตีอัตโนมัติแทบตลอดเวลา ดังนั้นนอกจากการ ตั้งค่า WordPress บน Ubuntu 24.04 ให้ใช้งานได้แล้ว เรายังควรตั้งชั้นป้องกันเพิ่มอย่างไฟร์วอลล์และระบบแบน IP อัตโนมัติจากพฤติกรรมเสี่ยง เริ่มจาก UFW เพื่อจำกัดทราฟฟิกที่จำเป็น และติดตั้ง Fail2Ban เพื่อจับ log แล้วบล็อก IP ที่พยายาม brute-force ซ้ำ ๆ ตัวอย่างคำสั่งพื้นฐานคือ
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status verbose
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
จากนั้นสร้างไฟล์ local config สำหรับ Fail2Ban เช่น /etc/fail2ban/jail.local และเพิ่มค่าพื้นฐานสำหรับ SSH
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h
หากคุณใช้ปลั๊กอินด้านความปลอดภัยของ WordPress เพิ่มเติม อาจต่อยอดทำ jail สำหรับ Nginx auth failures หรือ bad bots ได้ในภายหลัง แต่สำหรับมือใหม่เพียงเปิด UFW อย่างถูกต้องและตั้ง Fail2Ban กับ SSH ให้เรียบร้อยก็ช่วยลด noise และความเสี่ยงจากการโจมตีพื้นฐานได้มากแล้ว หลักคิดสำคัญคือ defense in depth หรือการวางหลายชั้น ไม่หวังพึ่งเครื่องมือเดียวให้ป้องกันได้ทุกอย่าง
ปรับแต่ง Nginx และ PHP-FPM ให้เว็บเร็วขึ้นสำหรับงานจริง
เมื่อ WordPress เริ่มทำงานได้แล้ว ขั้นต่อไปคือ optimization เพื่อให้เว็บตอบสนองเร็วขึ้น โดยเฉพาะหากเป็นเว็บคอนเทนต์ที่มีรูปภาพจำนวนมาก เช่น สูตรอาหาร ภาพวัตถุดิบ และบทความยาว จุดที่ปรับง่ายและเห็นผลคือการเปิด gzip, ตั้ง cache header สำหรับไฟล์ static และปรับค่า process ของ PHP-FPM ให้เหมาะกับทรัพยากรเครื่อง ตัวอย่างเพิ่มใน Nginx อาจอยู่ในไฟล์ global config หรือ server block ดังนี้
sudo nano /etc/nginx/nginx.conf
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 256;
สำหรับ PHP-FPM คุณสามารถดูไฟล์ pool config ที่ /etc/php/8.3/fpm/pool.d/www.conf และปรับค่าอย่าง pm = dynamic, pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers ตามขนาด RAM ของเครื่อง ตัวอย่างเช่นเครื่องเล็ก 1-2 GB RAM อาจต้องตั้งอย่างประหยัดเพื่อไม่ให้กินหน่วยความจำเกินจำเป็น นอกจากนี้อย่าลืมติดตั้งแคชระดับแอปอย่าง OPcache ซึ่งมักมากับ PHP อยู่แล้ว และตรวจสอบว่าเปิดใช้งานใน php.ini ค่าเหล่านี้อาจดูเป็นเรื่อง performance แต่ในมุมระบบจริง ความเร็วที่ดีช่วยลดโหลด ลด timeout และลดโอกาสเกิด bottleneck ได้อย่างชัดเจน
ติดตั้ง WordPress ผ่านหน้าเว็บและตั้งค่าพื้นฐานหลังบ้าน
เมื่อทุกชั้นตั้งค่าเรียบร้อย ให้เปิดโดเมนของคุณผ่าน HTTPS แล้วทำขั้นตอนติดตั้ง WordPress ผ่านหน้าเว็บ ซึ่งจะถามชื่อเว็บไซต์ ชื่อบัญชีแอดมิน รหัสผ่าน อีเมล และการตั้งค่า search engine visibility ตรงนี้แนะนำให้ตั้ง username ไม่ใช่คำว่า admin และใช้รหัสผ่านที่แข็งแรงจริงพร้อมเปิดใช้งาน 2FA ผ่านปลั๊กอินภายหลัง หลังเข้าระบบได้แล้ว สิ่งที่ควรทำทันทีมีดังนี้
- ไปที่ Settings > Permalinks แล้วเลือก Post name
- ลบธีมและปลั๊กอินที่ไม่ใช้
- ติดตั้งปลั๊กอินแคชหรือ security เท่าที่จำเป็น
- ตั้งค่า timezone, language และ discussion policy
- ตรวจสอบว่า URL ทุกจุดเป็น HTTPS
- ตั้งค่า backup schedule
หากคุณชอบทำงานผ่าน command line การติดตั้ง WP-CLI จะช่วยบริหาร WordPress ได้สะดวกมาก เช่น อัปเดต core, plugin, theme, สร้างผู้ใช้ หรือทำ search-replace ตัวอย่างติดตั้ง WP-CLI คือ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar, php wp-cli.phar --info, chmod +x wp-cli.phar, sudo mv wp-cli.phar /usr/local/bin/wp จากนั้นใช้งานได้ด้วยคำสั่งอย่าง wp core version --path=/var/www/isanrecipes.example.com --allow-root แม้จะไม่จำเป็นสำหรับมือใหม่ แต่ถ้าคุณสนใจ automation ในอนาคต เครื่องมือนี้คุ้มค่ามาก
แนวคิดเรื่องความปลอดภัย: ไม่ใช่แค่ล็อกกุญแจ แต่ต้องจัดบ้านให้เป็นระบบ
ในมุมมองของผม การติดตั้ง SSL หรือเปิดไฟร์วอลล์ยังไม่ใช่ทั้งหมดของคำว่า secure hosting สิ่งสำคัญกว่าคือวินัยในการดูแลระบบระยะยาว เว็บ WordPress จำนวนมากไม่ได้ถูกเจาะเพราะ Nginx หรือ Ubuntu มีปัญหา แต่ถูกเจาะเพราะปลั๊กอินเก่า รหัสผ่านอ่อน ไม่มีแบ็กอัป หรือเปิดสิทธิ์ไฟล์กว้างเกินไป ดังนั้นหากคุณจริงจังกับการ ตั้งค่า WordPress บน Ubuntu 24.04 ให้ปลอดภัย ควรมี checklist ประจำ เช่น อัปเดตแพ็กเกจระบบทุกสัปดาห์ ตรวจสอบ log, ทดสอบการต่ออายุ SSL, ตรวจสถานะ backup และลบส่วนประกอบที่ไม่ใช้ออกสม่ำเสมอ
ผมยังแนะนำให้แยกการมองระบบออกเป็น 4 ชั้น ได้แก่ infrastructure, application, identity และ data ชั้น infrastructure คือ Ubuntu, Nginx, UFW, Fail2Ban ชั้น application คือ WordPress core, theme, plugin ชั้น identity คือบัญชีผู้ใช้ รหัสผ่าน MFA และสิทธิ์การเข้าถึง ส่วนชั้น data คือฐานข้อมูลและไฟล์อัปโหลด ถ้าคุณดูแลครบทุกชั้น ความเสี่ยงจะลดลงอย่างมีนัยสำคัญ นี่คือเหตุผลที่การ self-host ไม่ควรถูกมองว่าเป็นเพียงงานติดตั้งเว็บ แต่เป็นการออกแบบสภาพแวดล้อมที่เราเข้าใจและควบคุมได้อย่างเป็นระบบ
การสำรองข้อมูลและการกู้คืน: หัวใจของเว็บที่ปลอดภัยจริง
ไม่ว่าจะตั้งระบบดีแค่ไหน หากไม่มีแผนแบ็กอัปที่ใช้งานได้จริง ก็ถือว่ายังไม่พร้อมสำหรับ production เพราะความเสียหายไม่ได้มาจากผู้โจมตีเสมอไป แต่อาจมาจากการอัปเดตพลาด ดิสก์เสีย หรือเผลอลบข้อมูลเองได้ สำหรับ WordPress สิ่งที่ต้องสำรองหลัก ๆ คือสองส่วน: ไฟล์เว็บไซต์ใน /var/www/... และฐานข้อมูล MariaDB ตัวอย่างการแบ็กอัปฐานข้อมูลแบบง่ายคือ
mysqldump -u wp_user -p wordpress_db > wordpress_db_$(date +%F).sql
ส่วนแบ็กอัปไฟล์เว็บไซต์อาจใช้ tar ดังนี้ sudo tar -czf isanrecipes_files_$(date +%F).tar.gz /var/www/isanrecipes.example.com จากนั้นควรส่งออกไปเก็บยัง object storage หรือเครื่องสำรองอีกแห่ง ไม่ควรเก็บไว้แค่บนเซิร์ฟเวอร์เดียวกัน และที่สำคัญไม่แพ้การแบ็กอัปคือการทดสอบ restore เพราะไฟล์สำรองที่กู้คืนไม่ได้ก็แทบไม่มีความหมาย ถ้าคุณทำเว็บจริงจัง แม้เป็นเพียงบล็อกสูตรอาหารหรือเว็บคอนเทนต์เล็ก ๆ การมี routine backup และ restore test คือความแตกต่างระหว่าง “พอใช้ได้” กับ “พร้อมรับมือเหตุการณ์จริง” อย่างแท้จริง
สรุปการตั้งค่า WordPress บน Ubuntu 24.04 แบบปลอดภัยและพร้อมใช้งานจริง
ตลอดบทความนี้ เราได้ไล่ทุกขั้นตอนของการ ตั้งค่า WordPress บน Ubuntu 24.04 ตั้งแต่เตรียมเซิร์ฟเวอร์ สร้างผู้ใช้ที่ปลอดภัย ติดตั้ง Nginx, MariaDB และ PHP-FPM ดาวน์โหลด WordPress ตั้งค่า wp-config.php สร้าง Nginx server block เปิดใช้งาน Let’s Encrypt SSL บังคับ HTTPS ตลอดจนเสริมความปลอดภัยด้วย UFW และ Fail2Ban พร้อมแนวทาง optimization, backup และการดูแลระบบในระยะยาว หากคุณทำครบตามนี้ คุณจะได้เว็บ WordPress ที่ไม่ได้แค่ “เปิดได้” แต่ “พร้อมใช้งานจริง” ในระดับที่มีมาตรฐานมากกว่าการติดตั้งแบบรีบ ๆ ทั่วไป
ท้ายที่สุด การโฮสต์ WordPress เองไม่ใช่แค่เรื่องเทคนิค แต่คือการเรียนรู้วิธีควบคุมโครงสร้างพื้นฐานของตัวเองอย่างมีสติและมีวินัย คุณจะเข้าใจเว็บของตัวเองลึกขึ้น เข้าใจว่า HTTPS ทำงานอย่างไร เข้าใจว่าทำไมฐานข้อมูลต้องแยกผู้ใช้ ทำไม firewall สำคัญ และทำไม backup จึงเป็นเรื่องห้ามมองข้าม หากเป้าหมายของคุณคือสร้างเว็บที่เร็ว ปลอดภัย ตรวจสอบได้ และอยู่บนหลักของ open source กับ digital sovereignty การเดินเส้นทางนี้ถือว่าคุ้มค่ามาก และหวังว่าคู่มือฉบับนี้จะช่วยให้คุณเริ่มต้นสร้างป้อมปราการดิจิทัลสำหรับเนื้อหาสำคัญของคุณได้อย่างมั่นใจ

ตั้งค่า WordPress บน Ubuntu 24.04 ด้วย Nginx และ Let’s Encrypt: คู่มือสร้างเว็บสูตรอาหารอีสานแบบปลอดภัยด้วย SSL สำหรับสาย Digital Sovereignty
เริ่มต้นสร้างป้อมปราการดิจิทัลให้ WordPress บน Ubuntu 24.04
ถ้าคุณกำลังมองหาวิธี ตั้งค่า WordPress บน Ubuntu 24.04 ให้ปลอดภัย ใช้งาน…Read More
สร้างแอปส่งอาหารแบบกระจายศูนย์ด้วย Linux และโอเพ่นซอร์ส: คู่มือปฏิวัติ Food Delivery ให้ชุมชนเป็นเจ้าของ
บทนำ: เมื่อการส่งอาหารไม่ควรถูกผูกขาดโดยแพลตฟอร์มกลาง
ในช่วงไม่กี่ปีที่ผ่านมา โมเดลแพลตฟอร์มส่งอาหารแบบรวมศูนย์ได้กลายเป็นโครงสร้างพื้นฐานดิจิทัลที่ห…Read More
ติดตั้ง FFmpeg บน Linux เพื่อบีบอัดวิดีโออาหารอีสานอัตโนมัติ: คู่มือ DevOps ครีเอทีฟสำหรับสายคอนเทนต์ที่อยากเลิกเรนเดอร์เอง
ในโลกของครีเอเตอร์ที่ต้องผลิตวิดีโออย่างต่อเนื่อง โดยเฉพาะสายอาหารอีสานที่มีทั้งภาพครกตำส้มตำ ควันจากปลาร้า เสียงครัวที่มีจังหวะเฉพาะตัว และฟุตเทจยาวระดับหลา…
Read More
สร้าง Ubuntu Server ท้องถิ่นเพื่ออนุรักษ์ดนตรีพื้นบ้านอีสาน: คู่มือ Digital Sovereignty สำหรับคลังเสียง Mo Lam และ Kantrum
ในวันที่ไฟล์ดิจิทัลดูเหมือนจะเก็บทุกอย่างไว้ได้ตลอดไป ความจริงกลับตรงกันข้ามสำหรับมรดกเสียงพื้นบ้านจำนวนมาก โดยเฉพาะดนตรีอีสานอย่าง Mo Lam แ…
Read More
คู่มือเริ่มต้นแต่งเพลงด้วย Suno AI: จากไอเดียแรกสู่เดโมเพลงที่ฟังได้จริงแบบเข้าใจง่าย
ทำความรู้จักกับ Suno AI สำหรับคนที่อยากเริ่มแต่งเพลง
ถ้าคุณเคยมีทำนองอยู่ในหัวแต่ไม่รู้จะเริ่มทำเพลงอย่างไร หรืออยากทดลองสร้างเพลงโดยไม่ต้องเชี่ยวชาญ…Read More