【问题标题】:PHP debugging on OS X - hopeless?在 OS X 上进行 PHP 调试 - 无望?
【发布时间】:2010-09-09 23:16:38
【问题描述】:

我试过了:

  1. Xdebug 和 Eclipse。 Eclipse 启动 Web 浏览器,但浏览器尝试访问 Eclipse 的 .app 包中不存在的文件。
  2. Xdebug 和 NetBeans。它做得更好一点;浏览器会在 /tmp 中打开一个页面,上面写着“正在启动。请稍候……”但除此之外什么都没有发生。
  3. Xdebug 和 debugclient,Xdebug 自带的 CLI 工具。 MacPorts(我用来安装 PHP 和 Xdebug)似乎没有自己安装它,当我尝试手动编译它时,我被告知“你有奇怪的 libedit”。通过 MacPorts 安装 libedit 并不能解决这个问题。
  4. Zend 的调试器(确切的名称我现在忘记了)和 Eclipse。我不记得是什么问题了,因为这是前一段时间的问题,但它没有用。

关于 Xdebug,至少,我相当有信心我已经正确安装了它。它在 PHP 文件中显示为 phpinfo(),在 CLI 中显示为 php -i

如果有人设法让 PHP 调试在 Mac 上以某种方式工作,如果您能与我分享方法,我将不胜感激。使用var_dump($foo);die(); 乱扔垃圾的代码很快就会变老。如果可以使用 Eclipse 之类的过时软件编辑器或 Zend 想卖给我的昂贵的专有东西来完成,则可以加分。

我的服务器正在通过 FastCGI 连接到 PHP,如果有差异的话。

【问题讨论】:

    标签: php debugging macos


    【解决方案1】:

    您可能想查看MacGDBp。它是新的、免费的,而且 UI 看起来很棒。它也利用了 Xdebug PHP 扩展。您可以在 help 部分找到说明,其中包括 Xdebug 配置,还有来自 Particletree 的人对应用程序的一个很好的概述:Silence The Echo with MacGDBp

    【讨论】:

    • 现在看起来真的不错。但它也需要 PHP 5,我无法在工作中使用它。不过,我迫不及待地想在家里试一试。还有五小时十八分三十三秒……
    • 我一直在 Mac OS X 上寻找类似的东西。
    • 好的,这很史诗。我将不得不向我的老板坚持我在工作时在我的机器上安装 PHP 5(和 10.5),这样我才能使用它。疯狂的道具,布赖恩。
    • 这在带有 Xdebug 2.1.0 的 PHP 5.3.3 上有大量令人沮丧的错误。作者似乎没有反应。除了最琐碎的调试之外,它对所有人都无法使用。
    • 我发现xdebug.org/find-binary.php 非常有助于让 XDebug 安装 OSX 附带的 PHP。
    【解决方案2】:

    我是这样做的:

    1 - 将最新版本的 xdebug.so 从 http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging 复制到 /usr/libexec。

    2 - 将以下内容添加到全局 php.ini:

    zend_extension="/usr/libexec/xdebug.so"
    xdebug.remote_enable=1
    xdebug.remote_host=localhost
    xdebug.remote_port=9000
    xdebug.remote_autostart=1
    

    3 - 重新启动 Apache 并运行 MacGDBp

    【讨论】:

    • 真的很有帮助!我尝试使用自制软件从源代码构建 xdebug,但失败了。
    【解决方案3】:

    只是想更新这个帖子,让您知道这里有一个新应用 http://codebugapp.com/ 它是商业应用,但它是 OSX 的 Xdebug 客户端

    【讨论】:

    • 我不知道如何让它工作。它似乎并没有像 MacGDBp 那样在执行的第一行停止,而且我找不到插入断点的方法 - 将文件拖动到断点列表或应用程序图标什么都不做,然后单击列表旁边的 + 图标插入一个空行。尝试打开帮助框会返回经典的“帮助不适用于 [应用程序名称]”——对于 OSS 免费赠品可以接受,但对于需要我付费的应用程序则不行。 (同样,网页上的文本需要润色——“OSX”、“mac”、逗号拼接。)回到我的 MacGDBp。
    • 您需要检查“第一行中断”设置以使其在第一行中断。对于文件,您必须按 CMD+E。您提到的其他内容是在我发布此内容时添加的。未来几天将发布更新,以解决文件/文件夹拖动、帮助和其他一些问题。顺便说一句,您可以在此处获取文档:codebugapp.com/support
    • 我真的很喜欢它不会像 MacGDBp 那样在第一行中断,而 MacGDBp总是 在第一行中断。
    • Break on first line 是 Codebug 中的一个选项,您可以在首选项中打开和关闭它。
    • Codebug 已根据 MacUpdate (macupdate.com/app/mac/45824/codebug) 停止,并且该网站当前显示停放/待售域名类型消息。
    【解决方案4】:

    我使用 Komodo 5 --- 调试工作非常出色,不仅使用 PHP,还使用 ​​Ruby 和 Python。 我主要使用它来调试在远程服务器上运行的 PHP 脚本,但您也可以在本地执行操作。它不是免费的,但假设您自己的时间是值得的,您将在几个小时内收回您的钱!

    【讨论】:

      【解决方案5】:

      有一种方法可以使用

      1) 安装php并调试

      brew install php70   
      brew install php70-xdebug
      
      • 在 PhpStorm 中 - 检查首选项 => 语言和框架 => PHP
        PHP语言等级:7
        解释器:PHP 7.0.8 + XDebug(或从 [...] 中选择)

      • 检查调试配置: 首选项 => 语言和框架 => PHP => 调试 => Xdebug 部分
        应选中所有复选框并将调试端口设置为:9001

      2) 在你的应用目录中运行服务器:

      php -S localhost:8080
      

      3) 将 localhost:8080 添加到 PhpStorm 首选项 => 语言和框架 => PHP => 服务器:
      名称:本地主机:8080
      主机:本地主机
      端口:8080
      调试器:Xdebug

      4) 更新 php.ini:
      Php => 解释器 => […] => 配置文件 - 在编辑器中打开
      添加此部分:(通过cli检查zend_extention路径)

      [Xdebug]
      zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
      xdebug.remote_enable=1
      xdebug.remote_host=localhost
      xdebug.remote_port=9001 (same as in Debug preferences)
      

      5) 添加调试配置: 运行 => 编辑配置 => 添加 - PHP Web 应用程序

      • 选择本地主机:8080 服务器

      6) 点击开始监听 PHP 调试连接
      7) 设置断点
      7) 点击调试(绿虫)

      【讨论】:

        【解决方案6】:

        我想我没有获得奖励积分,但 Zend Studio 在我连接到在 VMware 中运行的 Apache 的 Mac 上为我工作。

        【讨论】:

        • 您正在虚拟化哪个操作系统?您是否也在 VMware 中运行 Zend Studio?
        • 我只虚拟化 Linux。我认为使用 samba 来挂载代码并在运行 Zend Studio 的 Mac 上对其进行编辑。
        【解决方案7】:

        我一直使用 Eclipse 和 ZendDebugger 调试 PHP CLI 脚本和 web probject(通过 apache 等)。

        我在以下链接中回答了类似的问题: click here

        希望这就是您想要的。

        【讨论】:

          【解决方案8】:

          如果您使用的是 MAMP,请注意它有 2 个 php.ini 文件需要更新。我花了几个小时才弄明白这个。这两个文件位于 MAMP 4 的以下文件夹中,

          /Applications/MAMP/bin/php/php5.6.25/conf/php.ini
          /Applications/MAMP/conf/php5.6.25/php.ini
          

          如果您使用的是 php7,那么您需要更新这些文件。滚动到文件底部并确保您有以下条目,

          [xdebug]
          zend_extension="/Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
          xdebug.default_enable=1
          xdebug.remote_enable=1
          xdebug.remote_host=localhost
          xdebug.remote_port=9000
          xdebug.remote_autostart=1
          

          然后确保重新启动服务器,否则将不会加载新设置。要确保 Xdebug 正常工作,请打开 MAMP 开始页面,然后单击 phpinfo 选项卡。在列表中搜索xdebug,应该会看到Xdebug section,说明扩展已经加载并启用,否则上面的配置有问题。

          接下来您可以启动 MacGDBp,它将连接到端口 9000 并允许您调试文件。

          注意:如果您在 Wordpress 上进行开发,请确保跳过“AJAX”调试会话。这些是常规的,因为仪表板将 ping 服务器以进行更改。如果您在 MacGDBp 设置中启用“第一行中断”,您将看到 ajax 会话在define ('DOING_AJAX').... 行中断,您可以跳过该行。一旦你触发了你的事件来调试你的代码。

          【讨论】:

            猜你喜欢
            • 2010-09-12
            • 2016-01-16
            • 2010-09-19
            • 2015-07-30
            • 2011-04-17
            • 2011-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多