在 Ubuntu 上使用 PhpStorm 进行 Xdebug

Xdebug with PhpStorm on Ubuntu

我想知道是否有人可以阐明采取适当措施以确保以下设置将允许 Xdebug 和 PhpStorm 工作。

我们有一个 LAMP 堆栈 运行 很好,在 Azure VM 上有 PHP 和 Xdebug 3 运行。

我们在共享办公网络上,IP 地址为 public,但进线无法访问防火墙,尽管它非常宽松。

我们的目标是连接我们的机器 (x3) 以调试我们的远程 Web 服务器(Azure VM 上的 LAMP 堆栈)。

我们可以毫无问题地创建到 Web 服务器的 SSH 隧道。但是调试就是不行。 IE。当我们启动一个页面时,调试器什么都不做。

有没有其他人运行这种设置和确认我们是否缺少确保连接成功的步骤。

[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.default_enable = 1
xdebug.force_display_errors = 1
xdebug.scream = 1
xdebug.force_error_reporting = NONE
xdebug.idekey = diss
xdebug.remote_enable = 1
xdebug.remote_log=/tmp/xdebug.log
xdebug.log=/var/log/xdebug.log
xdebug.remote_connect_back=0
xdebug.discover_client_host=false

在我的案例中,通过确保设置如下

解决了这个问题
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.remote_log=/tmp/xdebug.log
xdebug.log=/var/log/xdebug.log

我使用 pydbgpproxy

    cd /opt
    sudo mkdir pydbgpproxy
    cd pydbgpproxy
    sudo wget https://github.com/Mirocow/pydbgpproxy/archive/master.zip ./
    sudo unzip master.zip ./
    sudo ln -s $(pwd)/pydbgpproxy /usr/local/bin/pydbgpproxy

编辑 pydbgpproxy

cd /opt/pydbgpproxy/pydbgpproxy-master/
sudo nano pydbgpproxy 

第 333 行将 add=xxx 行替换为

addr = ['127.0.0.1',long(idekey)]

在服务器上启动pydbgproxy

nohup sudo /opt/pydbgpproxy/pydbgpproxy-master/pydbgpproxy -i 127.0.0.1:1001-d 127.0.0.1:1003 &

使用 SSH 隧道创建到开发服务器的 SSH 连接:

Source Port: 1234 **This must match your unique IDE key set below.**
Destination: 127.0.0.1:1003

在 PhpStorm 中将调试器端口更改为 9003 File > Settings > Languages & Frameworks > PHP > Debug

Debug Port: 1003

将您的代理设置更改为: File > Settings > Languages & Frameworks > PHP > Debug > DBGp Proxy

IDE Key: 1234 **Unique IDE Key - This must be unique to you and must be numerical**
Host: 0.0.0.0 **External IP Address of the Dev Server**
Port: 1001

确保您的 xdebug 助手扩展设置为使用密钥 1234

您在上面设置的 IDE 键必须是唯一的