สำหรับคนทำเว็บไซต์ WordPress มือใหม่ เราอาจจะคุ้นเคยกับการจัดการเว็บผ่านหน้า Dashboard ที่มีเมนูสวยงาม แต่สำหรับ Webmaster ระดับมืออาชีพ หรือคนที่ต้องการปรับแต่งเว็บที่การตั้งค่ามาตรฐานไม่สามารถทำได้ การทำความรู้จักกับไฟล์ระดับ Core System อย่าง wp-config.php และ .htaccess คือไฟลท์บังคับที่หลีกเลี่ยงไม่ได้
ไฟล์สองตัวนี้เปรียบเสมือน “ห้องเครื่อง” และ “ป้อมปราการ” ของเว็บไซต์ครับ การตั้งค่าที่ถูกต้องจะช่วยรีดประสิทธิภาพเว็บได้สูงสุด ในทางกลับกัน การแก้ไขที่ผิดพลาดเพียงบรรทัดเดียวก็อาจทำให้เว็บล่ม (Crash) ได้ทันที วันนี้พี่แว่นจะพาไปเจาะลึกโครงสร้างและการใช้งานจริงของทั้งสองไฟล์นี้ครับ
wp-config.php ศูนย์บัญชาการหลักที่มากกว่าแค่ต่อฐานข้อมูล
หลายคนเข้าใจว่าไฟล์ wp-config.php มีหน้าที่แค่เก็บชื่อ Database และ Password ตอนติดตั้งเว็บครั้งแรก แต่ในความเป็นจริง ไฟล์นี้คือไฟล์ Configuration ระดับ Global ที่ควบคุมพฤติกรรมของ WordPress ได้ทั้งระบบครับ
ไฟล์นี้ไม่ได้มาพร้อมกับตัวติดตั้ง WordPress ตั้งแต่แรก แต่เกิดจากการเปลี่ยนชื่อไฟล์ wp-config-sample.php ระหว่างขั้นตอนการติดตั้ง ซึ่งภายในไฟล์นี้ เราสามารถ “Inject” คำสั่งพิเศษ (Constants) ลงไปเพื่อปรับแต่งระบบได้มากมาย พี่แว่นคัดคำสั่งเด็ดๆ ที่โปรส่วนใหญ่นิยมใช้และมีประโยชน์มากๆ มาให้ครับ
1. การจูนหน่วยความจำ (Memory Limit)
ปัญหาคลาสสิกอย่าง Allowed memory size of … bytes exhausted หรือแม้แต่ Error 500 มักเกิดจากปลั๊กอินหรือธีมกินทรัพยากรเกินที่กำหนด เพราะโดยปกติแล้วระบบพื้นฐานของ WordPress จะให้เรามาประมาณ 128MB เท่านั้น (ขนาดอาจแตกต่างกันไปตามโฮสติ้งที่ให้บริการ) เราสามารถสั่งเพิ่มลิมิตแรมให้ WordPress ได้ผ่านไฟล์นี้ครับ
PHP
define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
define( ‘WP_MAX_MEMORY_LIMIT’, ‘512M’ ); // สำหรับหน้า Admin
2. ระบบความปลอดภัยขั้นสูง (Security Keys & Salts)
ถ้าลองเปิดไฟล์นี้ดู จะเห็นชุดตัวอักษรยาวๆ ที่อ่านไม่รู้เรื่อง 8 บรรทัด (AUTH_KEY, SECURE_AUTH_KEY ฯลฯ) นี่คือ Salts ครับ มันคือการใส่รหัสเกลือเพื่อเข้ารหัสข้อมูลใน Cookies ของผู้ใช้งาน
ทริค หากคุณรู้สึกว่าเว็บโดนแฮก หรืออยากบังคับให้ User ทุกคน (รวมถึงตัวเรา) Log out ออกจากระบบทันที ให้ไปเจนเนอเรต Key ใหม่จากเว็บ WordPress API แล้วนำมาวางทับของเดิม ทุก Session จะหลุดทันทีครับ ทำให้ทุกคนต้อง Log in เข้ามาใหม่
3. การจัดการขยะและเวอร์ชัน (Post Revisions)
WordPress มีระบบ Auto-save และเก็บประวัติการแก้ไขบทความ (Revisions) ซึ่งถ้าปล่อยไว้นานๆ ฐานข้อมูลจะบวมอืดเพราะขยะพวกนี้ครับ เราสามารถจำกัดจำนวนได้
PHP
define( ‘WP_POST_REVISIONS’, 5 ); // เก็บประวัติแก้ไขล่าสุดแค่ 5 เวอร์ชัน
define( ‘EMPTY_TRASH_DAYS’, 7 ); // ลบไฟล์ในถังขยะทิ้งอัตโนมัติทุก 7 วัน
4. โหมดนักพัฒนา (Advanced Debugging)
เมื่อเว็บจอขาว หรือปลั๊กอินทำงานผิดปกติ การเปิด Debug Mode คือสิ่งที่ต้องทำครับ
PHP
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true ); // บันทึก Error ลงไฟล์ debug.log ในโฟลเดอร์ wp-content
define( ‘WP_DEBUG_DISPLAY’, false ); // ปิดไม่ให้ Error โชว์หน้าเว็บ (กันลูกค้าตกใจ)
.htaccess ผู้คุมกฎระดับเซิร์ฟเวอร์ (Apache/LiteSpeed)
ไฟล์ .htaccess (Hypertext Access) เป็นไฟล์ Configuration ของ Web Server ที่ทำงานในระดับ “ก่อน” ที่จะเข้าถึง PHP หรือ WordPress เสียอีกครับ นั่นหมายความว่า มันมีอำนาจในการ อนุญาต (Allow) หรือ บล็อก (Block) การเข้าถึงได้ตั้งแต่หน้าประตูบ้าน
ปกติไฟล์นี้จะถูกสร้างอัตโนมัติเมื่อเราไปกด Save ในเมนู Settings > Permalinks แต่เราสามารถเข้าไปเขียนกฎ (Rules) เพิ่มเติม เพื่อเพิ่มความปลอดภัยและสปีดได้ครับ
1. ป้องกันไฟล์สำคัญ (Hardening Security)
แฮกเกอร์มักจะจ้องเล่นงานไฟล์ wp-config.php เป็นที่แรก เพราะมีรหัสผ่านฐานข้อมูล เราสามารถเขียนสั่งบล็อกไม่ให้ใครเข้าถึงไฟล์นี้ได้ครับ:
Apache
<files wp-config.php>
order allow,deny
deny from all
</files>
2. ป้องกันการส่องโฟลเดอร์ (Disable Directory Browsing)
เคยไหมครับที่เข้าเว็บไปบางโฟลเดอร์แล้วเห็นรายชื่อไฟล์เรียงเป็นตับ? นั่นคือช่องโหว่ที่ทำให้แฮกเกอร์เห็นโครงสร้างเว็บเรา วิธีปิดคือง่ายมากครับ เติมบรรทัดนี้ลงไป:
Apache
Options -Indexes
3. การตั้งค่า 301 Redirect (เปลี่ยนเส้นทาง)
การย้ายหน้าเว็บ หรือเปลี่ยนโดเมน การทำ Redirect ผ่าน .htaccess จะทำงานได้เร็วกว่าใช้ปลั๊กอินมาก เพราะจัดการที่ระดับเซิร์ฟเวอร์เลย ตัวอย่างการ Redirect จากหน้าเก่าไปหน้าใหม่:
Apache
Redirect 301 /old-page/ https://www.yourdomain.com/new-page/
4. บล็อก IP ตัวป่วน
ถ้าคุณตรวจสอบ Log แล้วเจอ IP จากต่างประเทศพยายามยิงเว็บ หรือ Brute Force รหัสผ่าน คุณสามารถแบน IP นั้นถาวรได้เลย:
Apache
<Limit GET POST>
order allow,deny
deny from 123.456.78.9
allow from all
</Limit>
ข้อควรระวัง
การแก้ไขสองไฟล์นี้ต้องทำด้วยความระมัดระวังสูงสุดครับ เพราะไม่มีปุ่ม Undo เหมือนใน Word พี่แว่นขอฝากกฎเหล็ก 3 ข้อ
Backup ก่อนเสมอ ก่อนจะแตะต้องไฟล์ ให้ดาวน์โหลดไฟล์ต้นฉบับมาเก็บไว้ในคอมพิวเตอร์ก่อน 1 ชุด ถ้าแก้แล้วพัง ก็แค่อัปโหลดตัวเดิมกลับขึ้นไป
ใช้ Text Editor ที่ถูกต้อง ห้ามใช้ Notepad ของ Windows หรือ Microsoft Word แก้ไขเด็ดขาด เพราะมันอาจแอบใส่ตัวอักษรพิเศษที่มองไม่เห็นลงไป ให้ใช้โปรแกรมสำหรับเขียนโค้ดโดยเฉพาะ เช่น Notepad++, Sublime Text หรือ VS Code
ตำแหน่งการวางโค้ด ในไฟล์ wp-config.php ห้ามวางโค้ดหลังบรรทัดที่เขียนว่า /* That’s all, stop editing! Happy publishing. */ เด็ดขาด โค้ดที่วางหลังบรรทัดนี้จะไม่ทำงานครับ
การเข้าใจและควบคุมไฟล์ wp-config.php และ .htaccess ได้ คือเส้นแบ่งระหว่างผู้ใช้งานทั่วไปกับ Webmaster มืออาชีพครับ ลองนำเทคนิคเหล่านี้ไปปรับจูนดู รับรองว่าเว็บไซต์ของคุณจะปลอดภัยและทำงานได้เสถียรขึ้นอย่างแน่นอน
Digital Marketer และนักพัฒนาเว็บไซต์ที่มีความเชี่ยวชาญด้าน WordPress และ Technical SEO ผสมผสานทักษะด้านเทคโนโลยีและการตลาดเข้าด้วยกัน เพื่อสร้างเว็บไซต์ที่ปลอดภัยและทำงานได้รวดเร็ว พร้อมวางกลยุทธ์โฆษณา Google Ads ที่แม่นยำและวัดผลได้