温馨提示×

centos php日志如何权限设

小樊
37
2026-09-12 00:45:15
栏目: 编程语言

在 CentOS 上设置 PHP 日志的权限,通常分为 确定日志文件位置 → 设置正确属主/属组 → 设置权限 → 确保 PHP 进程可写 这几个步骤。下面按常见场景说明。


一、先确认 PHP 日志在哪里

1. PHP 错误日志(php.ini)

php --ini

查看:

error_log = /var/log/php/php_error.log

2. PHP-FPM 日志

; /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

3. 网站自身日志(如 Laravel、ThinkPHP)

常见路径:

/var/www/html/storage/logs/
/var/www/html/runtime/log/

二、设置日志目录和文件权限(推荐做法)

示例:PHP-FPM 运行用户是 apachenginx

ps 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

推荐权限

  • 目录:750755
  • 文件:640644

三、SELinux 场景(CentOS 常见坑)

如果权限对了但仍写不进日志:

1. 查看 SELinux 状态

getenforce

2. 修改 SELinux 上下文

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

3. 临时测试(不推荐长期)

setenforce 0

四、网站日志目录权限(如 Laravel)

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.inilog_errors = Off


六、快速检查清单

ls -ld /var/log/php
ls -l /var/log/php
ps aux | grep php-fpm
getenforce

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • PHP 运行方式(php-fpm / cli / apache mod_php)
  • 具体日志路径

我可以给你精确的一条条命令

0