如何从CLI调试PHP CLI脚本

有谁知道如何从CLI调试CLI PHP脚本?!?我不想调试 PHP网页 – 我没有PHP网页.我也不想调试远程脚本 – 我正在这个系统上运行/调试.我不想(此时)试图获得一些IDE(Eclipse,PHPStorm或其他)来调试CLI PHP而不是我只想在Linux命令行本身调试一些PHP CLI脚本.在Perl中,这只是perl -d< script.pl> <选项&gt ;.对我来说,调试脚本并不是在计算编译错误或其他简单的事情.对我来说,它设置了断点,运行代码,检查变量的内容,并能够在调试器中任意执行或评估(‘< PHP code>‘).

当然,我想将它配置到我选择的IDE中(此时这是Eclipse),但我还没有设法让它工作.从CLI调试PHP CLI脚本对我来说是一个好的开始.

谢谢.

我不知道为什么我在发表评论时仅限于字符数.也许我可以在这里添加更多文字.

这是我为了在Eclipse中使用xdebug和/或Zend调试器而尝试的:

>基础Eclipse版本Mars.1版本4.5.
> Eclipse PDT UI插件版本3.7.0.2015112
>尝试使用pecl install xdebug安装xdebug.说我需要在PHP.ini中添加“zend_extension = xdebug.so”.真?哪个PHP.ini?我有一些:

Andromeda:sudo find / -xdev -name PHP.ini
/etc/PHP5/cli/PHP.ini
/etc/PHP5/apache2/PHP.in
/opt/eclipse/plugins/org.zend.PHP.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/PHP53/PHP.ini
/opt/eclipse/plugins/org.zend.PHP.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/PHP5/PHP.ini
/opt/eclipse/plugins/com.zend.PHP.debug.debugger.PHP56.linux.x86_64_13.0.1.v20151112-2045/resources/PHP56/PHP.ini
Andromeda:

>我将zend_extension放在/etc/PHP5/cli/PHP.ini和/etc/PHP5/apache2/PHP.ini中.制作了一个PHPinfo.PHP页面,我在那里看到了Xdebug(是的!).在Eclipse中配置调试配置以使用xdebug并尝试调试:

Launching renameUser has encountered a problem. An internal error occurred during “Launching renameUser” java.lang.NullPointerException.

哦,好吧……

>我还安装了Zend Debugger并将以下内容添加到相同的两个PHP.ini文件中:

zend_extension=/usr/lib/PHP5/20121212/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.0/16
zend_debugger.expose_remotely=always

>更改了调试配置以使用Zend Debugger并尝试调试.收稿日期:

Error launching ‘renameUser’ The debug session Could not be started. Please make sure that the debugger is properly configured as a PHP.ini directive.

>重新启动Eclipse,现在调试器尝试运行,但只是以一个255退出值终止,试图运行/opt/eclipse/plugins/org.zend.PHP.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/PHP5/ php-cgi.为什么它的runnign php-cgi超出了我的范围.我说这是一个CLI而不是CGI.无论如何,当我尝试从命令行运行时,我得到以下内容

Andromeda:/opt/eclipse/plugins/org.zend.PHP.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/PHP5/php-cgi
/opt/eclipse/plugins/org.zend.PHP.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/PHP5/php-cgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

>在/opt/eclipse/plugins/org.zend.PHP.debug.debugger.linux.x86_64_5.3.18.v20110322/resources/lib中找到一个libiconv.so.2并设置LD_LIBRARY_PATH以包含但是这只是无法启动调试器在所有声明,以确保调试器正确配置为PHP.ini指令…唉!

其他奇怪的东西:

>当Eclipse启动时,无法打开基于RSE的项目,从而将上次运行的编辑缓冲区显示为空
> Eclipse将不再退出!选择文件退出.什么都没发生.单击标题栏中的X – 没有任何反应.现在我必须杀死它才能关闭它!

在命令行上调试时,您需要告诉PHP您也要调试

http://xdebug.org/docs/remote

export XDEBUG_CONfig="idekey=session_name"
PHP myscript.PHP

假设启用了xdebug(它与哪个.ini文件无关,但每个操作系统有一个标准位置,通常在一个名为xdebug.ini的conf.d文件夹中,它是自动包含的)

这允许您调试cmdline脚本.

我个人使用Vim与Vdebug扩展(xdebug for vim)进行调试,除了命令行之外什么都不需要

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...