ホームページ  >  記事  >  バックエンド開発  >  PHP のリモート マルチセッション デバッグ

PHP のリモート マルチセッション デバッグ

巴扎黑
巴扎黑オリジナル
2017-09-26 10:11:151524ブラウズ

この記事では、主に 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(&#39;http://api.mysite.com/backend.php&#39;);

$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 = &#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);

独自のプロジェクトは、一般的なネットワーク リクエスト カプセル化クラスに Cookie パラメーターを追加できます:


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

4. デバッグ プロセス

  • デバッグパラメータがAPIインターフェースに転送されていることを確認してください

  • 同時にデバッグできるセッションの数を増やしてください

  • デバッグモニタリングを有効にし、サーバーサイドのXdebugを有効にしてください

以上がPHP のリモート マルチセッション デバッグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。