[WordPress] วิธีแก้ปัญหา Update ไม่ได้สักทีเพราะ Permission inconsistent / denied ด้วย SSH

นับว่าเป็นปัญหาโลกแตกกับการอัพเดท WordPress ไม่ติดซะที มันชอบฟ้องว่า Copy File ไม่ได้เพราะ update_core.php ติด Permission inconsistent อะไรแบบนี้

วิธีแก้ปัญหาจริง ๆ ไม่ใช่การไป CHMOD 777 ทั้งเว็บ อันตรายเกินไป ไม่ควรทำด้วยประการทั้งปวง (แถมบางทีทำแล้วไม่หายอีก)

สาเหตุจริง ๆ ของปัญหานี้

เพราะ Owner ของโฟลเดอร์อาจจะเป็นคนละอันกับ User FTP ที่เราใช้ เช่น บางทีตอนลง WordPress เราอาจจะลงออโต้ (อาจจะใช้ตัว Installer ที่เป็น Script PHP หรือ Script ใน Control Panel) ทำให้ Owner ของโฟลเดอร์เป็น root / root

วิธีแก้ก็ง่าย ๆ คือ เปลี่ยน Owner ของ Folder ให้เป็น user / user เดียวกับโฟลเดอร์ public_html ซะ (@jirayu บอกมา)

ก่อนอื่นเช็คก่อนว่ามันคือปัญหานี้มั้ย โดยเข้าไป public_html แล้วลองพิมพ์

ls -la

จะเจออะไรแบบนี้ สังเกตว่าตอนนี้ทุกอันเป็น root / root หมดเลย

rootroot

เราต้องเปลี่ยน root / root เป็น user / user อื่น เช่น admin / admin (ให้ไป ls -la ดูว่าเจ้าของ public_html คือใคร) โดย SSH เข้าไปหาโฟลเดอร์ public_html ของเรา แล้วออกมาข้างนอก public_html 1 ระดับจากนั้นสั่ง

chown -r admin:admin public_html

ที่ต้องใส่ -r เพื่อให้มัน recursive (เปลี่ยน Owner ของ Folder และไฟล์ที่ซ้อนอยู่ข้างในไปเรื่อย ๆ ด้วย)

พอรันเสร็จ เข้าไปเช็คอีกทีด้วยวิธีเดิม จะพบว่ามันเปลี่ยนแล้ว

adminadmin

เท่านี้ก็เรียบร้อย สามารถอัพเดท WordPress ได้ไม่มีปัญหาแล้ว

Leave a Reply

Your email address will not be published. Required fields are marked *