แก้ปัญหา WordPress อัพโหลดไฟล์ไม่ได้

หลังจาก ติดตั้ง 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 เป็นการแสดงข้อมูลไฟล์และไดเร็คทอรีย่อยทั้งหมด

 

ข้อมูลอ้างอิง

One thought on “แก้ปัญหา WordPress อัพโหลดไฟล์ไม่ได้”

  1. รบกวนถามหน่อยครับ ,วิธีการสร้าง diretory ทำยังไงครับ , ขอบคุณครับ

Leave a Reply

Your email address will not be published.