ปัญหาการอัพโหลดไฟล์ทับไม่ได้ หรือลบไฟล์ทิ้งก็ไม่ได้ (การตั้ง permission และ Reset Owner)

ลูกค้าหลายๆ ท่าน ที่ทำเว็บด้วย joomla, wordpress หรือ CMS ต่างๆ เวลาต้องการเปลี่ยน logo หรือรูปภาพที่ติดมากับ theme หรือ template เป็นรูปภาพ หรือ logo ของตนเอง หรือดาวน์โหลดไฟล์ต่างๆ ลงมาแก้ไขแล้วต้องการอัพโหลดขึ้นไปกะจะทับไฟล์เดิมที่อยู่บนโฮสติ้งกับทับไม่ได้

หากทำการอัพโหลดด้วย ftp เช่น FileZilla จะเห็นว่าโปรแกรมทำงานมีการแสดงว่า กำลังอัพโหลด และอัพโหลดเสร็จแล้ว ไม่ได้แสดง error ใดๆ แต่พอไปดูที่รูปหรือไฟล์บนเว็บไซต์กับไม่มีการเปลี่ยนแปลงใดๆ ปัญหานี้เกิดจาก เรื่อง permission และการ reset onwer ค่ะ

แต่หากเป็นการอัพโหลดผ่านหน้าเว็บไซต์  จะมีการฟ้อง error ทันที ดังนี้

1. Errors ที่เกิดจากการอัพโหลดไฟล์ขึ้นไปทับไม่ได้ หรือเขียนทับไฟล์ไม่ได้ อาจมีการฟ้อง error แตกต่างกัน แต่มีความหมายในทำนองเดียวกัน  เช่น

- Permission denied

- JFolder::create: Could not create directory Warning! Failed to move file

- The directory files is not writable

วิธีแก้: โปรดเข้า directadmin แล้วไปเปลียน permission (chmod) ของไฟล์ หรือ โฟลเดอร์ ให้เป็น 777 ก็จะสามารพอัพโหลดขึ้นไปทับได้ หรือเขียนทับได้นั้นเอง ****เมื่อทำเว็บเสร็จ โปรดเปลี่ยนกับไปเป็นค่าเดิม เพื่อความปลอดภัย ค่าเดิมของโฟลเดอร์คือ 755 ค่าเดิมของไฟล์คือ 644

2. Error ที่เกิดจากการลบไฟล์ไม่ได้ เช่น

Unable to delete /.....php: Write access to the directory containing /.....php is not allowed for the process's effective uid, or one of the directories in pathname did not allow search (execute) permission.

วิธีแก้:  โปรดเข้า Directadmin เพื่อดู permission ของไฟล์อาจเป็น 444 หรืออ่านได้อย่างเดียว ก็เปลียน permission ใหม่เป็น 644 เพื่อให้สามารถลบได้ค่ะ  หรือไฟล์อาจมี owner เป็น apache ก็ให้ติ๊ก สี่เหลี่ยมด้านหลัง ชื่อไฟล์ที่ต้องการลบ แล้วกด reset owner แล้วกด f5 เพื่อ refresh เมื่อเห็น owner กลับมาเป็นชื่อ user นั้นๆแล้ว ก็จะสามารถลบออกได้เลยค่ะ

3. Error ที่เกิดจากการลบโฟลเดอร์ไม่ได้ เช่น

Unable to delete directory /...: Write access to the directory containing pathname was not allowed for the process's effective uid, or one of the directories in pathname did not allow search (execute) permission.


วิธีแก้:  โปรดเข้า Directadmin เพื่อดู owner ของโฟลเดอร์ หากเป็น apache ก็ให้ติ๊ก Recursive 
แล้วกด f5 เพื่อ refresh เมื่อเห็น owner กลับมาเป็นชื่อ user แล้ว ก็จะสามารถลบออกได้ค่ะ