有谁知道如何从CLI调试CLI PHP脚本?!?我不想调试PHP网页 - 我没有PHP网页.我也不想调试远程脚本 - 我正在这个系统上运行/调试.我不想(此时)试图获得一些IDE(Eclipse,PhpStorm或其他)来调试CLI PHP而不是我只想在Linux命令行本身调试一些PHP CLI脚本.在Perl中,这只是perl -d
当然以后我想把它配置到我选择的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并尝试调试:
启动renameUser遇到了问题."启动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并尝试调试.收稿日期:
启动'renameUser'时出错无法启动调试会话.请确保将调试器正确配置为php.ini指令.
重新启动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:加载共享库时出错:libiconv.so.2:无法打开共享对象文件:没有这样的文件或目录
在/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 - 没有任何反应.现在我必须杀死它才能关闭它!
exussum.. 14
在命令行上调试时,您需要告诉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)进行调试,除了命令行之外什么都不需要
在命令行上调试时,您需要告诉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)进行调试,除了命令行之外什么都不需要