用xdebug和netbeansdebuggingphp-cli脚本?
我设法从IDE本身启动php-cli脚本debugging会话,但是我需要从shell /命令行启动debugging会话。 这些是相当复杂的维护PHP脚本,它需要大量的input参数,所以从Netbeans中input参数有点麻烦。
我之前用Zend studio做过: https : //zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts ,但现在我需要使用Netbeans。
提前致谢。
我通过以下途径在Ubuntu / Netbeans上工作:
- 将/etc/php5/apache2/php.ini文件中的xdebugconfiguration行复制到/etc/php5/cli/php.ini
- 使用debugging会话的名称设置一个环境variables(您可以从开始debugging时netbeans启动页面的URL中的查询string中获得),所以命令是:
export XDEBUG_CONFIG="idekey=netbeans-xdebug"
那么这只是一个在netbeans中开始debugging并在命令行执行php myscript.php
情况。
注意:如果要使用netbeans进行远程debugging,则需要使用正在从命令行运行的文件上的debugging文件,而不是正常的debugging。
将xdebug.remote_autostart=On
添加到您的php.ini文件中,或者添加-dxdebug.remote_autostart=On
作为PHP二进制调用的参数( php -d... script.php
)。
我将把所有的一切,以下是对我的作品。
file: /etc/php5/cli/php.ini zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path xdebug.remote_enable=on xdebug.remote_host=127.0.0.1 xdebug.remote_handler="dbgp" xdebug.remote_mode="req" xdebug.remote_port=9000 -> same port configured in netbeans debugging tab xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab xdebug.remote_autostart=1
那么,没有任何其他参数
PHP script.php
我有同样的问题,我的解决scheme是这样的:
在NetBeans>项目窗口>右键单击php项目>属性>运行configuration。 创build一个新的configuration。
填写正确的值:
- 作为“脚本”运行
- 设置PHP解释器
- 在我的情况下更改索引文件是“cron / index.php”。
你可以使用Dephpugger项目,如果你不想为你的IDEconfigurationxDebug(我讨厌configuration)。
https://github.com/tacnoman/dephpugger
您可以在terminal中运行debugging器,例如Python的ipdb和Ruby的byebug。
我有同样的问题,我的解决scheme是这样的:
- 环境:windows下的netbeans 8.2(apache + php)
- 假设您已经将PHP和NetBeansconfiguration为使用Xdebug( http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration )来debugging代码,
- 在NetBeans上创build新的configuration(“项目属性”>“运行configuration”>“新build…”
- 在新的configuration集中不要打开网页浏览器(“高级”>“不要打开网页浏览器”)
- 设置激活新创build的configuration(在工具栏中下拉菜单)
- 设置debugging断点
- 打开debugging(CTRL + F5)
- 打开terminal窗口(“工具”>“在terminal中打开”)
- inputterminal:$ export XDEBUG_CONFIG =“idekey = netbeans-xdebug”(netbeans-xdebug的值必须与“工具”>“选项”>“debugging”>“会话ID”一致)
- inputterminal:$ php.exe -f“C:\ Apache24 \ htdocs \ http://www.SiteName \ ScriptName.php” – “Arg1 = x&Arg2 = y”
- 跟随debugging…