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

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

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

如果重要的话,我正在使用的应用程序是 学园, ,而且我对LAMP环境本身没有太多选择。

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

有帮助吗?

解决方案

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

php_flag display_errors on

你还需要 错误报告 到适当的值:

php_flag error_reporting "E_ALL | E_STRICT"

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

对于高级调试,我建议 调试工具 安装在服务器上 日食光动力治疗 或者 支持 PHP 的 NetBeans IDE 作为你的编辑。它们都是调试的好客户端,但我真的怀疑任何提供商都会在他们的实时服务器上安装 Xdebug。因此,如果您没有开发环境,那么您几乎只能使用日志记录功能。

其他提示

获取访问自己的本地开发环境(通过XAMPP,例如)将让你安装了XDebug。

PHPED会让你调试它,也是Eclipse的PDT环境。

错误跟踪,并通过编辑PHP的INI配置文件记录是一个很好的方式为好,特别是如果你可以管理它的日志信息。此外,考虑添加跟踪语句和使用FirePHP,例如

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

另外,如果您看到一个空白页,没有错误消息,那么这些消息很可能只是对您隐藏了。确保错误报告已启用,无论是在您的 配置 或者在你的代码中像这样:

// Report all PHP errors
error_reporting(E_ALL);

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

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

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

尝试NuSphere的PhpED

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top