在 Ubuntu 上定位 PHP 日志,通常分 PHP 本身错误日志 和 Web 服务器(Apache/Nginx)日志 两部分。下面按常见场景说明。
php -v
再看是:
php --ini
常见路径:
/etc/php/8.1/apache2/php.ini/etc/php/8.1/fpm/php.ini/etc/php/8.1/cli/php.ini查看日志配置:
grep -E "log_errors|error_log" /etc/php/*/*/php.ini
关键配置:
log_errors = On
error_log = /var/log/php/php_errors.log
如果没有 error_log,PHP 错误会写到:
tail -f /var/log/apache2/error.log
通常也在:
/var/log/apache2/error.log
tail -f /var/log/php8.1-fpm.log
或:
/var/log/php-fpm.log
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
CLI 一般 不写日志文件,直接输出到终端。
调试方法:
php -d log_errors=1 -d error_log=/tmp/php_cli.log your_script.php
tail -f /var/log/nginx/error.log
tail -f /var/log/php8.1-fpm.log
grep -i error /var/log/nginx/error.log
grep -i "php" /var/log/nginx/error.log
<?php
error_log("test php log");
✅ display_errors 只影响页面显示,不影响日志
✅ error_log 文件必须有写权限
✅ FPM 和 CLI 用的是 不同 php.ini
如果你愿意,可以告诉我:
我可以给你 精确的一条命令定位方式。