Heim > Artikel > Backend-Entwicklung > Remote-Multisession-Debugging für PHP
Dieser Artikel stellt Ihnen hauptsächlich relevante Informationen zum PHP-Remote-Multi-Session-Debugging durch Beispielcodes und Bilder vor. Es hat einen gewissen Referenz-Lernwert für alle, die es brauchen Lassen Sie uns gemeinsam mit dem Herausgeber lernen.
1. Hintergrundeinführung
Dieser Artikel stellt hauptsächlich den relevanten Inhalt zum PHP-Remote-Multi-Session-Debugging vor Referenz. Ich werde unten nicht viel sagen. Schauen wir uns die detaillierte Einführung an:
Welches Problem wurde gelöst? Das Projekt „mysite.com“ ruft die REST-Schnittstelle des Projekts „api.mysite.com“ auf und erleichtert das direkte Debuggen der Schnittstelle im Projekt „api.mysite.com“, wenn eine Aktion unter dem Projekt „www.mysite.com“ ausgelöst wird.
Für welche Szenarien ist es geeignet: Projektübergreifendes Debuggen, Remote-Debugging, bequemer und einfacher zu verwenden als einfaches var_dump.
2. Remote-Debugging-Konfiguration
Nginx+PHP-fpm-Umgebung, php.ini-Erweiterung konfigurieren[Xdebug] zend_extension = /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so xdebug.remote_enable=1 remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.idekey=XDEBUG
Hinweis: Ob das PHP der CLI-Umgebung und das PHP von fpm unterschiedliche php.ini-Konfigurationsdateien verwenden, müssen Sie konfigurieren das PHP, das fpm .ini entspricht
Überprüfen Sie, ob die Konfiguration korrekt ist Remote-Port (FPM-Host 10.99.1.185) Port 9000 dem lokalen Port 9000 zuordnen:ssh -CNg -R 9000:localhost:9000 root@10.99.1.185Nach der lokalen Installation von openssh können Sie den SSH-Befehl direkt verwenden
3. Sitzungsübergreifende (projektübergreifende) Debugging-Konfiguration
<?php $personJson = file_get_contents('http://api.mysite.com/backend.php'); $person = json_decode($personJson); var_dump($person);API-Projektcode lautet wie folgt:
backend .php
<?php class Person { public $Name; public $Email; } $person = new Person(); $person->Name = "Maarten"; $person->Email = "maarten.balliauw@jetbrains.com"; echo json_encode($person);Sie müssen das WWW-Projekt ändern und die von xdebug erforderlichen Netzwerkanforderungsparameter hinzufügen, um Remote-Debugging auszulösen:
<?php $debuggingQuerystring = ''; if (isset($_GET['XDEBUG_SESSION_START'])) { // xdebug $debuggingQuerystring = 'XDEBUG_SESSION_START=' . $_GET['XDEBUG_SESSION_START']; } if (isset($_COOKIE['XDEBUG_SESSION'])) { // xdebug (cookie) $debuggingQuerystring = 'XDEBUG_SESSION_START=PHPSTORM'; } if (isset($_GET['start_debug'])) { // zend debugger $debuggingQuerystring = 'start_debug=' . $_GET['start_debug']; } $personJson = file_get_contents('http://api.mysite.com/backend.php?' . $debuggingQuerystring); $person = json_decode($personJson); var_dump($person);Private Projekte können Cookie-Parameter zur allgemeinen Netzwerkanforderungskapselungsklasse hinzufügen:
curl_setopt($this->ch, CURLOPT_COOKIE, "XDEBUG_SESSION=XDEBUG");
4. Debugging-Prozess
Das obige ist der detaillierte Inhalt vonRemote-Multisession-Debugging für PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!