在 CentOS 上设置 PHP 日志的权限,通常分为 确定日志文件位置 → 设置正确属主/属组 → 设置权限 → 确保 PHP 进程可写 这几个步骤。下面按常见场景说明。
php --ini
查看:
error_log = /var/log/php/php_error.log
; /etc/php-fpm.conf 或 /etc/php-fpm.d/www.conf
error_log = /var/log/php-fpm/error.log
access.log = /var/log/php-fpm/access.log
常见路径:
/var/www/html/storage/logs/
/var/www/html/runtime/log/
apache 或 nginxps aux | grep php-fpm
一般看到:
apache 或 nginx
mkdir -p /var/log/php
chown -R apache:apache /var/log/php
# 或
chown -R nginx:nginx /var/log/php
chmod 755 /var/log/php
chmod 644 /var/log/php/*.log
✅ 推荐权限:
750 或 755640 或 644如果权限对了但仍写不进日志:
getenforce
semanage fcontext -a -t httpd_log_t "/var/log/php(/.*)?"
restorecon -Rv /var/log/php
setenforce 0
chown -R nginx:nginx /var/www/html/storage
chmod -R 755 /var/www/html/storage
chmod -R 775 /var/www/html/storage/logs
❌ 日志文件属主是 root,PHP 用户无法写
❌ 目录没执行权限(+x)
❌ SELinux 阻止写日志
❌ php.ini 中 log_errors = Off
ls -ld /var/log/php
ls -l /var/log/php
ps aux | grep php-fpm
getenforce
如果你能告诉我:
我可以给你精确的一条条命令。