有没有人知道如何在命令行中调试CLI PHP脚本?我不想调试PHP网页——我没有PHP网页。我也不想调试远程脚本——我正在这个系统上运行/调试。目前我也不想尝试获取某些IDE(如Eclipse、PhpStorm或其他)来调试CLI PHP,我只是想在Linux命令行本身上调试一些PHP CLI脚本。在Perl中,这将简单地是 perl -d 。对我而言,调试脚本并不是弄清编译错误或其他简单的东西。对我而言,它是设置断点、运行代码、检查变量内容并能够在调试器中任意执行或评估('')。当然,以后我想将其配置到我选择的IDE中(此时为Eclipse),但我还没有成功将其工作。从CLI调试PHP CLI脚本对我来说是一个好的起点。谢谢。
以下是我尝试使用xdebug和/或Zend debugger与Eclipse配合使用的方法:
- 基础Eclipse版本Mars.1 Release 4.5。 - Eclipse PDT UI插件版本3.7.0.2015112 - 尝试使用pecl install xdebug安装xdebug。说我需要将“zend_extension=xdebug.so”添加到php.ini文件中。真的吗?哪个php.ini文件?我有几个: /etc/php5/cli/php.ini /etc/php5/apache2/php.ini /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是一个php.ini文件的路径。Andromeda尝试在两个文件中添加zend_extension内容,即/etc/php5/cli/php.ini和/etc/php5/apache2/php.ini,并将Xdebug添加到phpinfo.php页面中。然后配置了Eclipse中的Debug Configuration使用xdebug进行调试,但遇到了"Launching renameUser" java.lang.NullPointerException错误。此外,Andromeda还安装了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。从命令行运行这个文件时得到如下输出:"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 - 没有任何反应。现在我必须杀死它才能关闭它!
以下是我尝试使用xdebug和/或Zend debugger与Eclipse配合使用的方法:
- 基础Eclipse版本Mars.1 Release 4.5。 - Eclipse PDT UI插件版本3.7.0.2015112 - 尝试使用pecl install xdebug安装xdebug。说我需要将“zend_extension=xdebug.so”添加到php.ini文件中。真的吗?哪个php.ini文件?我有几个: /etc/php5/cli/php.ini /etc/php5/apache2/php.ini /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是一个php.ini文件的路径。Andromeda尝试在两个文件中添加zend_extension内容,即/etc/php5/cli/php.ini和/etc/php5/apache2/php.ini,并将Xdebug添加到phpinfo.php页面中。然后配置了Eclipse中的Debug Configuration使用xdebug进行调试,但遇到了"Launching renameUser" java.lang.NullPointerException错误。此外,Andromeda还安装了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。从命令行运行这个文件时得到如下输出:"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 - 没有任何反应。现在我必须杀死它才能关闭它!