Joomla แจ้งว่าโฟลเดอร์ปลายทางเขียนไม่ได้ แก้ Permission ตรงไหน?

เมื่อ Joomla แจ้งว่าโฟลเดอร์ปลายทางเขียนไม่ได้ มักหมายถึงระบบ PHP ที่รันเว็บไซต์ไม่มีสิทธิ์บันทึกไฟล์ลงในโฟลเดอร์นั้น สาเหตุอาจเป็น Permission ไม่เหมาะสม เจ้าของไฟล์ไม่ตรงกับผู้ใช้เว็บเซิร์ฟเวอร์ หรือกำหนด path ของโฟลเดอร์ชั่วคราวผิด

ให้ตรวจชื่อโฟลเดอร์ในข้อความผิดพลาดก่อน แล้วปรับเฉพาะจุดที่เกี่ยวข้อง ไม่ควรเปลี่ยน Permission ทั้งเว็บไซต์เป็น 777

❶ ตรวจว่าโฟลเดอร์ใดเขียนไม่ได้

อ่านข้อความผิดพลาดให้ครบ แล้วจด path ที่ระบบระบุ เช่น โฟลเดอร์ tmp, images หรือโฟลเดอร์ส่วนเสริม หากยังเข้าแอดมินได้ ให้เปิดหน้า System Information → Folder Permissions เพื่อตรวจโฟลเดอร์ที่ Joomla รายงานว่า Writable หรือ Unwritable โดยชื่อเมนูอาจต่างกันตามเวอร์ชัน

หากปัญหาเกิดตอนติดตั้งส่วนเสริม ให้ตรวจทั้งโฟลเดอร์ชั่วคราวและโฟลเดอร์ปลายทางที่ใช้ติดตั้ง เช่น components, modules หรือ plugins ตรวจเฉพาะโฟลเดอร์ที่เกี่ยวข้องกับข้อผิดพลาด

❷ ตรวจ Permission และเจ้าของไฟล์

บนเซิร์ฟเวอร์ Linux ค่าเริ่มต้นที่ใช้กันทั่วไปคือโฟลเดอร์ 755 และไฟล์ 644 แต่ Permission เพียงอย่างเดียวอาจไม่พอ หาก PHP ทำงานด้วยผู้ใช้คนละรายกับเจ้าของไฟล์ Joomla ก็ยังเขียนไฟล์ไม่ได้

① เปิด File Manager หรือโปรแกรม FTP แล้วตรวจ Permission ของโฟลเดอร์ที่ระบุ

② ตรวจว่าเจ้าของไฟล์และโฟลเดอร์ตรงกับบัญชีที่โฮสติ้งกำหนดหรือไม่

③ หากไม่แน่ใจเรื่องเจ้าของไฟล์ ให้ผู้ให้บริการโฮสติ้งตรวจและแก้ให้ตรงกับระบบของเซิร์ฟเวอร์

อย่าตั้ง 777 ทั้งเว็บไซต์ เพราะเปิดให้ทุกคนอ่าน เขียน และเข้าถึงไฟล์ได้ และไม่ใช่วิธีแก้ที่เหมาะกับทุกโฮสติ้ง

❸ ตรวจ path ของโฟลเดอร์ชั่วคราว

หาก Error เกิดระหว่างติดตั้งส่วนเสริมหรืออัปโหลดไฟล์ ให้ตรวจค่า tmp_path ใน configuration.php ว่าชี้ไปยังโฟลเดอร์ที่มีอยู่จริงและ Joomla เขียนไฟล์ได้

หากเพิ่งย้ายเว็บไซต์หรือเปลี่ยนโฮสติ้ง path เดิมอาจไม่ตรงกับตำแหน่งปัจจุบัน ให้ดู path ที่ถูกต้องจากแผงควบคุมหรือสอบถามโฮสติ้งก่อนแก้ อย่าใส่ path โดยเดา เพราะอาจทำให้การติดตั้งส่วนเสริมและการจัดการไฟล์อื่นมีปัญหาต่อ

❹ ปรับสิทธิ์เฉพาะโฟลเดอร์ที่จำเป็น

หากยืนยันว่า Permission เป็นสาเหตุ ให้ปรับเฉพาะโฟลเดอร์ที่ข้อความผิดพลาดระบุ โดยใช้ File Manager หรือ FTP ตามคำแนะนำของโฮสติ้ง

  • โฟลเดอร์ทั่วไปมักตั้งต้นที่ 755
  • ไฟล์ทั่วไปมักตั้งต้นที่ 644
  • เฉพาะโฟลเดอร์ที่ Joomla ต้องเขียนลงไป อาจต้องให้สิทธิ์เขียนแก่ผู้ใช้ที่รัน PHP ตามการตั้งค่าของเซิร์ฟเวอร์

หลังปรับ ให้กลับไปตรวจหน้า Folder Permissions และลองทำรายการเดิมอีกครั้ง หากยังขึ้น Unwritable ให้หยุดปรับค่าเพิ่มและให้โฮสติ้งตรวจเจ้าของไฟล์หรือการตั้งค่า PHP

❺ ระวังการเปลี่ยน Permission แบบครอบคลุม

อย่าใช้คำสั่งเปลี่ยน Permission แบบ recursive กับทั้งเว็บไซต์ หากไม่ทราบผล เพราะอาจทำให้ไฟล์ระบบและโฟลเดอร์สำคัญถูกเปิดสิทธิ์เกินจำเป็น หรือกลับไปเขียนไฟล์ไม่ได้

หลังติดตั้งส่วนเสริมเสร็จ ให้ตรวจว่ามีไฟล์ชั่วคราวหรือแพ็กเกจติดตั้งค้างอยู่หรือไม่ และลบเฉพาะไฟล์ที่ยืนยันแล้วว่าไม่ต้องใช้ ทีมดูแลเว็บไซต์ เช่น ComSiam ควรบันทึก path และค่าที่เปลี่ยนไว้ เพื่อย้อนกลับและตรวจสอบภายหลังได้

สรุป

เมื่อ Joomla แจ้งว่าโฟลเดอร์ปลายทางเขียนไม่ได้ ให้ตรวจ path และสถานะ Folder Permissions ก่อน จากนั้นตรวจ Permission, เจ้าของไฟล์ และค่า tmp_path ปรับเฉพาะโฟลเดอร์ที่จำเป็น และให้โฮสติ้งช่วยตรวจหากสิทธิ์ยังไม่ถูกต้อง หลีกเลี่ยงการใช้ 777 หรือเปลี่ยน Permission ทั้งเว็บไซต์