如何使用phpstorm和Xdebug设置远程调试


How to set up remote debugging with phpstorm and Xdebug

我看到了关于这个主题的其他问题/答案,但似乎没有一个问题与我相同,所以我们开始:

我在尝试什么

我使用phpStorm8来开发PHP网站(在这个特定的案例中是CakePHP 2.5.1)。我的电脑上有一份网站的副本,在那里做任何更改,并通过集成的FTP工具将新版本上传到生产服务器。到目前为止,一切都很简单,没有任何问题。

现在我想开始使用Xdebug来调试使用生产服务器(PHP 5.3.28)的网站,所以我尝试使用phpStorm和Xdebug设置远程调试。

到目前为止我做了什么

我已经在生产服务器上安装了Xdebug 2.1.3,它似乎正在运行。为了测试我是否做了另一个SO问题中建议的事情,所有这些事情都有效。

php.ini中的配置如下所示:

zend_extension="/usr/local/src/xdebug-2.1.0/modules/xdebug.so"
xdebug.profiler_enable='0'
xdebug.profiler_enable_trigger='1'
xdebug.profiler_output_dir='/home/username/debug'
xdebug.remote_enable='1'
xdebug.remote_connect_back ='1'

我没有设置remote_port变量,因为我可以使用默认端口(9000)。此外,我没有设置remote_host IP,因为我使用remote_connect_back选项来允许多个IP,如本文所述。

我还尝试了两种不同的方法来设置这一切:

  1. 我遵循了这个零配置教程,但在步骤7中,我从未得到传入连接对话框。

  2. 我也遵循了这个不同的教程,但在将XDebug与PhpStorm集成的步骤中,我没有从调试器下拉列表中选择XDebug选项

我需要什么

如果有人能帮我弄清楚我错过了什么或做错了什么,那就太好了!

我本来会把它添加到注释中,但没有所需的rep。

您是否在项目中正确设置了首选项?您是否能够配置和验证部署服务器(在"部署"下)?

之后,在PHP>server下设置服务器,并对其进行验证。

不要忘记检查主机上的防火墙。

确保你可以让XDebug在没有PHPStorm的情况下工作,然后循环回来并集成它。

这些是php.ini设置,而不是驱动程序路径,我正在为CLI项目使用:

xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_autostart = 1
xdebug.remote_host = 192.168.100.1

最重要的是,听听LazyOne。指定远程主机。不要在生产设备上运行调试器。花点时间学习虚拟机。我的建议是查看VirtualBox、Vagrant和SaltStack。这些工具一起使用将使您能够在尽可能接近生产的环境中调试代码,而不会增加调试工具带来的负担和风险。