wp-config.php เป็นไฟล์กำหนดค่าหลักของ WordPress ที่ควบคุมการทำงานของเว็บไซต์ บทความนี้จะอธิบายวิธีการตั้งค่า wp-config.php แบบ Advanced เพื่อให้ไซต์ WordPress ของคุณบน Cloud VPS ของ Dot Enterprise ทำงานได้อย่างปลอดภัยและมีประสิทธิภาพสูงสุด
wp-config.php คืออะไร และมีความสำคัญเพียงใด
wp-config.php เป็นไฟล์ที่เหมาะสำหรับการตั้งค่า WordPress ไฟล์นี้ประกอบด้วย:
- ข้อมูลการเชื่อต่อฐานข้อมูล MySQL (Database credentials)
- กุญแจความปลอดภัยและเกลือ (Security keys และ salts)
- การตั้งค่า PHP memory limit
- โหมดดีบัก (Debug mode)
- การตั้งค่า cache และประสิทธิภาพ
- การเลือกประเภทสภาพแวดล้อม (Environment type)
ความสำคัญของไฟล์ wp-config.php:
- เชื่อมต่อ WordPress กับฐานข้อมูล MySQL อย่างปลอดภัย
- ปกป้องความปลอดภัยของเว็บไซต์ด้วยกุญแจรหัสลับ
- ปรับจูนประสิทธิภาพของเซิร์ฟเวอร์ Cloud VPS
- ควบคุมโหมดดีบักสำหรับการพัฒนาและแก้ไขปัญหา
การตั้งค่า Database Connection
ส่วนแรกของไฟล์ wp-config.php ที่ WordPress ใช้เชื่อต่อฐานข้อมูล MySQL:
// ** ข้อมูลฐานข้อมูล ** //
define( 'DB_NAME', 'yourdatabase' ); // ชื่อฐานข้อมูล
define( 'DB_USER', 'databaseuser' ); // ชื่อผู้ใช้ MySQL
define( 'DB_PASSWORD', 'your_password' ); // รหัสผ่าน MySQL
define( 'DB_HOST', 'localhost' ); // โฮสต์เซิร์ฟเวอร์ MySQL
define( 'DB_CHARSET', 'utf8mb4' ); // Character set
define( 'DB_COLLATE', 'utf8mb4_unicode_ci' ); // Collation
คำอธิบายของแต่ละพารามิเตอร์:
- DB_NAME: ชื่อฐานข้อมูลที่คุณสร้างไว้ใน Plesk หรือ cPanel ของ Cloud VPS
- DB_USER: ชื่อผู้ใช้ MySQL ที่มีสิทธิเข้าถึงฐานข้อมูลนั้นโดยเฉพาะ
- DB_PASSWORD: รหัสผ่าน MySQL ที่ตั้งไว้ในแผงควบคุม hosting
- DB_HOST: โฮสต์ฐานข้อมูล มักเป็น localhost แต่อาจเป็น IP address ของเซิร์ฟเวอร์
- DB_CHARSET: ชุดอักขระสำหรับข้อมูลภาษาไทย ควรตั้งเป็น utf8mb4
WP_MEMORY_LIMIT: ตั้งค่า Memory Limit สำหรับ WordPress
WP_MEMORY_LIMIT กำหนดปริมาณหน่วยความจำ PHP ที่ WordPress สามารถใช้ได้เมื่อประมวลผล plugins, themes, และการอัปโหลดไฟล์:
// ตั้งค่า memory limit สำหรับ WordPress
define('WP_MEMORY_LIMIT', '256M'); // Memory limit พื้นฐาน 256 MB
define('WP_MAX_MEMORY_LIMIT', '512M'); // Maximum memory limit 512 MB
สำหรับเซิร์ฟเวอร์ Cloud VPS ของ Dot Enterprise ที่มี resources มากมาย คุณสามารถเพิ่มค่า memory limit ได้ตามความจำเป็น:
- เว็บไซต์ขนาดเล็ก (10-50 บทความ): 128M ถึง 256M
- เว็บไซต์ขนาดกลาง (50-500 บทความ): 256M ถึง 512M
- เว็บไซต์ขนาดใหญ่ (500+ บทความ, plugins หลายตัว): 512M ถึง 1024M
Debug Mode: WP_DEBUG และ WP_DEBUG_LOG
โหมดดีบักช่วยให้คุณค้นหาข้อผิดพลาด (errors) และข้อเตือน (warnings) ใน WordPress:
// ตั้งค่า Debug Mode
define('WP_DEBUG', false); // ปิด debug mode ใน production
define('WP_DEBUG_LOG', true); // บันทึก errors ไฟล์ /wp-content/debug.log
define('WP_DEBUG_DISPLAY', false); // ห้ามแสดง errors บนหน้าเว็บ
// Script Debug สำหรับไฟล์ CSS และ JavaScript
define('SCRIPT_DEBUG', true); // ใช้ unminified CSS และ JS
// บันทึก Database Queries
define('SAVEQUERIES', false); // บันทึก queries เฉพาะตอนพัฒนา
คำแนะนำ: ใน production environment ควรตั้ง WP_DEBUG เป็น false เสมอ เพื่อไม่ให้เปิดเผยข้อมูลความปลอดภัย ตั้งค่า WP_DEBUG_DISPLAY เป็น false เพื่อไม่ให้แสดง errors บนหน้าเว็บ
Security Keys และ Salts: เพิ่มความปลอดภัยเข้มขลัง
Security keys และ salts เป็นส่วนสำคัญของการเข้ารหัส cookies, sessions, และข้อมูลผู้ใช้ใน WordPress:
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
คุณสามารถสร้าง security keys ใหม่ที่มีความปลอดภัยสูงจากบริการ WordPress.org Secret Key Service ให้คัดลอก keys ทั้งหมดแล้วแทนที่ส่วน “put your unique phrase here” ในไฟล์ wp-config.php
Database Table Prefix: เปลี่ยนชื่อ Prefix เพิ่มความปลอดภัย
Table prefix เป็นคำนำหน้าของตารางในฐานข้อมูล การเปลี่ยน prefix เป็นชื่อที่ไม่ใช่ “wp_” ช่วยป้องกัน SQL injection attacks:
// Default prefix (ไม่ปลอดภัยนัก)
$table_prefix = 'wp_';
// ปลอดภัยกว่า - ใช้ prefix แบบสุ่ม
$table_prefix = 'blog_' . substr(md5(time()), 0, 4) . '_'; // เช่น blog_a1b2_
หากต้องการเปลี่ยน prefix สำหรับเว็บไซต์ที่มีอยู่แล้ว ควรใช้ plugins เช่น “Brozzme Database Prefix” เพื่อเปลี่ยนได้อย่างปลอดภัย
FORCE_SSL_ADMIN: บังคับใช้ HTTPS สำหรับ Admin Dashboard
ตั้งค่า FORCE_SSL_ADMIN เพื่อให้ admin dashboard ทำงานด้วยการเข้ารหัส HTTPS เสมอ ช่วยป้องกัน username และ password ไม่ให้ถูกสกัด:
// บังคับใช้ HTTPS สำหรับ Admin
define('FORCE_SSL_ADMIN', true);
// บังคับใช้ HTTPS สำหรับทั้งเว็บไซต์ (Optional)
define('FORCE_SSL', true);
ขอแนะนำว่าหากเว็บไซต์ของคุณอยู่บน Cloud VPS ของ Dot Enterprise ควรติดตั้ง SSL/TLS Certificate (อาจเป็น Let’s Encrypt ฟรี) เพื่อใช้ HTTPS
DISALLOW_FILE_EDIT: ปิดการแก้ไข Plugin และ Theme จากแอดมิน
ปิดคุณสมบัติแก้ไขไฟล์ plugin และ theme ผ่าน admin dashboard เพื่อป้องกัน malicious attacks:
// ปิดการแก้ไข plugin และ theme
define('DISALLOW_FILE_EDIT', true);
// ปิดการแก้ไขไฟล์ทั้งหมด
define('DISALLOW_FILE_MODS', true);
ข้อดี: เพิ่มความปลอดภัย, ป้องกัน fatal errors, บังคับให้ใช้ FTP/SFTP สำหรับการแก้ไข
WP_CACHE และ Object Caching: ปรับจูนประสิทธิภาพ
เปิดใช้งาน object caching เพื่อลดโหลด database และเพิ่มความเร็วของเว็บไซต์:
// เปิด Object Caching
define('WP_CACHE', true);
// Redis Configuration (สำหรับ Cloud VPS ที่มี Redis)
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
// Memcached Configuration (Alternative)
define('MEMCACHED_SERVERS', array('127.0.0.1:11211'));
บน Cloud VPS ของ Dot Enterprise คุณสามารถขอให้เปิดใช้งาน Redis หรือ Memcached เพื่อเพิ่มความเร็วเว็บไซต์อย่างมีนัยสำคัญ
WP_AUTO_UPDATE_CORE: ตั้งค่า Auto-update สำหรับ WordPress Core
กำหนดว่า WordPress จะอัปเดต WordPress core อย่างไร:
// ตั้งค่า Auto-update สำหรับ WordPress core
define('WP_AUTO_UPDATE_CORE', 'minor'); // minor, major, หรือ false
// เปิดใช้งาน automatic updater
define('AUTOMATIC_UPDATER_DISABLED', false);
- ‘minor’: อัปเดต minor versions เท่านั้น (แนะนำสำหรับ production)
- ‘major’: อัปเดท major และ minor versions
- false: ปิด auto-update (ต้องอัปเดตด้วยตนเอง)
WP_ENVIRONMENT_TYPE: กำหนด Environment ของไซต์
ระบุว่าเว็บไซต์ของคุณอยู่ใน development, staging, หรือ production environment:
// กำหนด Environment Type
define('WP_ENVIRONMENT_TYPE', 'production'); // production, staging, development
ค่าที่แนะนำ:
- production: เว็บไซต์สดจริง (ปิด debug, เปิด cache)
- staging: สภาพแวดล้อมทดสอบ (อนุญาต debug, testing)
- development: พัฒนาในเครื่อง (เปิด debug, ปิด cache)
wp-config.php ตัวอย่างที่สมบูรณ์สำหรับ Cloud VPS
นี่คือตัวอย่างการตั้งค่า wp-config.php ที่เหมาะสำหรับเซิร์ฟเวอร์ Cloud VPS ของ Dot Enterprise:
ขั้นตอนการแก้ไข wp-config.php บน Cloud VPS
- เชื่อมต่อ FTP/SFTP: ใช้ FileZilla หรือ SSH เชื่อมต่อเซิร์ฟเวอร์ Cloud VPS
- สำรองไฟล์: ดาวน์โหลดไฟล์ wp-config.php ต้นฉบับก่อนแก้ไข
- แก้ไขไฟล์: เปิดไฟล์ด้วย Text Editor (Notepad++, VS Code, Sublime)
- เพิ่มการตั้งค่า: เพิ่มส่วนการตั้งค่าแบบ Advanced ตามตัวอย่าง
- อัปโหลด: อัปโหลดไฟล์กลับไปยังเซิร์ฟเวอร์
- ทดสอบ: เปิดเว็บไซต์เพื่อตรวจสอบว่าทำงานปกติ
การแนะนำสำหรับเว็บไซต์บน Cloud VPS ของ Dot Enterprise
- หากใช้บริการ Cloud VPS ของ Dot Enterprise คุณสามารถขอความช่วยเหลือจากทีม support ได้
- ลงทะเบียน Redis หรือ Memcached เพื่อเพิ่มประสิทธิภาพการ caching
- ติดตั้ง SSL Certificate (Let's Encrypt) ให้ใช้ HTTPS
- ใช้ PHP เวอร์ชันล่าสุด (PHP 8.1 ขึ้นไป) เพื่อประสิทธิภาพที่ดีขึ้น
- ติดตั้ง WP Super Cache หรือ W3 Total Cache plugins สำหรับ caching เพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริการ Cloud VPS โปรดเยี่ยมชม Cloud VPS ของ Dot Enterprise
สรุป
การตั้งค่า wp-config.php อย่างถูกต้องเป็นรากฐานสำคัญของการให้ WordPress ทำงานได้ปลอดภัยและมีประสิทธิภาพสูง บน Cloud VPS ของ Dot Enterprise ที่มี resources มากมาย คุณสามารถใช้การตั้งค่าเหล่านี้เพื่อให้ไซต์ของคุณทำงานได้อย่างเหมาะที่สุด อย่าลืมทดสอบการเปลี่ยนแปลงหลังจากแก้ไข wp-config.php และเก็บไฟล์ backup ไว้เสมอ

