ตอนนี้เราควรให้ความสำคัญกับความปลอดภัยของเว็บไซต์ wordpress โดยการตั้งค่าสิทธิของไดเรกทอรีและไฟล์มากขึ้นเพราะมีข่าวที่เว็บไซต์มีช่องโหว่แล้วถูกฝังโค้ด
เช่น แต่เดิมเราติดตั้ง wordpress ไว้ในไดเรกทอรี /var/www/wordpress แล้วเพื่อให้ทำงานติดตั้ง plugins เพิ่ม ปรับแต่งหน้าเว็บด้วย themes ใหม่ๆ หรือการอัปโหลดรูปภาพและสื่อ รวมทั้งการ upgrade เวอร์ชั่นของ wordpress ทำได้สะดวกง่ายๆ ด้วยการกำหนดสิทธิอย่างง่ายคือ
sudo chown -R www-data.www-data /var/www/wordpress
ก็ใช้งานได้แล้ว แต่ดูเหมือนว่าสักวันหนึ่งเราอาจจะเป็นเหยื่อได้ ผมได้คุยกับน้องใหญ่ แล้วก็ลงความเห็นกันว่า เราควรตั้งค่า file owner และ file permission ให้มันเข้มขึ้นแต่ยังสะดวกในการทำงานติดตั้งอะไรๆได้ด้วย ก็เป็นที่มาของคำสั่งข้างล่างนี้
อันดับแรกก็จะต้องกำหนด file owner กันก่อน ถ้า ubuntu server ของเรา ใช้ username คือ mama และมี group ชื่อ adm ซึ่งเป็นชื่อ group ที่มีสิทธิทำอะไรได้มากกว่า user ธรรมดา ก็ใช้ mama:adm นี้ได้ หรือจะใช้ mama:mama ก็ได้ครับ (ที่เป็น adm ก็เผื่อไว้ว่าวันหนึ่งเราอาจจะเพิ่ม username สักคนเข้าใน groupname adm นี้ก็เท่านั้นเอง) ดังนี้
sudo chown -R mama:adm /var/www/wordpress
sudo chown -R mama:adm /var/www/wordpress/wp-content/
ถัดมาก็กำหนด file owner ที่ให้สิทธิ apache web server ซึ่งใช้ username คือ www-data และ groupname คือ www-data เพียงแค่ไดเรกทอรีที่จำเป็น ดังนี้
sudo chown -R mama:www-data /var/www/wordpress/wp-content/plugins
sudo chown -R mama:www-data /var/www/wordpress/wp-content/themes
sudo chown -R mama:www-data /var/www/wordpress/wp-content/upgrade
sudo chown -R mama:www-data /var/www/wordpress/wp-content/uploads
ถัดไปก็กำหนด file permission ให้กับไดเรกทอรีเหล่านี้ด้วย (ผมเพิ่ม -R ลงไปในคำสั่งด้านล่างนี้ด้วยแล้ว) ดังนี้
chmod -R 775 /var/www/wordpress/wp-content/plugins
chmod -R 775 /var/www/wordpress/wp-content/themes
chmod -R 775 /var/www/wordpress/wp-content/upgrade
chmod -R 775 /var/www/wordpress/wp-content/uploads
สุดท้าย เราต้องแก้ไขไฟล์ชื่อ wp-config.php ด้วยนะ เหตุผลตรงนี้คือ เราไม่ต้องการติดตั้งแบบที่มันจะถาม ftp user แต่ต้องการให้ติดตั้งได้อัตโนมัติ ให้แก้ไขดังนี้
sudo vi /var/www/wordpress/wp-config.php
โดยให้แทรกบรรทัด
define('FS_METHOD', 'direct');
ไว้ก่อนบรรทัดนี้ อยู่ประมาณ 10 บรรทัดนับจากท้ายไฟล์ครับ
/* That’s all, stop editing! Happy blogging. */
ผมคิดว่าหากเป็น CMS ตัวอื่นๆ ก็คงใช้แนวทางเดียวกันนี้ได้
ขอจบเพียงเท่านี้ และขอขอบคุณข้อมูลจากคุณเกรียงไกร หนูทองคำ ครับ