Maison >développement back-end >tutoriel php >Débogage multi-session à distance pour PHP

Débogage multi-session à distance pour PHP

巴扎黑
巴扎黑original
2017-09-26 10:11:151607parcourir

Cet article vous présente principalement des informations pertinentes sur le débogage multi-session à distance PHP. L'article le présente en détail à travers des exemples de codes et d'images. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de chacun. Apprenons ensemble avec l'éditeur.

1. Introduction au contexte

Cet article présente principalement le contenu pertinent sur le débogage multi-session à distance PHP. référence. Veuillez vous y référer pour référence. Je ne dirai pas grand-chose ci-dessous. Jetons un coup d'œil à l'introduction détaillée :

Quel problème est résolu : Débogage de points d'arrêt de plusieurs projets, www. Le projet mysite.com appellera L'interface REST du projet api.mysite.com rend plus pratique le débogage direct de l'interface dans le projet api.mysite.com lorsqu'une action est déclenchée sous le projet www.mysite.com.

À quels scénarios convient-il : Débogage inter-projets, débogage à distance, plus pratique et plus facile à utiliser que le simple var_dump.

2. Configuration du débogage à distance

Environnement Nginx+PHP-fpm, configurer l'extension php.ini


[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

Remarque : Que le php de l'environnement CLI et le php de fpm utilisent des fichiers de configuration php.ini différents, vous devez configurer le php correspondant à fpm .ini

Vérifiez si la configuration est correcte

Mappez le port 9000 distant (hôte fpm 10.99.1.185) sur le port local 9000 :


ssh -CNg -R 9000:localhost:9000 root@10.99.1.185

Après avoir installé openssh localement, vous pouvez directement utiliser la commande ssh

Vous pouvez voyez sur le serveur que le port 9000 est occupé par ssh

PHPSTORM doit également configurer Xdebug, configurer plusieurs sessions de débogage pour qu'elles soient activées en même temps, le port 9000 et accepter demandes externes.

Configurer le mappage de chemin lié au projet, le nom de domaine, le port

3. Configuration du débogage inter-sessions (projet)

Le cœur du débogage inter-projets est d'envoyer les conditions qui déclenchent le débogage Xdebug en tant que paramètres à projet api.mysite.com ou d'autres projets ultérieurs.

Le code du projet www est le suivant :

frontend.php


<?php

$personJson = file_get_contents(&#39;http://api.mysite.com/backend.php&#39;);

$person = json_decode($personJson);

var_dump($person);

Le code du projet api est le suivant :

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);

Vous devez modifier le projet www et ajouter les paramètres de requête réseau requis par xdebug pour déclencher le débogage à distance :


<?php

$debuggingQuerystring = &#39;&#39;;

if (isset($_GET[&#39;XDEBUG_SESSION_START&#39;])) { // xdebug

$debuggingQuerystring = &#39;XDEBUG_SESSION_START=&#39; . $_GET[&#39;XDEBUG_SESSION_START&#39;];

}

if (isset($_COOKIE[&#39;XDEBUG_SESSION&#39;])) { // xdebug (cookie)

$debuggingQuerystring = &#39;XDEBUG_SESSION_START=PHPSTORM&#39;;

}

if (isset($_GET[&#39;start_debug&#39;])) { // zend debugger

$debuggingQuerystring = &#39;start_debug=&#39; . $_GET[&#39;start_debug&#39;];

}

$personJson = file_get_contents(&#39;http://api.mysite.com/backend.php?&#39;
. $debuggingQuerystring);

$person = json_decode($personJson);

var_dump($person);

Les projets privés peuvent ajouter des paramètres de cookie dans la classe générale d'encapsulation des requêtes réseau :


curl_setopt($this->ch, CURLOPT_COOKIE, "XDEBUG_SESSION=XDEBUG");

4. Processus de débogage

  • Assurez-vous que le les paramètres de débogage ont été transmis à l'interface API

  • Augmenter le nombre de sessions pouvant être déboguées en même temps

  • Activer la surveillance du débogage et activer Xdebug côté serveur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn