연결되지 않은 원격 서버에 대한 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_host
NetBeans를 실행하는 기계의 IP로 설정되어야 하지만 저는 팀이 다른 IP 주소를 가진 기계를 사용하여 디버깅할 수 있기를 원합니다.포트 9000이 문제가 될 수 있지만 차단되지 않은 것을 확인했습니다.
이것을 명확히 할 수 있는 어떤 도움도 감사할 것입니다!
PHP(및 XDebug)를 실행하는 서버는 워크스테이션/데스크톱에 연결할 수 있어야 합니다.
따라서 특정 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.a
IDE 호스트myKey
에서 한 키
필요한 IDE 구성 변경/추가:
- 트
remote_port
9003
port) OR set (xdebug의 새 기본 포트) OR set (xdebug의 기본 포트) ORxdebug.client_port
9000
합니다.
나를 위해.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
디버깅을 시작하기 위해 어떤 페이지 확장자를 실행하고 있습니까?저는 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을 사용하는 경우 아래 줄을 추가해야 합니다..env
java.
# 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
'programing' 카테고리의 다른 글
스프링 JDB성능 측면에서 CTemplate VS 최대 절전 모드 (0) | 2023.08.25 |
---|---|
iPhone에서 UIView 컨트롤러를 팝업으로 표시 (0) | 2023.08.25 |
우리는 언제 멀티프로세싱을 호출해야 합니까?수영장. 가입? (0) | 2023.08.25 |
문자열을 일치시켜 SQL에서 두 테이블을 비교하는 가장 좋은 방법은 무엇입니까? (0) | 2023.08.25 |
jQuery 팬시 상자를 닫는 방법 버튼 클릭 (0) | 2023.08.25 |