VPS服务器PHP error_log未生成问题求助
解决VPS上PHP错误日志不生成的问题
1. 定位真正生效的PHP配置文件
- 打开网页端的phpinfo页面,找到
Loaded Configuration File项,这才是当前Web环境实际加载的php.ini路径,不要修改其他无关的php.ini文件。 - 若用命令行排查CLI模式配置,可执行
php --ini,但Web环境的配置以phpinfo显示的结果为准。
2. 检查是否存在配置覆盖
- 查看phpinfo里的
Additional .ini files parsed项,这些额外加载的ini文件可能覆盖全局php.ini的设置,检查其中是否有error_log的自定义配置。 - 若使用Apache,检查网站根目录的
.htaccess文件,是否存在php_value error_log "/path/to/other/log"这类配置;若使用Nginx,查看虚拟主机配置中的fastcgi_param,是否有fastcgi_param PHP_VALUE "error_log=/xxx/xxx.log"的设置,这类配置优先级高于php.ini。 - PHP-FPM的池配置文件(如
/etc/php/7.4/fpm/pool.d/xxx.conf)中,也可能存在php_admin_value[error_log]的设置,同样会覆盖全局配置。
3. 确保日志目录/文件权限正确
根据phpinfo显示的路径/home/durweb/logs/dur-web_com.php.error.log,执行以下操作:
- 先确认日志目录存在:
mkdir -p /home/durweb/logs/ - 给PHP运行用户(通常为
www-data、apache、nginx或网站用户durweb)设置读写权限:touch /home/durweb/logs/dur-web_com.php.error.log # 假设PHP运行用户为www-data,根据实际情况修改 chown www-data:www-data /home/durweb/logs/ /home/durweb/logs/dur-web_com.php.error.log chmod 755 /home/durweb/logs/ chmod 644 /home/durweb/logs/dur-web_com.php.error.log
4. 重启相关服务
修改配置或权限后,必须重启服务才能生效:
- Apache环境:
systemctl restart apache2 - Nginx+PHP-FPM环境:
systemctl restart nginx systemctl restart php-fpm # 或对应版本如php7.4-fpm、php8.1-fpm
5. 测试错误日志生成
创建测试文件test_error.php,内容如下:
<?php // 故意触发未定义变量错误 echo $undefined_var; ?>
访问该文件后,查看/home/durweb/logs/dur-web_com.php.error.log,应该能看到对应的错误日志内容。
内容的提问来源于stack exchange,提问作者gfneo
相关产品推荐
相关产品推荐

