Your cart is currently empty!
[WordPress] วิธีแก้ปัญหา Unable to create directory. Is its parent directory writable by the server?
ล่าสุดเพิ่งเจอปัญหามาครับ เวลาอัพโหลดรูปใน Media Library หรือ Featured Image ของ WordPress จะเจอ Error แบบนี้
Unable to create directory wp-content/uploads/2015/02. Is its parent directory writable by the server?
เลยไปหาวิธีแก้ในอินเตอร์เน็ตมา หานานมากกว่าจะเจอ เลยเอามาแชร์กันครับ
1. CHMOD โฟลเดอร์ wp-content กับ /wp-content/uploads เป็น 755
วิธีแก้ปัญหาขั้นต้นครับ เพราะโฟลเดอร์เราอาจจะเป็น Permission ที่ไม่สามารถอัพโหลดรูปได้อยู่ (เช่น 644) ให้ใช้โปรแกรม FTP เข้าไป CHMOD เป็น 755 ครับ
หรือถ้าเซิร์ฟเวอร์ใครใช้ SSH ก็รันคำสั่งนี้ครับ:
sudo chmod 755 wp-content
หรือรันคำสั่งนี้เพื่อให้แก้ทุกไฟล์ และทุกโฟลเดอร์ข้างใน wp-content เป็น 755 ทั้งหมด (รันแบบ Recursive)
sudo chmod -R 755 wp-content
ป.ล. บางที่แนะนำให้เปลี่ยนเป็น 777 เลย ผมไม่แนะนำให้รัน 777 ทั้งหมดในโฮสต์จริงครับ เพราะจะกลายเป็นช่องโหว่โดนแฮคได้ง่าย ๆ แต่ถ้าเป็น localhost (ทำเว็บในเครื่องตัวเอง) ทำได้ไม่มีปัญหาครับ
2. เช็ค URL โฟลเดอร์ Media ใน Setting > Media
อันนี้เพิ่งเจอมาสด ๆ ร้อน ๆ เลยครับ
เนื่องจากผมเพิ่งย้ายจาก MAMP มาใช้ MAMP PRO และเพิ่งเอาเว็บ WordPress มาเล่นใน MAMP PRO ครั้งแรก แล้วเว็บดันมาเจอปัญหานี้ เลยนึกว่า MAMP PRO ต้องเซ็ต Permission อะไรหรือเปล่า เลยทำให้ Media Upload พัง
แต่จริง ๆ เพราะผมไปติดตั้ง WordPress ในโฮสต์ก่อนด้วย DirectAdmin ซึ่งที่โฮสต์มี Installatron ให้ (สคริปต์สำหรับติดตั้ง CMS ดัง ๆ อย่างรวดเร็ว พร้อมเซ็ต DB ให้เราด้วย สะดวกมาก ๆ)
ทีนี้ Installatron ดันไปตั้งโฟลเดอร์อัพโหลดใน Setting > Media เป็น Relative Path บนเซิร์ฟเวอร์ แบบยาว ๆ พอย้ายมาลง localhost ค่านี้ก็ติดมาด้วย เลยอัพโหลดรูปไม่ได้เลย
วิธีแก้คือแก้ค่าในช่อง Store uploads in this folder เป็น wp-content/uploads เท่านั้นเองครับ
3. เปลี่ยน Owner ของโฟลเดอร์ wp-content
ถ้า 2 วิธีข้างบนไม่ช่วย อาจจะลองดูวิธีนี้ ซึ่งเกิดจาก Owner ของโฟลเดอร์ WordPress ที่เราติดตั้งไว้ไม่มีสิทธิ์ในการอัพโหลดรูปครับ
แก้ไขได้โดยการ reset owner ของโฟลเดอร์ ถ้าใช้ Direct Admin ล็อกอินเข้าไปแล้วกด Files ที่เมนูบนสุด (ไอคอนรูปโฟลเดอร์) จากนั้นเลือกโฟลเดอร์ที่ต้องการ แล้วกดปุ่ม Reset Owner ด้านล่างครับ
ส่วนถ้าเป็น SSH ลองเช็ค Permission ของ /wp-content/uploads ดูครับ ถ้าเป็น root:root อยู่ ลองเปลี่ยนเป็น www-data:www-data ซึ่งผมรันโค้ดนี้ใน DigitalOcean
sudo chown -R www-data:www-data /var/www/html
ก็สามารถอัพโหลดรูปผ่านทันทีฮะ
ประมาณนี้ครับ โดยปกติจะเป็นปัญหาที่แก้ได้จากข้อ 1 แล้วครับผม ถ้าท่านใดเจอเคสแปลก ๆ เอามาแชร์กันได้ครับ 🙂
by
Tags:
Comments
One response to “[WordPress] วิธีแก้ปัญหา Unable to create directory. Is its parent directory writable by the server?”
ผมทำตามแล้วแต่มันเข้าว่า No such file or directory ทั้งๆที่สร้างโฟลเดอร์ uploads ไว้แล้ว
Leave a Reply