Ubuntu PHP日志配置文件路径
Ubuntu中PHP日志配置文件位置取决于运行模式,通过php--ini可定位。需配置php.ini的log_errors、error_log等参数,Nginx场景还需修改PHP-FPM日志。修改后重启服务,通过测试脚本验证日志生成。
Ubuntu系统中PHP日志配置文件的位置及配置方法

一、PHP主要配置文件(php.ini)的位置
在Ubuntu上,PHP的配置文件php.ini到底藏在哪里?这取决于PHP的运行模式——是命令行、Apache还是Nginx+PHP-FPM。想知道具体位置?直接运行下面这个命令,它能帮你快速定位:
php --ini
输出结果会明确告诉你当前模式下的php.ini路径。常见的情况如下:
- 命令行模式(CLI):路径通常是
/etc/php/{php_version}/cli/php.ini,比如/etc/php/8.1/cli/php.ini; - Apache模式:对应
/etc/php/{php_version}/apache2/php.ini; - Nginx+PHP-FPM模式:对应
/etc/php/{php_version}/fpm/php.ini。
注意,这里的{php_version}要替换成你实际安装的PHP版本,比如7.4、8.0、8.1等。
二、PHP错误日志配置(核心日志设置)
PHP错误日志的记录主要靠php.ini里的几个参数控制。需要修改对应模式的php.ini文件,关键点如下:
- 启用错误日志记录:把
log_errors前面的分号去掉,并设置为On,表示开启错误日志功能。 - 设置日志文件路径:修改
error_log参数为你想要的路径,比如/var/log/php_errors.log。记得确保PHP进程对这个目录有写入权限——可以通过sudo chown www-data:www-data /var/log/php_errors.log来设置,www-data是Apache或Nginx的默认用户。 - 设置错误报告级别:通过
error_reporting参数指定要记录的错误类型。生产环境推荐E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED(记录所有错误,但忽略提示性信息),开发环境则可以直接用E_ALL(记录所有错误)。 - 禁用浏览器显示错误:把
display_errors设置为Off,避免敏感信息泄露——生产环境必须关闭这项。
举个例子,在/etc/php/8.1/apache2/php.ini中,配置可以写成这样:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
三、PHP-FPM日志配置(Nginx场景)
如果你用的是Nginx搭配PHP-FPM,除了php.ini里的错误日志配置,还需要修改PHP-FPM的配置文件。这个文件通常位于/etc/php/{php_version}/fpm/php-fpm.conf或/etc/php/{php_version}/fpm/pool.d/www.conf。需要设置PHP-FPM自身的日志:
- 错误日志:去掉
error_log前的分号,并设置路径,比如/var/log/php-fpm/error.log。 - 访问日志:去掉
access.log前的分号,设置路径,比如/var/log/php-fpm/access.log,用于记录PHP-FPM处理的请求。
示例配置(/etc/php/8.1/fpm/pool.d/www.conf):
error_log = /var/log/php-fpm/error.log
access.log = /var/log/php-fpm/access.log
四、Web服务器访问日志配置(可选)
如果你需要记录PHP脚本的访问日志(不仅仅是错误日志),那就得动Web服务器的配置了:
- Apache:在
/etc/apache2/sites-a vailable/000-default.conf或对应的虚拟主机配置中,添加CustomLog指令,比如CustomLog ${APACHE_LOG_DIR}/access.log combined。这里的${APACHE_LOG_DIR}通常就是/var/log/apache2。 - Nginx:在
/etc/nginx/sites-a vailable/default或对应的服务器块配置中,添加access_log指令,比如access_log /var/log/nginx/access.log;。
五、使配置生效
修改完配置文件后,别忘重启对应的Web服务或PHP-FPM服务:
- Apache:
sudo systemctl restart apache2 - Nginx+PHP-FPM:
sudo systemctl restart nginx加上sudo systemctl restart php{php_version}-fpm(比如sudo systemctl restart php8.1-fpm)。
六、验证日志配置
配置是否生效?最简单的方法就是创建个测试脚本,比如info.php,内容为,然后访问一下。或者干脆在脚本里主动触发一个错误,比如trigger_error("Test error", E_USER_ERROR);。接着检查日志文件是否生成:
tail -f /var/log/php_errors.log # 查看PHP错误日志
tail -f /var/log/php-fpm/error.log # 查看PHP-FPM错误日志(Nginx场景)
tail -f /var/log/apache2/error.log # 查看Apache错误日志