Ich habe php.ini
und Debug config
in phpstorm
festgelegt. Versuchen, PHP-Skriptausgaben in phpstorm zu debuggen Ereignisprotokoll mit:
Ende von php.ini:
%Vor% Der Debug-Port in pStorm wird ebenfalls auf 9000 gesetzt. netstat -na
gibt mit:
Was ist, wenn ich auf einen anderen Port setze? zB wenn man es auf 10001
setzt, scheint es den Job zu machen. Oder wie man es richtig macht. Ich bin mir nicht sicher, ob ich verstehe, wie das xDebug
funktioniert. Es ist so, als ob Debug("script.php")(Shift+F9)
in phpstorm mit gesetztem Haltepunkt in der Datei läuft?
Hat jemand eine Idee?
BEARBEITEN:
Von: Ссылка
%Vor%Was passiert, wenn ich den Port für einen anderen als 9000 ändere? Vielleicht etwas über 50k.
Der Prozess, der auf Port 9000 läuft, könnte PhpStorm selbst sein.
Überprüfen Sie die aktuell verwendeten Ports wie Jacob erwähnt (unter Windows cmd: netstat -a -b
):
Wenn PhpStorm.exe unter : 9000 aufgeführt ist, müssen Sie nur den Port des integrierten Servers in den Einstellungen & gt; Build, Ausführung, Bereitstellung & gt; Debugger z. 63342 (das war die Standardeinstellung meiner PhpStorm-Installation).
Im Grunde benutzt ein anderer Prozess 9000 und benutzt ihn nicht, normalerweise für eine andere IDE, die gleichzeitig läuft
Windows-Korrektur - & gt;
öffnen Sie cmd.exe
netstat -o
%Vor%taskkill / PID XXXX
Hinweis zum zukünftigen Selbst:
In meinem Fall wurde dies durch die Portweiterleitung der virtuellen Maschine verursacht (Vagrant auf Virtual Box). Ich dachte, das Weiterleiten von 9000
wäre eine gute Idee.
LÖSUNG: Verbinden Sie sich mit der VM IP 10.166.53.1
, die die Standard Virtual Box ist
Inhalt meiner /etc/php5/cgi/conf.d/xdebug.ini
GNU / Linux-Lösung (weil es ein Leben außerhalb von Windows gibt):
Nach der Lösung von @aqm
finde zuerst den Prozess über Port 9000.
%Vor%Sie erhalten eine Ausgabe wie folgt:
%Vor%Sie benötigen PID, um den Prozess mit diesem Befehl zu beenden:
%Vor%NOTE : Möglicherweise zeigt Ihr Prozess seine PID nicht an. Möglicherweise führen Sie PHP-FPM mit dem Standardport 9000 aus. In diesem Fall können Sie PHP ändern -FPM-Port oder PHP Xdebug-Port.
LÖSUNG 1 - Ändern Ihrer Xdebug-Konfiguration:
Bearbeiten Sie /etc/php/php.ini
suche nach xdebug.remote_port=9000
und ersetze sie mit deinem neuen Port
LÖSUNG 2 - PHP-FPM-Port ändern:
Bearbeiten /etc/php/php-fpm.conf
Suche Zeile mit listen = 127.0.0.1:9000
und ersetze 9000 mit deinem neuen Port
Laden Sie dann den Dienst neu:
%Vor% Bearbeiten Sie dann Ihre Nginx- oder Apache-Konfiguration, um diesem neuen Port mitzuteilen, suchen Sie nach 127.0.0.1:9000
in /etc/httpd/httpd.conf
oder /etc/nginx/nginx.conf
und ersetzen Sie sie durch Ihren neuen Port
Laden Sie Ihren Server neu:
%Vor%oder
%Vor%Ich hoffe es hilft:),
Namaste.
Erstens, auch wenn es etwas abseits ist, denke ich, dass es hilft. Ich verwende für jedes Docker-Composer-Projekt eine andere Netzwerkschnittstelle. Auf diese Weise kann ich ohne Probleme einen persistenten Domainnamen in / etc / hosts abbilden, in diesem Beispiel ist 192.168.33.102 project.domain.local
.
Hier ist ein Beispiel für die YAML-Einrichtung:
%Vor% Der PHP-Container hört auf 9001 für php7.0-fpm
und auf 9000 für xdebug
und gibt keine Ports frei.
PhpStorm Debug Port ist auf 9000 voreingestellt und der Server-Host ist auf 192.168.33.102
(oder den Wert von / etc / hosts, was project.domain.local
ist) gesetzt.
Wie in den Ports von php container zu sehen ist, wird ein anderer Mapping-Port auf 10000 gesetzt, er kann einen anderen Wert als 9000 haben, um den Busy-Fehler von PHPStorm zu entfernen.
Außerdem ist es wichtig, den Port an docker-compose zu binden. Es funktionierte nicht, ohne den Port zuzuordnen und es funktionierte nicht mit 9000: 9000 .
Ich hoffe, es hilft jemand anderem!
PS: Hier ist die xdebug.ini:
%Vor%