Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

藏色散人
藏色散人nach vorne
2022-01-05 15:43:284850Durchsuche

In der folgenden Tutorial-Kolumne von phpstorm erfahren Sie, wie Sie PHP-Projekte in Docker mit PHPStorm debuggen. Ich hoffe, dass es für Freunde hilfreich ist, die es benötigen!

Diese Maschine wurde mit Docker entwickelt. Für diejenigen, die an das Debuggen gewöhnt sind, stellt die Platzierung von PHP in einem Docker-Container einen weiteren Schwierigkeitsgrad dar.

Das gilt natürlich nur, wenn Sie nicht wissen, wie man es konfiguriert. Sobald Sie den Trick beherrschen, ist es eigentlich eine einfache Sache, und es gibt fast keinen Unterschied im Schwierigkeitsgrad zur lokalen Konfiguration.

1 Umgebung

Bevor wir beginnen, machen wir einige Annahmen zur Umgebung:

  • Docker ist auf dieser Maschine installiert
  • Es ist ein PHP-Container mit der xdebug-Erweiterung installiert
  • Das Verzeichnis des Codes auf dieser Maschine lautet: /Users/gary/dnmp/www/localhost/Users/gary/dnmp/www/localhost
  • 代码映射到容器目录:/var/www/html/localhost
  • 项目使用域名localhost,并在主机hosts和nginx配置中绑定
  • PHP-FPM通过9000端口与nginx容器/应用连接

这里的域名不一定是localhost,如果你用了Laravel、Yii、Thinkphp等框架,那一般会用类似 mydev.comdev.awaimai.comawaimai.dev的域名,本文一样适用。

2 php.ini配置

主要配置如下:

[XDebug]
 xdebug.remote_enable = 1
 xdebug.remote_handler = "dbgp"
 xdebug.remote_host = host.docker.internal

这几行的作用是:

  • 开启xdebug远程调试
  • 调试方式用dggp
  • 远程地址用host.docker.internal,也就是docker容器所在的主机。如果主机是Linux系统,host.docker.internal可能用不了,需要改用PHP容器和主机同一虚拟网络下的IP,在主机中用docker network inspect dnmp_default命令可找到,其中dnmp_default是容器的所在的网络。

这里我们没有配置xdebug.remote_port,因为xdebug默认使用9000,与我们FPM一致了,不用再设置。如果FPM使用其他端口,remote_port也要改成相应端口。

配置完成后,重启PHP容器

2 PHPStorm配置

1 菜单选择 RunEdit Configurations

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

2 在弹出的框中点左上角的 + 号,选择 PHP Web Page

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

3 现在还没有任何的服务器,我们要加一个。如下,点击 server 右侧的 ... 按钮。

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

4 然后就是配置服务器的信息,这里就是docker容器了。

  • Name:服务器名称,随便写都可以。
  • Host:域名,这里我用localhost,如果你的域名类似awaimai.dev,那就填awaimai.dev
  • Port:连接服务器的端口。这里我们通过nginx连到PHP,用的是80端口,所以这里保留默认80
  • Debugger:用Xdebug。
  • Use path mappings:这里一定勾选,然后填写本地代码与容器代码的映射关系。如果用的是框架,这里就填框架的根目录。
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

然后点击OK保存。

5 返回后,

  • Name:填写一个配置名称,随便填,这里我们调试首页,填Index
  • Server:下拉选择服务器,这里我们选择刚加的localhost
  • Start URL:起始调试的页面,/表示首页,如果是其他页面,比如/home/index,那就填/home/index
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

点击OK

Der Code wird dem Containerverzeichnis zugeordnet: /var/www/html/localhost🎜🎜Das Projekt verwendet den Domänennamen localhost code> und binden Sie ihn in die Host-Hosts und die Nginx-Konfiguration🎜🎜PHP-FPM verbindet sich über den <code>9000-Port🎜 mit dem Nginx-Container/der Nginx-Anwendung 🎜Der Domainname hier ist nicht unbedingt localhost. Wenn Sie Laravel, Yii, Thinkphp und andere Frameworks verwenden, verwenden Sie im Allgemeinen etwas wie mydev.com, dev .awaimai.com, awaimai Dieser Artikel gilt auch für .dev-Domänennamen. 🎜🎜2 php.ini-Konfiguration 🎜🎜🎜Die Hauptkonfiguration ist wie folgt: 🎜rrreee🎜Die Funktionen dieser Zeilen sind: 🎜🎜🎜🎜Aktivieren Sie 🎜xdebug Remote-Debugging🎜🎜Verwenden Sie dggp zum Debuggen 🎜🎜Die Remote-Adresse verwendet host.docker.internal, den Host, auf dem sich der Docker-Container befindet. Wenn es sich bei dem Host um ein Linux-System handelt, darf host.docker.internal nicht verwendet werden. Sie müssen die IP im selben virtuellen Netzwerk des PHP-Containers und des Hosts verwenden inspect dnmp_defaultim Host >-Befehl zu finden, wobei dnmp_default das Netzwerk ist, in dem sich der Container befindet. 🎜🎜Wir haben xdebug.remote_port hier nicht konfiguriert, da xdebug standardmäßig 9000 verwendet, was mit unserem FPM übereinstimmt und keine Einstellung erforderlich ist es wieder hoch. Wenn FPM andere Ports verwendet, muss auch remote_port auf den entsprechenden Port geändert werden. 🎜🎜Nachdem die Konfiguration abgeschlossen ist, 🎜starten Sie den PHP-Container neu🎜. 🎜🎜2 PHPStorm-Konfiguration 🎜🎜🎜1 Menüauswahl 🎜Ausführen🎜 – 🎜Konfigurationen bearbeiten🎜, 🎜
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen
🎜2 im Popup Klicken Sie auf das + -Zeichen in der oberen linken Ecke und wählen Sie PHP-Webseite. 🎜
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen
🎜3 Es gibt noch keinen Server, wir müssen einen hinzufügen. Klicken Sie wie unten gezeigt auf die Schaltfläche ... auf der rechten Seite des Servers. 🎜
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen
🎜4 Dann gibt es die Informationen zum Konfigurieren des Servers, hier ist der Docker-Container. 🎜🎜🎜🎜Name: 🎜Servername, Sie können schreiben, was Sie wollen. 🎜🎜🎜Host: 🎜Domainname, hier verwende ich localhost, wenn Ihr Domainname awaimai.dev ähnelt, dann geben Sie awaimai.dev ein Code>. 🎜🎜🎜Port: 🎜Der Port für die Verbindung zum Server. Hier stellen wir über Nginx eine Verbindung zu PHP her und verwenden dabei den <code>80-Port, sodass der Standardwert 80 hier beibehalten wird. 🎜🎜🎜Debugger: 🎜Verwenden Sie Xdebug. 🎜🎜🎜Pfadzuordnungen verwenden🎜: Hier 🎜muss🎜 aktiviert sein und dann die Zuordnungsbeziehung zwischen lokalem Code und Containercode ausfüllen. Wenn Sie ein Framework verwenden, geben Sie hier das Stammverzeichnis des Frameworks ein. 🎜
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen
🎜 Klicken Sie dann zum Speichern auf OK. 🎜🎜5 Nach der Rückkehr 🎜🎜🎜🎜Name: 🎜Geben Sie einen Konfigurationsnamen ein, füllen Sie ihn beiläufig aus, hier debuggen wir die Homepage, füllen Sie Index aus. 🎜🎜🎜Server: 🎜Ziehen Sie nach unten, um den Server auszuwählen. Hier wählen wir den neu hinzugefügten localhost. 🎜🎜🎜Start-URL: 🎜Die Seite, auf der mit dem Debuggen begonnen werden soll. / bedeutet die Startseite. Wenn es sich um eine andere Seite handelt, z. B. /home/index, geben Sie /home /index. 🎜
Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen
🎜Klicken Sie zum Speichern auf OK. 🎜

3 Debuggen starten

Kehren Sie zum Codefenster zurück, setzen Sie einen [Haltepunkt] vor den Code und klicken Sie dann wie folgt auf die [Debug-Schaltfläche]:

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen

PHPStorm wird automatisch geöffnet Öffnen Sie den Browser und warten Sie auf das Programm. Wenn die Ausführung den Haltepunkt erreicht, wird sie automatisch gestoppt.

Hier können wir die globalen Variablen, den Aufrufstapel und die temporären Variablen in PHP sehen,

und können das Debuggen in einem Schritt durchführen, was sehr praktisch ist.

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie PHP-Projekte in Docker mit phpstorm debuggen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:awaimai.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen