Frage

ich benutze Phpstorming Als mein Hauptwerkzeug zum Debuggen von PHP und bin sehr erfreut. Bisher habe ich Firefox verwendet, um die Skripte auszuführen, und Phpstorming fängt perfekt Pausen.

Jetzt habe ich eine Situation, in der ich ein PHP -Skript über Befehlszeile (nicht Browser) ausführe und wissen möchte, ob es eine Möglichkeit gibt, PHPStorm zu richten, um Pausen beim Ausführen eines PHP -Skripts über die Befehlszeile zu fangen?

War es hilfreich?

Lösung

Bitte Beobachten/stimmen Das verwandte Phpstorming -Problem.

Im Moment ist die Konfiguration etwas kompliziert. Es sollte möglich sein, wie zu debuggen beschrieben im Zend KB, mit einem gefälschten Server und PHP Remote -Debug Konfiguration in PHPStorm. Beachten Sie, dass dieses Tutorial einen Fehler hat. Sie müssen Query_String so festlegen (unter Windows):

SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000"

(Beachten Sie, dass der Unterschied in der Zitat ist, was wichtig ist).

Richten Sie Phpstorming wie auf den Screenshots gezeigt ein:

fake server

remote debug

Drücken Sie die Debuggen Schaltfläche in der Haupt -Symbolleiste. PHPSTORM wird auf die Debugger -Verbindungen hören.

Führen Sie in der Befehlszeile Ihr Skript aus:

d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php

PHPSTORM wird den Haltepunkt treffen:

breakpoint hit

Dies wurde unter Windows mit Zend Server -Installation getestet, sollte jedoch in den anderen Systemen und mit XDebug ähnlich sein.

Wenn Sie direkt von PHPSTORM debuggen möchten, verwenden Sie PHP -Skript Konfigurationstyp ausführen/debuggen. Ihre für dieses Projekt konfigurierte PHP -Instanz muss entweder haben Zend Debugger oder Xdebug in den Konfigurationsdateien aktiviert.

PHP -Heim- und Debugger -Modus kann in angegeben werden in File | Settings | PHP.

Nur mit Zend Server -Installation überprüft (PHP -Startseite: d:\dev\zend\ZendServer\bin) Und Zend Debugger funktioniert perfekt für mich.

Andere Tipps

Um das PHP -Debuging mit XDebug auf der Shell/Befehlszeile mit PHPSTORM zu aktivieren, ist es sehr einfach:

export XDEBUG_CONFIG="idekey=PHPSTORM"

Verwenden Sie in Windows CLI ein Satz anstelle des Exportierens.

set XDEBUG_CONFIG="idekey=PHPSTORM"

Stellen Sie sicher, dass PHPSTORM die PHP -Debug -Verbindungen anhört.

Um das Debuggen von der Befehlszeile zu deaktivieren: End:

unset XDEBUG_CONFIG

Dies (PHPStorm) ist der Standard-PHPStorm-IDE-Key.

  1. Klicken Sie auf Ausführen.
  2. Klicken Sie auf Konfigurationen bearbeiten ...
  3. Klicken Sie auf das Grün +
  4. Wählen Sie PHP -Skript.
  5. Geben Sie im Feld Name einen Namen an.
  6. Geben Sie den vollständigen Pfad zu Ihrem Skript im Feld Datei an.
  7. OK klicken.
  8. Wählen Sie das Skript aus, das Sie gerade in diesem Dropdown -Down -Bereich konfiguriert haben:

Screenshot of PhpStorm menu bar

  1. Klicken Sie auf die Schaltfläche Ausführen oder Debug. Ihr Skript sollte ausgeführt und es sollte alle festgelegten Haltepunkte fangen.

Wenn Sie das Skript ausführen, können Sie hier die Ausgabe sehen:

Screenshot of Run widget, typically docked on the bottom of the window

Wenn Sie das Skript debuggen, können Sie hier die Ausgabe sehen:

Screenshot of Console widget, docked in the Debug widget

Überprüfen Sie, ob Umgebungen Variablen SERVER_NAME und SERVER_PORT eingestellt sind. PHPStorm benötigt sie, um die richtige Zuordnung durchzuführen. Stellen Sie sie mit dem Export in der Bash oder manuell im PhpricScript ein. In beiden Fällen kann PHPStorm es dann unter finden $_SERVER['SERVER_NAME'] und $_SERVER['SERVER_PORT'] korrekt.

Für mich (auf macos) hat es so funktioniert:export XDEBUG_CONFIG="idekey=12345"

Keiner dieser Vorschläge funktionierte gut für mich.

Wenn Sie sich in derselben Situation befinden, versuchen Sie diesen Befehl (überprüfen Sie den richtigen PHP -Interpreter -Pfad).

/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]

Auf macos habe ich verschiedene bash_profile verwendet. Ich musste zuerst den folgenden Befehl ausführen:

source ~/.bash_profile

Dies änderte meinen PHP von integrierten/usr/bin/PHP zu dem über XAMPP installierten. Der Xdebug des Phpstorms begann nach dem obigen Befehl zu arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top