更新的问题:PhpStorm | WebMatrix(IISExpress)| Xdebug.remote_port | - 哪个港口放在哪里?
我正在使用WebMatrix和IISExpress在我的Windows机器上运行localhost Web服务器.我已经安装了PHP和Xdebug,它们都在工作.
我有一个本地WordPress安装.
我现在正试图让PhpStorm使用Xdebug进行调试.
当我运行PhpStorm时,它会在浏览器中启动Web应用程序,并在浏览器中显示相关的调试参数.
IDE KEY匹配

xdebug.remote_port配置正确.(后来我发现这是错的,但没有错.它应该是9000端口)
但似乎Xdebug从未与PhpStorm沟通.PhpStorm继续监听,执行完全运行而不会在任何断点处停止.

直到最近,我一直在用PHP编写代码(通过Notepad ++)并通过检查IIS中的日志进行调试(得喜欢那个web平台安装程序); 我已经决定更新到一个更有效的代码编写/测试环境,并在使用PHPStorm玩了好几分钟之后,决定购买它并尝试一下.从那以后,我意识到,就教程和演练而言,PHPStorm有点短暂.给了手册一瞥(RTFM,我知道),然后想出来,我想问一下那里是否有人愿意通过XDebug设置PHPStorm来帮助我,所以我可以不再讨厌自己没有研究底层系统足够好,并回到编码.
TLDR; 有人可以发布详细的演练来设置PHPStorm + XDebug吗?假设我的最大程度的愚蠢(我通常比ASP.NET世界更有能力,但我接近通常与PHP世界中某些形式的海上海绵相关的智能水平).
环境是安装了IIS和PHP的Windows 7旗舰版(64位).
我对使用Homebrew有点新意,但我喜欢它.它是如此容易.我正在尝试安装Xdebug.网上的一些帖子说这样做:
brew install xdebug
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我明白了:Error, no available formula.
我做了brew search xdebug,它回来了:
josegonzalez/php/php53-xdebug josegonzalez/php/php54-xdebug
Run Code Online (Sandbox Code Playgroud)
我尝试了几次不同的迭代,brew install包括brew install php53-xdebug但仍然没有运气.有人能帮我吗?我在Xdebug的网站上找不到关于使用Homebrew的任何内容,但网上的帖子似乎表明它是可能的.
我希望使用不同计算机的团队能够在远程服务器上调试PHP ,但我很难让Xdebug在NetBeans 7.0.1中工作.我尝试过很多在线提示,但无济于事.
为了记录,我已在运行WampServer的Windows 7计算机上本地成功安装了Xdebug .所以我可以在NetBeans中使用断点调试PHP,前提是我将Project Properties-> Run Configuration-> Run As属性设置为Local Web Site.但是,如上所述,我的目标是在远程Web站点上的NetBeans中进行调试.
我的服务器是Ubuntu 11.04机器.我使用http://www.xdebug.org/find-binary.php的输出将适当的二进制文件放在机器上.我已经修改了php.ini我能找到的所有文件(在php5/apache2和php5/cli目录中)以包含这些行:
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
Run Code Online (Sandbox Code Playgroud)
如果我查看phpinfo.php网页,它会说:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans
Run Code Online (Sandbox Code Playgroud)
所以Xdebug似乎确实安装得很好.不过,当我在NetBeans中尝试调试时,我会收到无休止的状态栏消息Waiting For Connection(netbeans-xdebug).当我按下停止按钮时,我得到xdebug的X连接未在X秒内被检测到.原因可能是未安装或未正确配置xdebug.
也许我在这里混淆了服务器设置的本地设置?一个帖子说, …
当我安装Xdebug时pecl,它将以下行添加到我的php.ini文件中.
extension="xdebug.so"
Run Code Online (Sandbox Code Playgroud)
以及我用过的所有东西.直到今天.
今天我在设置Xdebug以进行交互式调试时遇到了麻烦.直到我改变了上面的内容,我才能得到任何工作
zend_extension="/usr/local/lib/php/extensions/xdebug.so"
Run Code Online (Sandbox Code Playgroud)
(警告:我认为这是让我工作的原因,但我不是百分百肯定)
这引起了我的疑问.通过extension=vs. 加载扩展有什么区别zend_extension?
我在使用远程调试时xdebug没有在断点处停止时遇到问题(通过命令行运行脚本时一切正常).它将在程序的第一行中断,然后退出,而不是捕获任何断点.
它曾经工作正常,直到我切换到使用MacPorts for Apache和PHP.我已经尝试过多次重新编译(有几个版本),但没有骰子.
我正在使用PHP 5.3.1和Xdebug 2.1.0-beta3
我还尝试过至少3种不同的调试程序(MacGDBp,Netbeans和JetBrains Web IDE).
我的php.ini设置如下:
[xdebug]
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.remote_host=localhost
xdebug.idekey=webide
Run Code Online (Sandbox Code Playgroud)
当我记录调试器输出时,设置断点看起来像这样/;
<- breakpoint_set -i 895 -t line -f file:///Users/WM_imac/Sites/wm/debug_test.php -n 13 -s enabled
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="895" state="enabled" id="890660002"></response>
运行时,调试器将获取应用程序第一行的上下文,然后发送分离和停止消息.
但是,启动调试器时会输出此行.
<- feature_get -i 885 -n breakpoint_types
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="885" feature_name="breakpoint_types" supported="1"><![CDATA[line conditional call return exception]]></response>
"行条件调用返回异常"是否意味着什么?
我正在使用Netbeans 6.7和XDebug在我的机器上调试PHP站点,从Netbeans(Project-> Debug)中启动请求.这很好用,非常有用.
我的问题是:是否可以将调试器附加到任何进入的请求中,而不仅仅是我从Netbeans中启动的那些请求?
即,不是单击"调试",而是将Netbeans置于启动调试器并附加到下一个请求的模式中.
我有一种感觉,这可能是一个愚蠢的问题,但如果有可能,那就太好了.
编辑:更多信息
我的系统(Ubuntu 9.04)设置如下:
的内容 /etc/php5/conf.d/xdebug.ini
zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
Run Code Online (Sandbox Code Playgroud)
Netbeans PHP调试选项是默认值:
Debugger Port: 9000
Session ID: netbeans-xdebug
Stop at the First Line: ticked
Run Code Online (Sandbox Code Playgroud)
我的/etc/hosts文件重定向www.mywebsite.com到localhost
如果我单击Netbeans中的调试按钮,则会使用该地址启动Firefox http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug,调试器将按预期工作.
但是,如果我只是浏览http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug,这不会启动Netbeans中的调试器.
我也试过设置xdebug.remote_host=www.mywebsite.com,但没有区别.
此外,我启用了xdebug.remote_log,这显示了我从netbeans开始时的信息,但没有外部请求的信息.所以我认为XDebug根本没有看到外部请求.
所以我从命令行使用CURL来调用我的PHP网站:
curl -s "url"
Run Code Online (Sandbox Code Playgroud)
我的问题是......是否可以修改此命令,以便在从CURL调用站点时可以触发xDebug(与IDE结合使用(我使用Jetbrains PHPStorm))
也许操纵GET变量?
我已经在我的XAMPP安装中启用了xDebug分析,它运行正常.
现在我想询问是否有办法在我的源代码中说什么时候开始使用xDebug进行分析.
更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析并停止在插件的结束点进行分析.
那可能吗?
注意:以上只是一个例子.它可以是CakePHP插件或我可能需要分析的新PHP类
我正在尝试找到一个GUI来解析和查看Xdebug跟踪文件.虽然你可以使它们具有人类可读性,但是线条的数量太多使它无法使用.
我正在寻找像KCachegrind这样的东西,但是对于跟踪文件.我所有这一切背后的主要目标是找到记忆猪的内容.