簡體   English   中英

Docker+php-fpm+Xdebug (Linux) + PhpStorm (Windows)

[英]Docker+php-fpm+Xdebug (on Linux) + PhpStorm (on Windows)

我在我的 Linux 主機上安裝了 Docker 並使用 php-fpm 和 Xdebug 提出了一個容器。 PhpStorm 安裝在 Windows 服務器上。 該項目通過gitlab吊裝。 你能告訴我如何在這樣的包中通過 Xdebug 設置調試嗎?

Docker 版本。

Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Xdebug 版本。 2.9.8

我需要在沒有 DBGp 代理的情況下進行設置。 它需要使用路徑映射進行配置。 這可能嗎?

Linux 和 Windows 服務器在同一個子網上,但是當我打開頁面時,Xdebug 日志中仍然出現超時。

UPD。 Xdebug 日志

[79] Log opened at 2021-04-08 06:51:34
[79] I: Checking remote connect back address.
[79] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[79] I: Checking header 'REMOTE_ADDR'.
[79] I: Remote address found, connecting to xx.xx.xx.xx:9000.
[79] E: Time-out connecting to client (Waited: 200 ms). :-(
[79] Log closed at 2021-04-08 06:51:34

我也決定使用 DBGP Proxy,但它也存在一些問題。 嘗試了 Windows 和 Linux 的代理。

[14688] Log opened at 2021-04-08 06:55:25
[14688] I: Checking remote connect back address.
[14688] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[14688] I: Checking header 'REMOTE_ADDR'.
[14688] I: Remote address found, connecting to xx.xx.xx.xx:9000.
[14688] I: Connected to client. :-)
[14688] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/html/debug.php" language="PHP" xdebug:language_version="7.3.22" protocol_version="1.0" appid="14688" idekey="OR"><engine version="2.9.8"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2020 by Derick Rethans]]></copyright></init>

[78] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

[78] Log closed at 2021-04-08 06:56:11

但它不能通過瀏覽器和 Postman 工作。 並且只有通過 curl 的終端中的請求掛起,並且 Linux 上的代理發出以下

Xdebug Simple DBGp client (0.4.2)
Copyright 2019-2020 by Derick Rethans
In dumb client mode

Waiting for debug server to connect on port 9000.
Connect from 192.168.112.4:45638
DBGp/1.0: Xdebug 2.9.8 — For PHP 7.3.22
Debugging file:///var/www/html/debug.php (ID: 78/OR)

謝謝大家。 問題出在防火牆上。 我打開了 9000 端口,它工作了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM