Khắc phục lỗi Permission Denied
Triệu chứng phổ biến:
fopen(/path/to/file): Failed to open stream: Permission denied
Build phase ARCHIVE fail với lỗi này nghĩa là user của web server không đọc hoặc ghi được file/folder nào đó.
Hiểu về permission
Trên Linux/Unix, mỗi file có:
- Owner: user sở hữu file
- Group: group sở hữu file
- Mode: quyền đọc/ghi/thực thi cho owner, group và others (vd
644,755)
Web server (Apache/Nginx + PHP) chạy dưới một user nhất định, thường là www-data, apache, nobody, hoặc nginx. User này phải có quyền đọc file plugin và ghi vào folder backup.
Fix 1: Folder backup không writable
Folder wp-content/backups-slm/ cần có quyền ghi.
Trên shared hosting (cPanel): dùng File Manager → chuột phải folder → Change Permissions → đặt 755.
Trên VPS:
chmod 755 wp-content/backups-slm/
chown -R [web-user]:[web-group] wp-content/backups-slm/
Fix 2: File plugin owner sai
Khi upload file qua FTP/SFTP với user khác (không phải web server user), file mới upload có owner khác → web server không đọc được.
Fix: Đổi owner toàn bộ thư mục plugin về user web server. Nếu không có SSH, liên hệ hosting hoặc upload lại qua công cụ của hosting (cPanel File Manager thường tạo file đúng owner).
Fix 3: Mode quá hạn chế
File mode 600 hoặc 640 chỉ owner đọc được. Nếu web server không phải owner → fail.
Fix: Đặt:
- File:
644 - Folder:
755
Một số folder cần ghi (như uploads/, backups-slm/): 755 là đủ với owner đúng. Tránh đặt 777 — kém bảo mật.
Fix 4: SELinux / AppArmor
Trên hệ thống có SELinux (CentOS/RHEL) hoặc AppArmor (Ubuntu) bật chế độ enforce, web server có thể bị deny ngay cả khi mode/owner đúng.
Fix: Liên hệ admin server hoặc kiểm tra log SELinux (/var/log/audit/audit.log) để xem rule nào đang block.
Fix 5: Plugin file bị edit local
Khi anh edit code plugin qua editor cục bộ (VSCode, …), file mới tạo có owner là user editor → web server có thể không đọc được. Khi build phase ARCHIVE đóng gói plugin vào trong archive, sẽ fail ở file đó.
Fix: Đảm bảo mọi file trong folder plugin đều có owner đúng user web server. Hoặc đặt group cho phép web server đọc, và chmod 664 (group write).