温馨提示×

centos php日志怎么权限

小樊
43
2026-10-11 23:01:14
栏目: 编程语言

在 CentOS 上,PHP 日志的权限问题通常分三种情况:
1)PHP 错误日志(php-fpm / cli)
2)Web 服务(Nginx / Apache)写入的日志
3)日志目录本身的权限和 SELinux

下面按常见场景说明。


一、PHP 错误日志(php.ini 中配置)

1. 查看 PHP 错误日志位置

php --ini

或

php -i | grep error_log

常见配置(php.ini):

log_errors = On
error_log = /var/log/php/php-error.log

2. 创建日志目录并设权限

mkdir -p /var/log/php

3. 设置属主(关键)

PHP 是以什么用户运行的,日志就要给该用户写权限

PHP-FPM(最常见)

查看运行用户:

grep -E "user|group" /etc/php-fpm.d/www.conf

通常是:

user = nginx
group = nginx

或

user = apache

授权:

chown -R nginx:nginx /var/log/php
chmod 750 /var/log/php
touch /var/log/php/php-error.log
chown nginx:nginx /var/log/php/php-error.log
chmod 640 /var/log/php/php-error.log

二、Nginx / Apache 场景

Nginx + php-fpm

  • Nginx 用户:nginx
  • PHP 用户:nginx(或 apache)

确保:

chown nginx:nginx /var/log/php/*.log

Apache + mod_php

chown apache:apache /var/log/php/*.log

三、SELinux(CentOS 必看)

即使权限对了,SELinux 也可能阻止写日志。

1. 查看是否被拒绝

ausearch -m avc -ts recent

2. 允许写日志目录

semanage fcontext -a -t httpd_log_t "/var/log/php(/.*)?"
restorecon -Rv /var/log/php

或临时测试(不推荐长期):

setenforce 0

四、CLI 模式 PHP 日志

如果是命令行 PHP:

php /script.php

运行用户是你当前用户(如 root 或 www)

日志权限:

chown 当前用户:当前用户 /var/log/php/php-cli.log

五、推荐的安全权限方案

对象 权限 属主
日志目录 750 php用户:php用户
日志文件 640 php用户:php用户
SELinux httpd_log_t ✅

六、快速排查命令

# 查看 php 运行用户
ps aux | grep php-fpm

# 测试写日志
sudo -u nginx touch /var/log/php/test.log

# 查看权限
ls -l /var/log/php

如果你能贴出:

  • CentOS 版本
  • PHP 运行方式(php-fpm / apache / cli)
  • 具体报错信息

我可以给你精确到命令的权限配置。

0 踩