OS X上的PHP调试 - 无望?

问题描述 投票:27回答:9

我试过了:

  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
9个回答
21
投票

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


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


3
投票

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


2
投票

一直在为osx寻找php调试器。这个看起来很有希望:http://www.turingart.com/phpdebugger_lan__en.htm


1
投票

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


0
投票

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


0
投票

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

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

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


0
投票

There is a way how to do it using

1)安装php和debug

brew install php70   
brew install php70-xdebug
  • 在PhpStorm中 - 检查Preferences => Language and Frameworks => PHP Php语言水平:7 解释器:PHP 7.0.8 + XDebug(或从[...]中选择)
  • 检查调试配置:Preferences => Language and Frameworks => PHP => Debug => Xdebug部分 应检查所有复选框并将调试端口设置为:9001

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

php -S localhost:8080

3)将localhost:8080添加到PhpStorm首选项=>语言和框架=> PHP =>服务器: 名称:Localhost:8080 主持人:localhost 港口:8080 调试器:Xdebug

4)更新php.ini: Php => Interpreter => [...] =>配置文件 - 在编辑器中打开 添加此部分:(检查通过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)


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,您应该看到Xdebug section,它显示扩展已加载并启用,否则上述配置出现问题。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.