หลังจาก ติดตั้ง WordPress บน CentOS 6 เรียบร้อยแล้ว หากเจอปัญหาสามารถโพสต์ข้อความได้ แต่ไม่สามารถอัพโหลด (upload) ไฟล์ เช่นรูป ได้
ตัวอย่างข้อความ error เมื่อ upload file
“Picture-01.jpg” has failed to upload due to an error
Unable to create directory /var/www/html/wordpress/wp-content/uploads/2012/05. Is its parent directory writable by the server?
ในที่นี้จะแสดงวิธีการแก้ไขปัญหา
สาเหตเป็นเพราะ wordpress ไม่สามารถสร้างไฟล์หรือไดเร็คทอรี เพื่อเก็บไฟล์ที่อัพโหลดได้
โดยดีฟอลต์ wordpress จะสร้างไฟล์ที่อัพโหลดไว้ภายใต้ไดเร็คทอรี wp-content/uploads เทียบกับไดเร็คทอรีที่ติดตั้ง (เช่น /var/www/html/wordpress/) โดยจะแยกย่อยเป็นปี คศ. และเลขเดือนอีกที
วิธีการแก้ไขปัญหา ต้องสร้างไดเร็คทอรี uploads ขึ้นมา แล้วเปลี่ยนสิทธิ (permission) ให้ wordpress สามารถเขียนได้ หากใช้ Apache เป็นเว็บเซิร์ฟเวอร์รันด้วยชื่อผู้ใช้ apache การเปลี่ยนสิทธิก็คือการอนุญาตให้ apache สามารถเขียน (write) ไดเร็คทอรี uploads ได้นั่นเอง
โดยดีฟอลต์จากการติดตั้ง wordpress จะไม่มีไดเร็คทอรี uploads
[root@cent6 ~]# cd /var/www/html/wordpress/wp-content/ [root@cent6 wp-content]# ls -l total 12 -rw-r--r--. 1 root root 30 May 5 2007 index.php drwxr-xr-x. 3 root root 4096 Apr 20 21:54 plugins drwxr-xr-x. 4 root root 4096 Apr 20 21:54 themes
ใช้คำสั่ง mkdir, chown, chmod สร้างไดเร็คทอรี uploads และเปลี่ยนสิทธิ
[root@cent6 wp-content]# mkdir uploads [root@cent6 wp-content]# chown apache uploads/ [root@cent6 wp-content]# chmod 700 uploads/ [root@cent6 wp-content]# ls -l total 16 -rw-r--r--. 1 root root 30 May 5 2007 index.php drwxr-xr-x. 3 root root 4096 Apr 20 21:54 plugins drwxr-xr-x. 4 root root 4096 Apr 20 21:54 themes drwx------. 2 apache root 4096 May 12 16:58 uploads
ส่วนไดเร็คทอรีย่อย ปีคศ. และเลขเดือน โปรแกรม wordpress จะสร้างขึ้นมาเองอัตโนมัติ
ทดลองโพสต์แล้วอัพโหลดรูปอีกครั้ง
ลองดูไฟล์และไดเร็คทอรีที่ถูกสร้างใน uploads
[root@cent6 wp-content]# ls -lR uploads/ uploads/: total 4 drwx------. 3 apache apache 4096 May 12 17:02 2012 uploads/2012: total 4 drwx------. 2 apache apache 4096 May 12 17:02 05 uploads/2012/05: total 36 -rw-------. 1 apache apache 33625 May 12 17:02 Picture-01.jpg
หมายเหตุ ออปชั่น ‘-R’ ของคำสั่ง ls เป็นการแสดงข้อมูลไฟล์และไดเร็คทอรีย่อยทั้งหมด
รบกวนถามหน่อยครับ ,วิธีการสร้าง diretory ทำยังไงครับ , ขอบคุณครับ