我已经设法从IDE本身启动php-cli脚本调试会话,但是我需要从shell /命令行启动调试会话。这些是相当复杂的维护PHP脚本,需要大量输入参数,因此从Netbeans中输入参数有点麻烦。
我之前在Zend studio上已经做到了:https : //zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts,但是现在我需要使其与Netbeans一起使用。
提前致谢。
我已经设法从IDE本身启动php-cli脚本调试会话,但是我需要从shell /命令行启动调试会话。这些是相当复杂的维护PHP脚本,需要大量输入参数,因此从Netbeans中输入参数有点麻烦。
我之前在Zend studio上已经做到了:https : //zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts,但是现在我需要使其与Netbeans一起使用。
提前致谢。
Answers:
我通过以下方法在Ubuntu / Netbeans上进行此工作:
export XDEBUG_CONFIG="idekey=netbeans-xdebug"
这只是在netbeans中启动调试并php myscript.php
在命令行中进行操作的一种情况。
注意:如果要使用netbeans进行远程调试,则需要在从命令行运行的文件上使用Debug File,而不是正常的Debug。
SET XDEBUG_CONFIG=idekey=xdebug
(请注意缺少引号!)
export XDEBUG_CONFIG="idekey=netbeans-xdebug"
去/etc/php5/cli/php.ini
,但是由于它很奇怪并且什么都没用,所以我用谷歌搜索了“ Ubuntu export ”,并了解到它应该在运行php脚本之前先运行。对我来说,这并不明显。
添加xdebug.remote_autostart=On
到您的php.ini文件中或-dxdebug.remote_autostart=On
作为参数添加到PHP二进制调用(php -d... script.php
)。
code
php -dxdebug.remote_autostart = On -didekey = PHPSTORM -dremote_host = localhost -dprofiler_enable = 1 MY_PHP_PAGE.php PARAM1 PARAM2code
我将全部放在一起,以下是对我有用的。
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脚本.php
我有同样的问题,我的解决方案是这样的:
如果您不想为IDE配置xDebug(我讨厌配置),则可以使用Dephpugger项目。
https://github.com/tacnoman/dephpugger
您可以在终端中运行调试器,例如python的ipdb和Ruby的byebug。