วิธีเช็คว่าเว็บเซิร์ฟเวอร์ของคุณใช้ user อะไร
ให้รันคำสั่งนี้:
ps aux | grep httpd
จะได้ผลลัพธ์ประมาณนี้:
apache 1234 0.0 ... /usr/sbin/httpd
หรือถ้าใช้ Nginx:
ps aux | grep nginx
ตัวอย่างคำสั่งที่ถูกต้อง:
ถ้าเป็น Apache (บน CentOS/RHEL):
โดยทั่วไปจะใช้ user: apache
chown -R apache:apache wp-content
ถ้าเป็น Nginx (บน CentOS/RHEL):
chown -R nginx:nginx wp-content
***วิธีแก้ไข***
1. เปลี่ยนเจ้าของไฟล์ให้ถูกต้อง
ในโฟลเดอร์ WordPress หลัก (เช่น /var/www/html/blog
):
cd /var/www/html/blog
chown -R apache:apache .
จุด .
ด้านหลังคือให้เปลี่ยนทุกไฟล์ในโฟลเดอร์ปัจจุบัน
2. ตั้งสิทธิ์ให้กับไฟล์และโฟลเดอร์
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
คำสั่งนี้จะ:
- ตั้ง
755
ให้โฟลเดอร์ทั้งหมด (สามารถเข้าและเขียนได้โดย Apache) - ตั้ง
644
ให้ไฟล์ทั้งหมด (อ่านได้ทุกคน แต่เขียนได้เฉพาะเจ้าของ)
3. ลองอัปเดต WordPress อีกครั้ง
กลับไปที่ WordPress Dashboard → แดชบอร์ด > อัปเดต
แล้วคลิกอัปเดตใหม่อีกครั้ง
สรุป:
รันคำสั่งนี้ทีละบรรทัด:
cd /var/www/html/blog
chown -R apache:apache .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;