programing

연결되지 않은 원격 서버에 대한 Xdebug

lastmoon 2023. 8. 25. 23:55
반응형

연결되지 않은 원격 서버에 대한 Xdebug

저는 다른 컴퓨터를 사용하는 이 원격 서버에서 PHP를 디버깅할 수 있기를 원하지만, NetBeans 7.0.1에서 Xdebug가 작동하도록 하는 데 어려움을 겪고 있습니다.저는 많은 온라인 팁을 시도해 보았지만, 소용이 없었습니다.

참고로, 저는 WampServer를 실행하는 Windows 7 컴퓨터에 Xdebug를 로컬로 성공적으로 설치했습니다.따라서 프로젝트 속성 ->구성 실행 ->다른 이름으로 실행 속성을 로컬 웹 사이트로 설정하면 NetBeans의 중단점으로 PHP를 디버그할 수 있습니다.그러나 위에서 언급한 바와 같이 저의 목표는 원격 웹 사이트의 NetBeans에서 디버깅하는 것입니다.

내 서버는 Ubuntu 11.04 기계입니다.저는 http://www.xdebug.org/find-binary.php 의 출력을 사용하여 적절한 바이너리를 기계에 배치했습니다.모두 수정했습니다.php.ini 수 .php5/apache2그리고.php5/cli다음 행을 포함합니다.

zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

가 내가확면하를 하면,phpinfo.php웹 페이지에 다음과 같이 표시됩니다.

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans

그래서 Xdebug는 제대로 설치된 것 같습니다.그래도 NetBeans에서 디버깅을 시도하면 연결 대기(netbeans-xdebug)라는 끝없는 상태 표시줄 메시지가 표시됩니다.중지 버튼을 누르면 X초 이내에 xdebug에서 연결이 감지되지 않습니다. xdebug가 설치되지 않았거나 제대로 구성되지 않았기 때문일 수 있습니다.

제가 로컬 설정과 서버 설정을 혼동하고 있는 것은 아닐까요?게시글에xdebug.remote_hostNetBeans를 실행하는 기계의 IP로 설정되어야 하지만 저는 팀이 다른 IP 주소를 가진 기계를 사용하여 디버깅할 수 있기를 원합니다.포트 9000이 문제가 될 수 있지만 차단되지 않은 것을 확인했습니다.

이것을 명확히 할 수 있는 어떤 도움도 감사할 것입니다!

PHP(및 XDebug)를 실행하는 서버는 워크스테이션/데스크톱에 연결할 수 있어야 합니다.

Diagram

따라서 특정 IP 주소에 연결하도록 지시하여 서버를 적절하게 설정해야 합니다.xdebug.remote_host을 실행합니다.xdebug.remote_connect_back). 하지만 후자는 몇 가지 보안적인 의미가 있습니다.이러한 내용은 설명서에 개략적으로 설명되어 있습니다.

원격 디버깅을 위한 Xdebug 3 업그레이드 가이드

요약: https://xdebug.org/docs/upgrade_guide

필요한 PHP 구성 변경/추가:

  • 거한제를 합니다.xdebug.(remote_enable|default_enable|profiler_enable|auto_trace|coverage_enable)
  • 더하다xdebug.mode=debug 사용 OR 용사develop|coverage|gcstats|profile
  • 더하다xdebug.start_with_request=yes
  • xdebug.remote_autostart는 대됨체로 대체됩니다.xdebug.mode=debug와 함께xdebug.start_with_request=yes
  • xdebug.remote_host는 대됨체로 대체됩니다.xdebug.client_host
  • xdebug.remote_port는 대됨체로 대체됩니다.xdebug.client_port 설정 더 새 기본값을 사용합니다. IDE IDE 설정(아래 참조)

새 구성 예

xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.idekey=myKey
xdebug.client_host=x.y.z.a
xdebug.remote_handler=dbgp

어디에

  • x.y.z.aIDE 호스트
  • myKey에서 한 키

필요한 IDE 구성 변경/추가:

  • remote_port9003 port) OR set (xdebug의 새 기본 포트) OR set (xdebug의 기본 포트) ORxdebug.client_port9000 합니다.

나를 위해.xdebug.remote_connect_back = On작동하지 않습니다.제가 한 일은 클라이언트 컴퓨터에서 ssh 포트 포워딩을 설정한 것입니다.

원격 시스템의 xdebug 구성:

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_handler = dbgp
xdebug.remote_mode = req

클라이언트 시스템의 포트 전달:

ssh -g -N -lusername -R9000:127.0.0.1:9000 [remote.host.ip]

원격 컴퓨터에서 셸 액세스가 허용되어야 합니다.

주요 지침은 다음과 같습니다.

xdebug.remote_connect_back = On

이렇게 하면 웹 서버가 디버깅 세션을 요청하는 모든 컴퓨터에 연결할 수 있습니다.이렇게 하면 IP 주소를 하드 코딩할 필요가 없고 Xdebug를 공유할 수 있습니다.이 지침은 이전 버전에는 없었으며 자습서 및 설명서에서 생략되는 경우가 많습니다.

가 포트에 대한 .xdebug.remote_port) 가 실행 하는 작업이

저의 경우, 이러한 명령이 도움이 되었습니다.

xdebug.remote_enable = On
xdebug.remote_autostart=1

주의: 'xdebug.remote_autostart=1' 때문에 GET/POST/OKIE 변수가 없는 경우에도 디버거가 작동합니다.

도커를 구성하는 과정에서 몇 번 같은 문제가 발생했고 여러 번 머리를 긁적거린 후 이것이 해결 방법이라는 것을 깨달았습니다.그래서 저는 이것을 제 미래의 저에 대한 답으로 여기에 두기로 결정했습니다.

대부분의 시간 동안 도커 파일은 이 문장을 php.ini에 추가했습니다.

xdebug.remote_connect_back     = on

이렇게 하면 모든 것이 정상으로 보이지만 PHP 스톰에 의해 실제로 잡힌 디버그 연결은 없습니다.위의 라인을 다음과 같은 것으로 바꾸면 즉시 해결됩니다.

xdebug.remote_connect_back     = 0
xdebug.remote_host             = host.docker.internal

그실행해야 : 물론그후실다행합야니다해음을에도:합▁of.$ docker-compose down $ docker-compose build그리고.$ docker-compose up -d

버전: Linux 버전host.docker.internal작동하지 않습니다.사용할 수 있습니다.172.17.0.1대신참 (는 항상 가 약간의 를 가지고 (고로 127.0.0.1은아다닙니아다닙니참(▁(1대note▁it신▁thought0은▁i. 저는 항상 제가 약간의 선택장애가 있기 때문이라고 생각했습니다.)

설정이 필요합니다.

xdebug.remote_host=192.168.1.104

192.168.1.104입니다.

에 .xdebug.remote_connect_back = On 측 php.ini.
또한 PphpStorm에서 디버깅 세션을 시작할 수 있도록 Chrome에 이 플러그인을 사용해야 했습니다.

xdebug 3을 사용하는 경우 일부 변수의 이름이 바뀌어야 합니다.다음 내용을 읽어 보십시오. https://xdebug.org/docs/upgrade_guide

나를 위해 작동한 php.ini 구성:

[xdebug]
xdebug.mode=debug
zend_extension="C:/wamp64/bin/php/php7.4.26/ext/php_xdebug.dll"
xdebug.idekey=PHPSTORM
xdebug.client_host= "localhost"
xdebug.client_port=9003

PHP storm 설정

디버깅을 시작하기 위해 어떤 페이지 확장자를 실행하고 있습니까?저는 XDebug의 모든 설정이 잘 진행되는 곳에서 미친 듯이 잠 못 이루는 밤을 보낸 것을 기억합니다.문제는 제가 시작하지 않았다는 것입니다..PHP로 시작하는 편이 좋습니다..HTML.

다음을 사용하여 디버깅을 시작해 보십시오..PHP파일.

xdebug 3에 대한 Brad의 매우 정확한 답변; 감사합니다...저의 경우 Pphp7.3.13, Netbeans 8.2 및 IIS 10(eindia.com 은 많은 웹사이트 중 하나입니다)을 사용했으며 Xampp, Wampp, Lampp은 사용하지 않았습니다.그런 다음 xdebug(마법사 사용)를 설치하고 아래와 같이 구성했습니다.

[xDebug]
zend_extension = "C:\Program Files\PHP\v7.3\ext\php_xdebug-3.0.2-7.3-vc15-nts-x86_64.dll"
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_handler="dbgp"
xdebug.client_host="eindia.com"
;xdebug.remote_host=192.168.1.5
;xdebug.remote_connect_back=1
xdebug.client_port=9003
;xdebug.remote_mode=req
xdebug.idekey="netbeans-xdebug"  

그리고 그것은 매력적으로 작동합니다.

Laravel Sail 사용 시

Laravel Sail을 사용하는 경우 아래 줄을 추가해야 합니다..envjava.

# Enable XDEBUG (PHP Debugger)
SAIL_XDEBUG_MODE=debug

이것을 추가한 후, 다음을 사용하여 다시 항해를 다시 시작합니다.vendor/bin/sail restart.

자세한 내용은 Laravel Sail 문서를 참조하십시오.

언급URL : https://stackoverflow.com/questions/8049776/xdebug-for-remote-server-not-connecting

반응형