この記事では、主に PHP リモート マルチセッション デバッグに関する情報をサンプル コードと写真を通じて詳しく紹介しています。学習や仕事に役立つ情報が含まれています。必要な方は以下をご覧ください。一緒に。
1. 背景の紹介
この記事では主に PHP リモート マルチセッション デバッグに関する関連コンテンツを紹介し、参考と学習のために共有します。以下では多くを述べません。詳細な紹介を見てください:
解決された問題: 複数のプロジェクト ブレークポイントのデバッグ、www.mysite.com プロジェクトは api.mysite.com プロジェクト REST インターフェイスを呼び出し、www.mysite でアクションがトリガーされると.com プロジェクトでは、api.mysite.com プロジェクトのインターフェイスを直接デバッグする方が便利です。
どのようなシナリオに適しています: クロスプロジェクトデバッグ、リモートデバッグ、単純な var_dump よりも便利で使いやすい。
2. リモートデバッグ設定
Nginx+PHP-fpm環境、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
注: CLI環境のphpとfpmのphpかどうかphp.ini 設定ファイルの使用方法が異なります。fpm に対応する php.ini を設定する必要があります
設定が正しいかどうかを確認してください
リモート (fpm ホスト 10.99.1.185) ポート 9000 をローカル ポート 9000 にマッピングします:
ssh -CNg -R 9000:localhost:9000 root@10.99.1.185
local openssh をインストールした後、ssh コマンドを直接使用できます
サーバー上で、ポート 9000 が ssh によって占有されていることがわかります
PHPSTORM も Xdebug を設定する必要があります、複数のデバッグ セッションを同時に有効に設定、ポート 9000、外部要求を受け入れます。
プロジェクト関連のパスマッピング、ドメイン名、ポートを構成します
3. クロスセッション(プロジェクト)デバッグ構成
クロスプロジェクトデバッグのコアすることですXdebug のデバッグをトリガーする 条件は、パラメーターとして api.mysite.com プロジェクトまたは後続の他のプロジェクトに送信されます。
www プロジェクトのコードは次のとおりです:
frontend.php
<?php $personJson = file_get_contents('http://api.mysite.com/backend.php'); $person = json_decode($personJson); var_dump($person);
api プロジェクトのコードは次のとおりです:
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);
www プロジェクトを変更し、リモート デバッグをトリガーするために xdebug に必要なネットワーク リクエスト パラメーターを追加します:
<?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);
独自のプロジェクトは、一般的なネットワーク リクエスト カプセル化クラスに Cookie パラメーターを追加できます:
curl_setopt($this->ch, CURLOPT_COOKIE, "XDEBUG_SESSION=XDEBUG");
4. デバッグ プロセス
デバッグパラメータがAPIインターフェースに転送されていることを確認してください
同時にデバッグできるセッションの数を増やしてください
デバッグモニタリングを有効にし、サーバーサイドのXdebugを有効にしてください
以上がPHP のリモート マルチセッション デバッグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。