我目前使用xdebug,PhpStorm& amp;流浪汉。
它运作完美,但是当我通过VPN连接到互联网时,调试页面永远不会加载,它会在连接到页面时挂起。
具体来说,我点击“运行”>调试,Firefox浏览器打开,页面为空白,选项卡显示"正在连接..."使用旋转图标,左下角显示"等待{页面地址} ..."。 PhpStorm没有表示它正在等待任何事情,它看起来像是在调试模式下连接。
如果我等待大约5分钟或更长时间,有时页面会加载,但它无法用于调试目的,如果我单击链接/刷新页面,则再次为5分钟。
知道为什么通过VPN连接会破坏它吗?
答案 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。