본문

Nusphere PhpED Debugger 설치

비동기식 php모듈을 제작하는데 타이밍 문제등으로 인해 IDE로의 개발이 필요해졌다.(editplus 만능주의자였건만..)
익숙하지 않아 쓰지 않았던 PhpED를 오랜만에 꺼내서 안에 있는 디버깅모듈을 사용하려고 했는데 php.ini에 입력해야하는 텍스트가 복사-붙여넣기 방식을 지원하지 않아 일일히 쳐야하는 일이 생겼다. 어짜피 디버깅환경마법사에서는 자세한 설명이 생략되어있으므로 직접 해당 웹페이지에서 확인해보았다. 여러 환경에서 작업해야 하므로 자주 볼것같아 블로그에 그에대한 글을 작성해 보려고한다.

디버깅 모듈을 사용하려면 PhpED설치시 디버깅 모듈을 설치에 체크해야한다.
그리고 php.ini에서 extension_dir가 ./로 설정되어 있다면 이를 extension_dir =  "c:\php5\extensions"와 같은 절대경로의 형태로 바꿔준다. 그 후 PhpED의 debugger\server 폴더 내에 해당 운영체제를 위한 모듈들이 위치해 있는데 x86윈도우환경에서 서버가 동작한다면 C:\Program Files\NuSphere\PhpED\debugger\server\Windows\x86와 같은 경로에서 해당 php버전에 맞는 디버깅 모듈을 찾고, 이를 extension_dir의 위치에 복사해준다. (Linux, FreeBSD, SunOS, Mac의 경우에도 마찬가지이다)

만약 Zend Extension을 사용하지 않는 경우, 즉 php.ini에 zend_extension나 zend_extension_ts와 같은 항목이 없을 경우, php.ini에 extension=dbg-php-5.2.dll(php 5.2버전을 사용할경우)의 형태로 한줄을 추가해 주며, 만약 위의 항목이 존재한다면(Zend Extension을 사용할경우) zend_extension_ts="c:\php5\extensions\dbg-php-5.2.dll" 의 형태로 다른 zend extensions보다 선행하여 입력해놓는다. 본인의 경우 zend optimizer 모듈을 사용하므로 후자의 경우를 적용하였다.

그리고 거기에 덧붙여 php.ini에 다음과 같은 항목을 입력한다. hosts_allow 항목에 알맞는 ip를 입력하면 되는데 로컬에서 디버깅하거나 SSL 터널링을 서용할 경우에 127.0.0.1을 입력하는것을 잊지 말아야 한다.
[debugger]
debugger.enabled=on
debugger.profiler_enabled=on
debugger.hosts_allow=host1 host2 host3
debugger.hosts_deny=ALL
debugger.ports=7869, 10000/16

이렇게 다 설정이 되었으면 웹서버를 재시작 하고 phpinfo()를 사용하여 dbg 섹션이 존재하는지 확인한다. 확인이 되면 프로젝트 생성시에 디버그설정마법사를 통하여 dbg-wizard.php를 루트디렉토리에 위치시키고 실행시키면 디버깅이 되는것을 확인 할 수 있다. 물론 원격으로도 디버깅이 된다.


[그림 1, 2] phpinfo() 출력 화면과 Debug Wizard가 성공적으로 수행된다면 php 디버깅이 가능하다.



이문서는 nusphere사의 HOWTO: Install debugger module 페이지를 참조하여 작성하였으며, 로컬 디버깅원격 디버깅의 시연화면도 확인할 수 있습니다.

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.