Hệ thống mình đang dùng là VPS, Apache, Vestacp chạy Centos 7.
Dạo quanh phố phường thì để giải quyết, cần lưu ý là hệ thống quản lý SELinux trên Centos/Redhat làm việc hết sức chặt chẽ. Vậy, phải thiết lập để người dùng hiện tại được quyền xử lý và sau đó thiết lập cho thư mục cụ thể.
Dưới đây là hướng dẫn mình tìm được, chỉ cần chạy hai dòng lệnh cuối cùng là xong.
- Ownership sudo chown apache: apache -R /data/www/html/sites/mysite cd /data/www/html/sites/mysite
- # File permissions, recursive find . -type f -exec chmod 0644 {} \;
- # Dir permissions, recursive find . -type d -exec chmod 0755 {} \;
- # SELinux serve files off Apache, resursive sudo chcon -t httpd_sys_content_t /data/www/html/sites/mysite -R
- # Allow write only to specific dirs
sudo chcon -t httpd_sys_rw_content_t /data/www/html/sites/mysite/uploads -R
Noted: httpd_sys_content_t – for allowing Apache to serve these contents
httpd_sys_rw_content_t – for allowing Apache to write to those path.
Nguồn: https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/
Tham khảo thêm: https://stackoverflow.com/questions/5246114/php-mkdir-permission-denied-problem/21685655#21685655