PhpStorm 远程调试与 xdebug

4

我希望使用PHPstorm IDE和xdebug调试我的服务器站点。在本地工作得非常好,但是当我想要配置从服务器进行调试时,就无法正常工作。

我已经在服务器上安装了xdebug,并进行了以下配置:

xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp 
xdebug.remote_host=MY IP
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM

然后在PHPSTORM的“编辑配置”中设置了“PHP远程调试”和“服务器”

在服务器上,我输入:

Name: xxxx
Port: 80
Host: Url of my site
Debugger: Xdebug
I checked "Use Path Mapping" and in File/Directory i put my local    proyect path "/home/mysite"
In "Absolute path on the server" i put the path in the server where are the proyect: "/var/www/html/mysite"

在“PHP远程调试”中,我输入了以下内容:
Name: xxxx
Servers: the server created previously
IDE key: PHPSTORM

这些设置没有起作用。我使用带有 IDE 键 PHPstorm 启用的 Chrome 扩展 Xdebug。

我缺少什么才能正常工作?


首先收集xdebug日志,然后查看以下内容:1)它是否尝试连接到正确的IP:端口;2)如果连接成功。如果连接失败,则可能是您的服务器和PC之间的某个防火墙(可能是任何东西:本地防火墙;路由器;服务器配置阻止此类端口的出站连接等);3)验证路径(请记住:xdebug仅使用最终/解析路径--因此请仔细检查远程上的任何符号链接)。 - LazyOne
无论如何:https://confluence.jetbrains.com/display/PhpStorm/Debugging+with+PhpStorm 如果您还没有看到的话 - LazyOne
请问您能否提供“运行->Web服务器调试验证工具”的输出结果? - GeeH
1个回答

0

我想我曾经在工作中遇到过同样的问题。当XDebug在另一台服务器上运行时,XDebug引擎的端口当然只在本地系统(远程服务器)上打开。

将该端口传输到您的开发机器的最佳方法是在这两个系统之间创建一个安全的SSH隧道。在您的本地机器上,在ssh-config文件中(通常位于~/.ssh/config下),请执行以下操作:

Host example
    Hostname 192.168.2.1
    User johndoe
    LocalFoward 9200 127.0.0.1:9000

现在当您在控制台中执行以下操作

ssh example

它将使用用户名(登录名)johndoe连接到远程系统(192.168.2.1),并将远程机器上的端口9200隧道传输到本地机器上的端口9000。当然,您也可以同时使用相同的端口。

希望这可以帮助您。:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接