【问题标题】:PHP debugging with remote shell access使用远程 shell 访问进行 PHP 调试
【发布时间】:2023-03-30 04:35:02
【问题描述】:

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

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

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

如果重要的话,我正在玩的应用程序是Lyceum,而我在 LAMP 环境本身上没有太多选择。

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

【问题讨论】:

    标签: php debugging methodology remote-debugging


    【解决方案1】:

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

    php_flag display_errors on
    

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

    php_flag error_reporting "E_ALL | E_STRICT"
    

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

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

    【讨论】:

    • +1 关于如何打开错误报告,但不幸的是 xdebug 在共享主机环境中可能无用,因为防火墙以及使用未经授权的扩展的困难,除非主机允许您编译和使用您的拥有 PHP 二进制文件为 fcgi/cgi
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      // Report all PHP errors
      error_reporting(E_ALL);
      

      如果启用了错误报告但您仍然看不到任何消息,请enable logging 或启用output to the browser

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          试试 NuSphere PhpED

          【讨论】:

            猜你喜欢
            • 2011-06-19
            • 2012-04-06
            • 2013-07-13
            • 1970-01-01
            • 2014-02-09
            • 2011-05-03
            • 1970-01-01
            • 1970-01-01
            • 2012-07-23
            相关资源
            最近更新 更多