在 CentOS 上配置 PHP 相关权限,通常主要涉及 文件/目录权限、PHP-FPM 运行用户、SELinux 和 Web 服务器(Nginx/Apache) 的协调。下面按常见场景说明。
查看 PHP-FPM 配置:
vi /etc/php-fpm.d/www.conf
重点看:
user = apache
group = apache
; 或
user = nginx
group = nginx
✅ PHP 写文件时,使用的是这个用户
假设网站目录是:
/var/www/html
chown -R nginx:nginx /var/www/html
# 或
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
例如上传目录:
chmod -R 775 /var/www/html/uploads
chown -R nginx:nginx /var/www/html/uploads
❌ 不要直接 777
✅ 推荐:
chown -R php用户:web用户 /path
chmod 775 /path
例如 PHP-FPM 是 apache,Web 是 nginx:
chown -R apache:nginx /var/www/html
chmod 775 /var/www/html
getenforce
如果是 Enforcing,PHP 写文件可能失败。
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html
setsebool -P httpd_unified 1
Permission denied
检查顺序:
x 权限open_basediruseradd -r -s /sbin/nologin phpuser
chown -R phpuser:nginx /var/www/html
chmod 755 /var/www/html
chmod 775 /var/www/html/storage
www.conf:
user = phpuser
group = phpuser
如果你能告诉我:
我可以直接给你一套可复制的命令。