xdebug 개발 환경 구축하기
수동으로 wamp기반의 개발환경을 구축하는 과정을 정리
wamp = Windows, Apache2, Mariadb, Php
요구조건
윈도우7 또는 10에서 개발환경을 구성한다.
아파치는 mod_rewrite가 활성화되어야 한다.
php는 5.5.17버전이고 디버깅은 xdebug를 사용한다.
db는 mariadb를 사용한다.
순서
- apache 설치
- php 설치
- php에 xdebug 적용
- db설치
apache 설치
아파치 웹 서버를 설치하고 mod_rewrite를 테스트하는 순서로 진행.
apache는 '아파치'라고 읽는다.
아파치 다운로드](https://tinyurl.com/p4rblsm))
운영체제가 64비트인 경우 64비트용으로 다운로드 => httpd-2.4.41-win64-VS16.zip
파일 압축풀기
원하는 위치에 httpd-2.4.41-win64-VS16.zip 파일의 압축을 푼다.
압축을 풀면 Apache24 디렉토리가 생긴다.
apache 설정
apache 설정은 Apache24 디렉토리 아래 conf 폴더에 httpd.conf 텍스트 파일로 구성
서버 설치 경로 지정
Define SRVROOT "D:/Apache24"
포트 설정
Listen *:80
mod-rewrite 활성화
LoadModule rewrite_module modules/[mod_rewrite.so](mod_rewrite.so)
주석처리된 '#'를 삭제하면 된다.
서버도메인 지정
ServerName localhost:80
.htacces의 재정의 허용
AllowOverride All
페이지에서 모두 찾아 All로 변경한다.
설정 결과 테스트
bin 폴더에 httpd에 '-t'옵션을 주어 테스트
httpd -t
설정이 잘 되었다면 'Syntax OK'가 나타난다.
윈도우 서비스에 등록
아래 명령어를 이용해 윈도우 서비스에 등록한다.
httpd -k install
참고
- httpd -k start
- httpd -k stop
웹드라우저에서 확인
웹브라우저를 열고 아래 주소로 이동한다.
rewrite 모드 테스트
mod_rewrite가 잘 적용되었는지 테스트를 진행한다.
먼저, 두개의 파일을 만들고 웹드라우저에서 http://localhost를 다시 호출해 보자.
모든 요청을 hello.php로 연결하는 코드이다.
.htaccess
RewriteEngine On
RewriteRule ^.*$ [hello.php](hello.php)
적용이 잘 되었다면 아래 결과가 나타난다.
Hello : 1
Hello : 2
Hello : 3
Hello : 4
Hello : 5
php 설치
아래 링크에서 원하는 버전(5.5.17, vc)를 찾아 다운로드 한다.
다운로드 링크](https://windows.php.net/downloads/releases/archives/))
64비트 php-5.5.17-Win32-VC11-x64.zip를 다운로드 함.
파일 압축풀기
원하는 위치에 다운로드 받은 파일의 압축을 푼다.
이제 Apache2.4가 있는 경로에 php-5.5.17가 함께 위치한다.
D:Apache2.4
D:php-5.5.17
php 설정
php-5.5.17에서 php.ini-development 찾아 사본을 만들고
새로 만든 사본의 이름을 php.ini로 변경.
이제 텍스트에디터로 열고 아래 내용을 수정.
extention 경로 지정
extension_dir = "D:/php-5.5.17/ext"
필요한 extension을 활성화
[extension=php_bz2.dll](extension=php_bz2.dll)
[extension=php_curl.dll](extension=php_curl.dll)
[extension=php_fileinfo.dll](extension=php_fileinfo.dll)
[extension=php_gd2.dll](extension=php_gd2.dll)
[extension=php_gettext.dll](extension=php_gettext.dll)
[extension=php_mbstring.dll](extension=php_mbstring.dll)
[extension=php_exif.dll](extension=php_exif.dll)
[extension=php_mysql.dll](extension=php_mysql.dll)
[extension=php_mysqli.dll](extension=php_mysqli.dll)
[extension=php_oci8.dll](extension=php_oci8.dll)
[extension=php_openssl.dll](extension=php_openssl.dll)
[extension=php_pdo_mysql.dll](extension=php_pdo_mysql.dll)
[extension=php_pdo_sqlite.dll](extension=php_pdo_sqlite.dll)
[extension=php_pgsql.dll](extension=php_pgsql.dll)
[extension=php_snmp.dll](extension=php_snmp.dll)
[extension=php_soap.dll](extension=php_soap.dll)
[extension=php_sockets.dll](extension=php_sockets.dll)
[extension=php_sqlite3.dll](extension=php_sqlite3.dll)
[extension=php_sqlite3.dll](extension=php_sqlite3.dll)
[extension=php_xmlrpc.dll](extension=php_xmlrpc.dll)
[extension=php_xsl.dll](extension=php_xsl.dll)
사용하기 원하는 라이브러리를 선택하면 된다.
타임존 설정
아래 경고를 피하기 위해 타임존을 설정한다.
Warning: phpinfo(): It is not safe to rely on the system's timezone settings.
date.timezone = Asia/Seoul
apache 모듈에 php 설정
Apache2.4/conf/httpd.conf 파일에 아래 내용을 추가한다.
기본 파일에 index.php 추가
DirectoryIndex [index.php](index.php) [index.html](index.html)
파일 맨 끝에 아래 내용을 추가
# PHP5 module
LoadModule php5_module "D:/php-5.5.17/[php5apache2_4.dll](php5apache2_4.dll)"
AddType application/x-httpd-php .php .html .htm .html .htm
PHPIniDir "D:/php-5.5.17"
php의 경로는 자신의 경로로 변경한다.
httpd - t 명령어로 테스트
루트 디렉토리에 아래 내용의 index.php 파일을 만든다.
이제 웹브라우저로 http://localhost/를 호출하여 'PHP 버전' 페이지를 확인한다.
오류 해결
httpd: Syntax error on line 543 of E:/Apache24/conf/httpd.conf: Cannot load e:/php-5/php5apache2_4.dll into server
다운로드 설치
https://www.microsoft.com/ko-KR/download/details.aspx?id=30679
php에 xdebug 적용
xdebug 다운로드
먼저 php 버전을 찾고 TS 버전으로 다운로드 한다.
xdebug 다운로드](https://xdebug.org/download))
php에 적용
다운로드 받은 dll 파일을 php 폴더로 이동한다.
아래 내용을 php.ini 아래에 추가한다. 필요하다면 php경로는 자신이 지정한 경로를 사용한다.
[XDebug]
zend_extension=D:/php-5.5.17/php_xdebug-2.5.0-5.5-vc11-x86_64.dll
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
phpinfo()에서 확인
변경 내용을 반영하기 위해 아파치를 다시시작하고 index.php를 호출한다.
로고와 함께 아래 내용이 phpinfo 페이지에 추가된 것을 확인 할 수 있다.
Zend logoThis program makes use of the Zend Scripting Language Engine:
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
visual studio code에서 디버깅
vs code에 확장기능 설치
- PHP Debug
VS Code 설정 (Ctrl + ,)의 User SETTINGS 에서 "php.validate.executablePath" 경로 추가
위에 내용
"php.validate.executablePath": "D:/php-5.5.17/[php.exe](php.exe)"
index.php에 테스트용 코드를 작성
VS Code에서 디버그 설정
상단 메뉴에서 Debug / Open Configurations를 열고 launch.json 파일에 아래 내용을 추가
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
}
브레이크 포인트 설정
print가 있는 줄에 브레이크 포인트를 걸려면
index.php 페이지로 이동하고, print가 있는 줄에 브레이크 포인트를 잡는다.
- 방법1. 행번호 앞에 커서를 옮기면 붉은 색 점이 나타는데 클릭!
- 방법2. 커서를 브레이크 포인트를 걸고자 하는 줄로 이동하고 F9
상단 Debug / Start Debugging를 선택하거나 F5키를 눌러 xDebug 연동을 시작
services.msc에서 아파치 서비스를 다시 시작(위 내용 참고)
웹브라우저에서 http://localhost를 호출하면 index.php의 print가 있는 줄에서 실행이 멈추게 되고 디버깅이 시작된다.
- 지역변수의 값이나 watch를 통해 필요한 변수를 확인할 수 있다.
mariadb 설치
생략
기타
- https://xdebug.org/wizard.php를 통해 xdebug를 설정하는 방법이 있으나 php 5.5는 지원하지 않아 이를 이용하는 과정은 따로 설명하지 않음.
- 이클립스에서 디버깅은 여기를](https://mainia.tistory.com/650)를%EB%A5%BC)) 참고한다.
'프로그래밍 > php' 카테고리의 다른 글
리눅스 민트 19.3에서 xe 개발 환경 구축하기 (0) | 2020.01.04 |
---|---|
php 하위 버전에 맞는 xdebug 사용 (0) | 2019.11.16 |