我在尝试着追踪脚本并发现我的问题来自 httpd。总结一下那篇文章,有些东西正在尝试连接到一个网站,但被服务器防火墙 [正确地] 阻止了。在我的测试脚本中,尝试连接到网站超时并在页面中生成 PHP 警告:
Warning: file_get_contents(http://foobar.com) [function.file-get-contents.html]: failed to open stream: Connection timed out in /home/foo/bar.php on line 3
该服务器使用 cPanel 运行,因此我使用 cPanel 配置编辑器将 error_log 设置为 /var/log/php-scripts.log,将 error_reporting 设置为 E_ALL。但是,我的测试用例发出的警告并未显示在 /var/log/php-scripts.log 中(尽管日志中有一些 PHP 启动警告)。
有人能告诉我为什么我的测试脚本中的警告没有被记录吗?我想如果我可以记录测试脚本中的超时警告,那么恶意脚本中的超时警告也会被记录,这样我就可以找到该脚本的隐藏位置。
谢谢!
答案1
确保php.ini
文件中已启用错误日志记录。应启用以下行:
error_log = /var/log/php-scripts.log
您也可以将其设置为
error_log = syslog
将所有错误记录到系统日志中。将这行添加到文件后php.ini
,重新启动 httpd,如下所示
$ sudo /etc/init.d/httpd restart
cPanel 可能没有正确执行此操作。