在 Ubuntu 上设置 PHP 日志权限,通常取决于你用的 PHP 运行方式(PHP-FPM / Apache mod_php / CLI)以及日志写在哪里。下面按常见场景说明。
log_errors = On
error_log = /var/log/php/php-error.log
查看当前配置:
php -i | grep error_log
| 运行方式 | 用户 |
|---|---|
| PHP-FPM | www-data |
| Apache + mod_php | www-data |
| Nginx + PHP-FPM | www-data |
| CLI | 当前登录用户 |
sudo mkdir -p /var/log/php
sudo chown -R www-data:www-data /var/log/php
sudo chmod 755 /var/log/php
sudo touch /var/log/php/php-error.log
sudo chown www-data:www-data /var/log/php/php-error.log
sudo chmod 644 /var/log/php/php-error.log
✅ 这是最安全、最常见的做法
不同 pool 可能用不同用户,比如:
user = appuser
group = appuser
那日志目录要改成:
sudo chown -R appuser:appuser /var/log/php
如果是框架(Laravel 等):
sudo chown -R www-data:www-data storage/logs
sudo chmod -R 755 storage/logs
如果仍报错:
sudo chmod -R 775 storage/logs
Ubuntu 默认用 AppArmor,一般不影响 /var/log/php,除非你自定义路径。
sudo tail -f /var/log/php/php-error.log
ls -l /var/log/php
ps aux | grep php-fpm
sudo mkdir -p /var/log/php
sudo chown www-data:www-data /var/log/php
sudo chmod 755 /var/log/php
如果你愿意,可以告诉我:
我可以给你完全匹配你服务器的命令。