温馨提示×

ubuntu php日志权限如何设

小樊
44
2026-09-27 16:14:18
栏目: 编程语言

在 Ubuntu 上设置 PHP 日志权限,通常涉及 日志文件位置、所属用户、目录权限、PHP 配置 等方面。下面按常见场景给你一个清晰、可操作的说明。


一、先确认 PHP 日志在哪里

1. 查看 php.ini 中的日志配置

php --ini

常见配置项:

error_log = /var/log/php/php_errors.log
log_errors = On

如果是 PHP-FPM:

/etc/php/8.x/fpm/php.ini
/etc/php/8.x/fpm/pool.d/www.conf

二、常见 PHP 运行用户

环境 用户
Apache (mod_php) www-data
PHP-FPM www-data
CLI 当前登录用户

查看:

ps aux | grep php-fpm

三、创建并正确设置日志目录(推荐方式)

1. 创建日志目录

sudo mkdir -p /var/log/php

2. 设置目录权限

sudo chown -R www-data:www-data /var/log/php
sudo chmod 0755 /var/log/php

3. 创建日志文件

sudo touch /var/log/php/php_errors.log
sudo chown www-data:www-data /var/log/php/php_errors.log
sudo chmod 0644 /var/log/php/php_errors.log

四、php.ini 示例配置

log_errors = On
error_log = /var/log/php/php_errors.log

修改后重启服务:

# PHP-FPM
sudo systemctl restart php8.2-fpm

# Apache
sudo systemctl restart apache2

五、如果你用的是 Nginx + PHP-FPM

确保:

  • fastcgi 不拦截 stderr
  • catch_workers_output = yes(可选)
; www.conf
catch_workers_output = yes

六、常见错误 & 解决

❌ 日志写不进去

tail -f /var/log/php/php_errors.log
# Permission denied

✅ 解决:

sudo chown www-data:www-data /var/log/php/php_errors.log

❌ 目录权限太开放(安全风险)

chmod 0777 /var/log/php

❌ 不推荐

✅ 推荐:

chmod 0755 /var/log/php

七、日志轮转(可选但推荐)

sudo nano /etc/logrotate.d/php

示例:

/var/log/php/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0644 www-data www-data
}

八、快速检查清单 ✅

  • [ ] 日志目录存在
  • [ ] 属主是 www-data
  • [ ] php.ini 指向正确路径
  • [ ] 服务已重启
  • [ ] 测试写入错误日志
<?php
trigger_error("test log", E_USER_NOTICE);

如果你能告诉我:

  • Ubuntu 版本
  • PHP 版本
  • Apache / Nginx / CLI
  • 日志路径

我可以给你 完全针对性的配置命令。

0 踩