3

作为我的 PHP 学习过程的一部分,我正在使用共享托管服务使用 PHP 博客应用程序。服务提供商有一个典型的具有远程 ssh 访问的 LAMP 环境。

Vim 一直是我探索 PHP 代码的最佳朋友。但是,我发现有时在出现错误时很难跟踪代码中的内容。例如,有时我访问一个页面,我得到一个空白响应,没有任何错误消息。我应该如何调试这个?有什么有用的工具吗?

我的经验主要是在 C/C++、Perl 和一些 CGI 编程方面。所以 PHP 对我来说是一次非常令人耳目一新的体验 :-)

万一这很重要,我正在玩的应用程序是Lyceum,我对 LAMP 环境本身没有太多选择。

编辑:首选免费软件工具:-)

4

5 回答 5

4

我假设您的托管服务提供商配置了他们的 PHP 安装并关闭了display_errors,这是一件好事。这就是您看到空白页的原因。所以目前最实用的解决方案是有一个 .htaccess 文件来打开它:

php_flag display_errors on

您还需要将error_reporting设置为适当的值:

php_flag error_reporting "E_ALL | E_STRICT"

无论如何,请记住在让用户访问您的网站之前将其关闭。

对于高级调试,我建议在服务器上安装Xdebug ,并使用Eclipse PDT带有 PHP 支持的 NetBeans IDE作为您的编辑器。他们都是很好的调试客户端,但我真的怀疑任何提供商都会在他们的实时服务器上安装 Xdebug。因此,如果您没有开发环境,您几乎可以使用日志记录功能。

于 2009-02-02T09:36:46.080 回答
2

访问您自己的本地开发环境(例如,通过 XAMPP)可以让您安装 XDebug。

PhpEd 可以让您调试它,还可以调试 Eclipse 的 PDT 环境。

通过编辑 php 的 ini 配置文件进行错误跟踪和记录也是一种好方法,特别是如果您可以管理它以记录信息。此外,还可以考虑添加跟踪语句并使用 FirePHP,例如。

于 2009-02-02T10:00:34.020 回答
1

就个人而言,我会推荐jEdit而不是 vim。SFTP 插件允许您直接在服务器上编辑(加载和保存)PHP 文档,PHPParser 插件会给您一些错误识别。

此外,如果您得到一个没有错误消息的空白页面,那么这些消息很可能只是对您隐藏。确保在您的配置或代码中启用了错误报告,如下所示:

// Report all PHP errors
error_reporting(E_ALL);

如果启用了错误报告并且您仍然看不到任何消息,请启用日志记录或启用到浏览器的输出

于 2009-02-02T09:22:15.280 回答
1

如果你得到一个空白页,这可能是因为一个致命错误,display_errors关闭。默认情况下,PHP 会将错误记录到 Apache 的错误日志中,但您也可以将其配置为将错误记录到单独的日志中。

对于调试,您可能还想查看 Xdebug。这个扩展可以做很多事情,包括交互式调试。你需要一个客户端来使用调试器,但是有一个 vim 插件可以做到这一点。

于 2009-02-02T19:38:57.673 回答
0

尝试 NuSphere PhpED

于 2009-02-02T09:20:42.523 回答