IT TIP

xdebug 및 netbeans로 php-cli 스크립트 디버깅?

itqueen 2020. 10. 28. 21:21
반응형

xdebug 및 netbeans로 php-cli 스크립트 디버깅?


IDE 자체에서 php-cli 스크립트 디버그 세션을 시작했지만 셸 / 명령 줄에서 디버깅 세션을 시작해야합니다. 많은 입력 매개 변수를 사용하는 다소 복잡한 유지 관리 PHP 스크립트이므로 Netbeans 내에서 인수를 입력하는 것은 약간 번거 롭습니다.

이전에 Zend studio : https://zend18.zendesk.com/hc/en-us/articles/203838096-Debugging-PHP-CLI-Scripts 를 사용했지만 이제 Netbeans에서 작동하도록해야합니다.

미리 감사드립니다.


Ubuntu / Netbeans에서 다음과 같이 작동합니다.

  • /etc/php5/apache2/php.ini 파일의 xdebug 구성 행을 /etc/php5/cli/php.ini에 복사
  • 디버그 세션의 이름으로 환경 변수를 설정합니다 (디버깅을 시작할 때 netbeans가 시작하는 페이지의 URL에있는 쿼리 문자열에서 가져올 수 있음). 따라서 명령은 다음과 같습니다. export XDEBUG_CONFIG="idekey=netbeans-xdebug"

그런 다음 netbeans에서 디버깅을 시작 php myscript.php하고 명령 줄에서 수행하는 경우입니다 .

참고 : netbean을 사용하여 원격으로 디버그하려면 일반 디버그가 아닌 명령 줄에서 실행중인 파일에서 디버그 파일을 사용해야합니다.


추가 xdebug.remote_autostart=On귀하의 php.ini 파일이나 추가 -dxdebug.remote_autostart=On는 PHP 바이너리 호출에 매개 변수로 ( php -d... script.php).

http://xdebug.org/docs/remote 참조


나는 모두 함께 모을 것입니다. 다음은 저에게 효과적입니다.

file:
/etc/php5/cli/php.ini

zend_extension="/usr/lib/php5/20121212/xdebug.so" -> xdebug bin path
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_handler="dbgp"
xdebug.remote_mode="req"
xdebug.remote_port=9000 -> same port configured in netbeans debugging tab
xdebug.idekey="netbeans-xdebug" -> same ide configured in netbeans debuggin tab
xdebug.remote_autostart=1

그런 다음 다른 매개 변수없이

php script.php


나는 같은 문제가 있었고 내 해결책은 다음과 같습니다.

  1. 환경 : Windows 아래의 Netbeans 8.2 (apache + php)
  2. Xdebug ( http://wiki.netbeans.org/HowToConfigureXDebug#Notes_on_Windows_Configuration )를 사용하여 코드를 디버깅하도록 구성된 PHP 및 NetBeans가 이미 있다고 가정합니다.
  3. netbeans에서 새 구성을 만듭니다 ( "프로젝트 속성"> "구성 실행"> "새로 만들기…").
  4. 새 구성 집합에서 웹 브라우저를 열지 않음 ( "고급"> "웹 브라우저를 열지 않음")
  5. 생성 된 새 구성을 활성화합니다 (도구 모음의 드롭 다운).
  6. 디버그를위한 중단 점 설정
  7. 디버그 열기 (CTRL + F5)
  8. 터미널 창 열기 ( "도구"> "터미널에서 열기")
  9. 터미널 입력 : $ export XDEBUG_CONFIG = "idekey = netbeans-xdebug"( "netbeans-xdebug"값은 "도구"> "옵션"> "디버깅"> "세션 ID"와 일치해야 함))
  10. 터미널 입력 : $ php.exe -f "C : \ Apache24 \ htdocs \ www.SiteName \ ScriptName.php"- "Arg1 = x & Arg2 = y"
  11. 디버그 따르기…

내 솔루션은 다음과 같은 동일한 문제가 발생했습니다.

Netbeans> 프로젝트 창> php 프로젝트> 속성> 구성 실행을 마우스 오른쪽 버튼으로 클릭합니다. 새 구성을 만듭니다.

올바른 값을 입력하십시오.

  • "스크립트"로 실행
  • PHP 인터프리터 설정
  • 제 경우에는 "cron / index.php"인 인덱스 파일을 변경하십시오.

IDE에 xDebug를 구성하지 않으려면 Dephpugger 프로젝트를 사용할 수 있습니다 (구성이 싫어요).

https://github.com/tacnoman/dephpugger

Python 용 ipdb 및 Ruby 용 byebug와 같은 터미널에서 디버거를 실행할 수 있습니다.


일반적으로 idekey 가 아니기 때문에 DBGP_IDEKEY 값도 설정해야합니다 . 예를 들어 Linux에서 :

export DBGP_IDEKEY="netbeans-xdebug" 
export XDEBUG_CONFIG="netbeans-xdebug=netbeans-xdebug"

참고 URL : https://stackoverflow.com/questions/2944880/debugging-php-cli-scripts-with-xdebug-and-netbeans

반응형

'IT TIP' 카테고리의 다른 글

Laravel 5-블레이드 전환  (0) 2020.10.28
Java Date 객체에 대한 Unix epoch 시간  (0) 2020.10.28
Django의 템플릿 내부에서 권한 확인  (0) 2020.10.28
Google Text-To-Speech API  (0) 2020.10.28
git stash 및 git pull  (0) 2020.10.28