사실 저의 궁극적인 목표는 PHP5.4를 지원하는 php_xdebug.dll을 컴파일하는 것이지만, 그 전에는 PHP5.4를 성공적으로 컴파일하는 것이 필요합니다.
컴파일 환경 및 관련 소프트웨어 패키지:
1.Microsoft Visual C 2008 Express Edition(SP1 포함)
2.윈도우 SDK 6.1
3.PHP SDK 바이너리 도구
4.신뢰할 수 있는 라이브러리
5.PHP5.4 소스
6.Xdebug 2.2.0-dev
VC6 컴파일 환경이 필요한 경우 Visual C 6.0을 설치해야 하며 SDK를 다음으로 교체해야 합니다.
Windows Server 2003 PSDK
편집 과정:
커피와 콜라를 준비하세요. 몇 시간이 걸릴 수 있습니다...
VC 2008 및 Windows SDK 6.1 설치
다음 디렉토리를 생성합니다:
D:php-sdk
D:php-sdkphp54dev
D:php-sdkpecl
php-sdk-binary-tools-20110915.zip의 모든 파일을 D:php-sdk
에 압축 해제합니다.
deps-5.4-vc9-x86.7z의 deps 디렉토리를 D:php-sdkphp54dev
로 추출합니다.
php5.4 소스 코드를 D:php-sdkphp54dev에 압축을 풀고 php-5.4.0RC3
과 같은 디렉터리 이름을 선택합니다.
xdebug의 소스 코드는 D:php-sdkpeclxdebug에 있습니다.
최종 디렉토리 구조는 아마도 다음과 같을 것입니다:
D:php-sdk>트리 D:php-sdk
DISK_VOL2 볼륨에 대한 폴더 PATH 목록
볼륨 일련 번호는 0C74-AD73
D:PHP-SDK
├───빈
├───php54dev
│ ├───deps
│ │ ├───빈
│ │ ├───포함
│ │ ├───lib
│ │ └───사이베이스
│ ├───pecl
│ │ └───xdebug
│ └───php-5.4.0RC3
├───스크립트
└───공유
Windows SDK CMD 셸을 열고 setenv /x86 /xp /release를 실행합니다. 64비트 시스템인 경우 이 명령이 필요합니다. 매개변수를 /x64로 변경하지 마세요. 경고 중…
경로 설정: set PATH=D:php-sdkbin;%PATH%
SHELL 디렉토리를 D:php-sdkphp54devphp-5.4.0RC3>로 전환하고 buildconf를 실행하여 구성 스크립트를 생성합니다.
D:php-sdkphp54devphp-5.4.0RC3>buildconf
configure.js 재구축
이제 'configure --help'를 실행하세요
D:php-sdkphp54devphp-5.4.0RC3>
구성을 실행하여 Make 스크립트를 생성하세요. 더 많은 컴파일 옵션을 보려면 구성 도움말을 참조하세요.
D:php-sdkphp54devphp-5.4.0RC3>configure --disable-snapshot-build --disable-debug-pack --disable-ipv6 --disable-zts --disable-isapi --disable-nsapi --without-t1lib --without-mssql --without-pdo-mssql --without-pi3web --without-enchant --enable-com-dotnet --with-mcrypt=static --disable-static-analyze --with-xdebug=shared
여기서는 –disable-snapshot-build를 사용하여 스냅샷 모드를 껐습니다. 이 명령은 aolserver, apache sapi 등과 같이 나에게 쓸모 없는 많은 옵션을 강제로 열 것이기 때문입니다. 마지막으로 –with-xdebug= shared를 추가했습니다. 이 옵션을 사용하기 전에 xdebug 소스 코드의 위치가 올바른지 확인하는 것이 가장 좋습니다. 문제가 없으면 buildconf 후 구성 - 도움말에서 이 옵션을 볼 수 있습니다.
다른 pecl 확장(예: apc, bcompiler 등)을 컴파일하려면 해당 소스 코드를 다운로드하여 pecl 디렉터리에 넣은 후 buildconf를 다시 실행하기만 하면 됩니다.
구성에 문제가 없으면 마지막으로 nmake를 실행하여 컴파일 프로세스를 시작하세요. 행운을 빕니다 :)
마지막 단계는 컴파일된 모든 파일의 디렉터리 구조(즉, 일반적으로 다운로드하는 PHP 바이너리 패키지의 구조)를 정리하고 zip으로 패키징하는 nmake snap입니다.
최종 생성된 파일 위치: D:php-sdkphp54devphp-5.4.0RC3Release(_TS)
오류 처리:
nmake 프로세스 중에 많은 경고가 생성됩니다. 중단되지 않는 한 무시하세요.
calendar.c 및 jewish.c의 인코딩 문제 정보:
extcalendarcalendar.c : 경고 C4819: 파일에 현재 코드 페이지(936)에서 표현할 수 없는 문자가 포함되어 있습니다. 데이터 손실을 방지하려면 파일을 유니코드 형식으로 저장하세요
다우.c
easter.c
프랑스어.c
gregor.c
jewish.c
extcalendarjewish.c : 경고 C4819: 파일에 현재 코드 페이지(936)에서 표현할 수 없는 문자가 포함되어 있습니다. 데이터 손실을 방지하려면 파일을 유니코드 형식으로 저장하세요
extcalendarjewish.c(324): 오류 C2001: 상수에 줄 바꿈
extcalendarjewish.c(325): 오류 C2001: 상수의 줄 바꿈
extcalendarjewish.c(326): 오류 C2001: 상수에 줄 바꿈
extcalendarjewish.c(327): 오류 C2001: 상수의 줄 바꿈
NMAKE: 치명적인 오류 U1077: '"C:Program Files (x86)Microsoft Visual Studio 9.0VCBincl.exe"': 반환 코드 '0x2'
그만하세요.
이 두 파일은 ANSI 인코딩을 사용하며 GBK 문자 집합에 없는 일부 서양 특수 문자를 포함합니다.
에디트플러스로 열 수 있으며 인코딩 선택: 서유럽어(Windows), UTF-8로 저장할 수 있습니다.