在 CentOS 上设置 PHP 日志权限,核心在于 日志文件归谁所有、PHP 进程以什么用户运行、以及目录权限是否允许写入。下面按常见场景说明。
php -v
或看 Web 服务:
Apache + mod_php
ps aux | grep httpd
用户通常是:apache
PHP-FPM(Nginx / Apache)
ps aux | grep php-fpm
用户通常是:nginx 或 www-data 或 php-fpm
查看 PHP-FPM 用户:
grep -R "user" /etc/php-fpm.d/www.conf
log_errors = On
error_log = /var/log/php/php-error.log
mkdir -p /var/log/php
chown -R apache:apache /var/log/php # Apache
# 或
chown -R nginx:nginx /var/log/php # PHP-FPM + Nginx
chmod 0755 /var/log/php
touch /var/log/php/php-error.log
chmod 0644 /var/log/php/php-error.log
✅ 644 + 正确属主 是最安全常用的方式
CentOS 默认开启 SELinux,即使权限对也可能写不进日志。
grep php /var/log/audit/audit.log
semanage fcontext -a -t httpd_log_t "/var/log/php(/.*)?"
restorecon -Rv /var/log/php
setenforce 0
如果是应用写日志(非 PHP 错误日志):
chown -R nginx:nginx /var/www/html/storage/logs
chmod -R 0755 /var/www/html/storage/logs
| 项目 | 建议 |
|---|---|
| 日志目录 | /var/log/php |
| 属主 | Web 服务用户 |
| 目录权限 | 755 |
| 文件权限 | 644 |
| SELinux | 必须配置上下文 |
如果你能告诉我:
我可以给你精确到命令的配置方案。