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

Débogage multi-session à distance pour PHP

巴扎黑
Libérer: 2023-03-16 11:50:02
original
1631 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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");
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal