在 CentOS 上,PHP 日志(通常是 PHP-FPM 错误日志 或 PHP error_log)权限设置的关键点是:运行 PHP 的用户必须能写日志文件,同时不要给过大权限。
下面按常见场景说明。
查看 PHP-FPM 配置:
ps -ef | grep php-fpm
通常用户是:
apache(CentOS 默认)nginxphp-fpm 用户配置文件位置:
/etc/php-fpm.d/www.conf
关注两行:
user = apache
group = apache
例如:
/var/log/php-fpm/
创建目录:
mkdir -p /var/log/php-fpm
chown -R apache:apache /var/log/php-fpm
chmod 750 /var/log/php-fpm
touch /var/log/php-fpm/php-fpm.log
chown apache:apache /var/log/php-fpm/php-fpm.log
chmod 640 /var/log/php-fpm/php-fpm.log
如果 php.ini 中设置了:
log_errors = On
error_log = /var/log/php/php-error.log
操作:
mkdir -p /var/log/php
touch /var/log/php/php-error.log
chown apache:apache /var/log/php/php-error.log
chmod 640 /var/log/php/php-error.log
如果权限对了但仍写不进日志:
getenforce
如果是 Enforcing:
semanage fcontext -a -t httpd_log_t "/var/log/php(/.*)?"
restorecon -Rv /var/log/php
或临时测试:
setenforce 0
❌ 不要这样:
chmod 777 /var/log/php
❌ 不要用 root 运行 PHP-FPM
php-fpm / httpd / nginx 已重启如果你愿意,可以告诉我:
我可以给你精确到命令的配置方案。