我正在尝试在PHP 5.3中使用NuSoap。当我在Eclipse中调试我的脚本时,我得到了很多不推荐的警告,但脚本仍在运行,但是当我在本地主机上通过Apache调用脚本时,脚本终止而没有任何解释。我还不是一个真正的网络用户,并且在这方面有点像菜鸟,我不知道为什么它会在调试时在同一台机器上运行,但不是通过Apache。导致脚本在Eclipse中运行的可能原因是什么,但是当我从浏览器调用它时不会运行。此外,当脚本在调试器外部失败时,它是否会在某处吐出某种日志或调试数据,如果是这样,我怎么能找到它?
答案 0 :(得分:0)
这可能会导致致命的错误,但是你的生产服务器上已经关闭了display_errors(就像你应该的那样),所以它不会像你的开发版本那样在html中输出错误。检查您的php.ini以获取错误日志的位置,或让您的服务器管理员指出您正确的方向。您需要具有对服务器的文件级访问权限,或者需要为您显示它的控制面板。
或者,您可以在.htaccess文件中打开display_errors,仅对该应用程序本地。
php_flag display_startup_errors on
php_flag display_errors on
或者,如果显示错误不是一个选项,并且您无法访问日志文件,则可以将错误日志设置为自定义位置,只要它可以由apache写入:
php_flag log_errors on
php_value error_log /absole/path/to/a/writable/directory/php_errors.log
答案 1 :(得分:0)
PHP有几个指令定义错误报告的行为。最重要的是:
第一个设置错误报告的严重性:您可以告诉PHP警告每个可能的问题,仅警告致命错误等。第二个指示PHP在屏幕上显示错误消息。此选项不是硬编码的:它们可以在运行时设置。
另见log_errors。
关于如何更改这些选项,如果您可以访问主php.ini文件,则可以随时为整个系统更改它们。它也可以在每个站点的基础上更改它们,但确切的机制取决于PHP如何与Web服务器交互。如果它作为Apache模块运行(常见设置),则可以使用.htaccess
文件。
您可以在此处找到大量信息:http://www.php.net/manual/en/configuration.php