通过VPN连接会破坏PhpStorm中的xdebug

时间:2016-10-25 18:09:56

标签: vagrant phpstorm xdebug vpn

我目前使用xdebug,PhpStorm& amp;流浪汉。

它运作完美,但是当我通过VPN连接到互联网时,调试页面永远不会加载,它会在连接到页面时挂起。

具体来说,我点击“运行”>调试,Firefox浏览器打开,页面为空白,选项卡显示"正在连接..."使用旋转图标,左下角显示"等待{页面地址} ..."。 PhpStorm没有表示它正在等待任何事情,它看起来像是在调试模式下连接。

如果我等待大约5分钟或更长时间,有时页面会加载,但它无法用于调试目的,如果我单击链接/刷新页面,则再次为5分钟。

知道为什么通过VPN连接会破坏它吗?

1 个答案:

答案 0 :(得分:1)

Andrew,我们可以获得有关您的设置的更多详细信息吗?

在不知道您的具体设置的情况下,我猜测远程PHP应用程序可能无法连接到笔记本电脑上的端口9000.

在开始调试会话之前,您可以尝试设置反向隧道,以允许远程主机与笔记本电脑上的端口9000通信。

从笔记本电脑的命令行中,您可以执行以下操作:

  

ssh -R 127.0.0.1:9000:laptop-IP:9000 remoteUser @ webServerIP

     

例如,ssh -R 127.0.0.1:9000:192.168.1.29:9000 user500@192.168.0.100

在上面的示例中,您的笔记本电脑(192.168.1.29)将以user500身份登录到远程服务器(192.168.0.100),并且可以通过netstat命令查看它正在侦听端口上的连接9000:

  

user500@192.168.0.100$ netstat -natep | grep 9000

     

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 500 5189077 -
  tcp 0 0 :: 1:9000 ::: * LISTEN 500 5189076 -

现在,您应该可以通过在php.ini中的远程服务器上设置xdebug.remote_host=127.0.0.1来启动与PhpStorm的调试会话。

同样,在登录远程服务器时从命令行启动php调试会话将如下所示:

  

php -dxdebug.remote_host = 127.0.0.1 -dxdebug.remote_enable = 1 -dxdebug.remote_autostart = 1 my_php_code.php

我在笔记本电脑和远程服务器上运行linux / CentOS。