OS X上的PHP调试 - 无望?

时间:2008-09-17 05:45:22

标签: php debugging macos

我试过了:

  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。我不记得是什么问题,因为这是一段时间以前,但它没有用。
  5. 关于Xdebug,至少,我相信我已经正确安装了它。它显示了PHP文件中的phpinfo()和CLI中的php -i

    如果有人设法让PHP调试以某种方式在Mac上运行,我很感激,如果你能与我分享如何。使用var_dump($foo);die();的乱抛垃圾代码很快就会变老。如果可以在没有的情况下使用像Eclipse这样的膨胀软件编辑器,或者Zend想要卖给我的昂贵的专有东西,那么可以完成加分。

    我的服务器通过FastCGI连接到PHP,如果这会产生差异。

9 个答案:

答案 0 :(得分:21)

您可能需要查看MacGDBp。这是新的,免费的,UI看起来很棒。它也使用Xdebug PHP扩展。您可以在help部分找到相关说明,其中包括Xdebug配置,此处还有来自Particletree的人员的应用程序概述:Silence The Echo with MacGDBp

答案 1 :(得分:11)

我是这样做的:

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

我自己也在为osx寻找php调试器。这看起来很有希望: http://www.turingart.com/phpdebugger_lan__en.htm

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

我使用Eclipse& amp;调试PHP CLI脚本和webproject(通过apache等) ZendDebugger一直都是。

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

希望这就是你要找的东西。

答案 7 :(得分:0)

如何使用

进行操作

1)安装php和debug

brew install php70   
brew install php70-xdebug
  • 在PhpStorm中 - 检查首选项=>语言和框架=> PHP
    Php语言水平:7
    口译员:PHP 7.0.8 + XDebug(或选择[...])

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

2)在应用程序目录中运行服务器:

php -S localhost:8080

3)将localhost:8080添加到PhpStorm Preferences =>语言和框架=> PHP =>服务器:
名称:Localhost:8080
主持人:localhost
港口: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应用程序

  • 选择Localhost:8080服务器

6)单击开始侦听Php调试连接
7)设置断点
7)单击Debug(Green bug)

答案 8 :(得分:0)

如果您使用的是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 Start页面,然后单击phpinfo选项卡。在列表中搜索xdebug,您应该看到显示扩展已加载并启用的here,否则上述配置出现问题。

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

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