>  기사  >  백엔드 개발  >  PHP용 원격 다중 세션 디버깅

PHP용 원격 다중 세션 디버깅

巴扎黑
巴扎黑원래의
2017-09-26 10:11:151525검색

이 글에서는 주로 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에 매핑합니다. :... , 동시에 활성화된 여러 디버깅 세션 구성, 포트 9000, 외부 요청 수락.



프로젝트 관련 경로 매핑, 도메인 이름, 포트 구성

3. 세션 간(프로젝트) 디버깅 구성

크로스 프로젝트 디버깅의 핵심은 다음과 같습니다. Xdebug 디버깅을 트리거합니다. 조건은 api.mysite.com 프로젝트 또는 기타 후속 프로젝트에 매개변수로 전송됩니다.

www 프로젝트 코드는 다음과 같습니다.

frontend.php

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

api 프로젝트 코드는 다음과 같습니다. backend.php

<?php

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

$person = json_decode($personJson);

var_dump($person);

www 프로젝트를 수정하고 네트워크를 추가해야 합니다. 원격 디버깅을 트리거하려면 xdebug에 필요합니다. 요청 매개변수 추가:

<?php

class Person {

public $Name;

public $Email;

}

$person = new Person();

$person->Name = "Maarten";

$person->Email = "maarten.balliauw@jetbrains.com";

echo json_encode($person);

자체 프로젝트에서 일반 네트워크 요청 캡슐화 클래스에 쿠키 매개변수를 추가할 수 있습니다.

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



4. 디버깅 프로세스



디버깅 매개변수가 API 인터페이스로 전달되었는지 확인하세요

동시에 디버깅할 수 있는 세션 수를 늘리세요디버깅 모니터링을 활성화하고 서버 측 Xdebug를 활성화하세요

위 내용은 PHP용 원격 다중 세션 디버깅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.