PHP 인터프리터의 원본 코드를 빌드하고 수정하는 작업 공간
웹 서버 뒤에서 PHP 코드를 해석하고 실행하는 엔진을 직접 만들어 볼 수 있습니다. 이 저장소는 PHP 인터프리터의 C 언어 소스 코드와 빌드 도구, 테스트 스위트가 모여 있는 곳입니다. 개발자는 이 코드를 빌드해 특정 환경에 맞춘 PHP를 만들거나, 버그를 수정하고 새 기능을 제안하는 데 참여할 수 있습니다.
소스에서 PHP를 빌드하는 방법
완성된 바이너리를 쓰지 않고 소스에서 직접 빌드하려면 autoconf, bison, re2c가 필요합니다. 기본 빌드를 원하면 libxml2와 libsqlite3 라이브러리도 함께 설치해야 합니다. Ubuntu, Fedora, MacOS 등 주요 운영체제별 패키지 설치 명령이 문서에 정리되어 있어 준비 과정을 따라가기 쉽습니다. ./buildconf로 설정 파일을 생성한 뒤 ./configure로 옵션을 지정하고 make로 컴파일을 진행합니다. 개발용 빌드에는 --enable-debug 옵션을 추가하는 것이 권장되며, 프로덕션용은 기본 옵션으로 빌드합니다.
테스트 스위트 실행과 품질 확인
PHP는 광범위한 테스트 스위트를 포함하고 있어 코드 변경 후 안정성을 검증할 수 있습니다. 컴파일 완료 후 make test 명령을 실행하면 테스트가 자동으로 수행되며, 기본적으로 최대 10개의 논리 프로세서를 활용해 병렬로 실행됩니다. 특정 디렉토리의 테스트만 실행하거나 병렬 작업 수를 조절하려면 TEST_PHP_ARGS 또는 TESTS 변수를 설정하면 됩니다. 예를 들어 make TESTS=tests/lang/ test처럼 특정 언어 기능 관련 테스트만 골라 실행할 수 있습니다. 이러한 테스트 과정은 PHP의 핵심 기능이 의도대로 동작하는지 확인하는 필수 단계입니다.
확장 기능 관리와 기여 절차
PHP는 기본으로 포함된 확장 기능 외에도 추가 기능을 확장으로 설치할 수 있습니다. 확장 기능은 PIE(PHP Installer for Extensions)나 PECL(구버전)을 통해 관리되며, 이는 PHP의 기능을 확장하는 표준 방식입니다. 이 저장소에 기여하려면 포크 후 풀 리퀘스트를 보내야 하며, 새로운 기능 추가는 RFC(Request for Comments) 과정을 거쳐 개발자 커뮤니티의 승인을 받아야 합니다. 반면 버그 수정은 RFC 없이 진행할 수 있으며, 커밋 메시지에 관련 이슈 번호를 GH-NNNNNN 형식으로 참조하면 됩니다. 기여 가이드라인과 코딩 표준은 저장소 내 문서에서 자세히 확인할 수 있습니다.
빌드 전 확인 사항과 라이선스
이 저장소를 직접 빌드하려면 C 언어 컴파일러와 특정 시스템 라이브러리가 설치된 환경이 필요합니다. 특히 Windows 환경에서는 별도 빌드 가이드를 따르거나 공식 바이너리를 사용하는 것이 일반적이며, 리눅스 계열 시스템에서는 패키지 관리자를 통해 의존성을 해결하는 것이 효율적입니다. PHP는 Modified BSD License(BSD-3-Clause) 하에 배포되므로 상업적 사용과 수정이 자유롭습니다. 다만, 소스에서 빌드한 PHP를 프로덕션 환경에 배포하기 전에는 반드시 make test를 통과했는지 확인하고, 필요한 확장 기능이 모두 포함되었는지 점검해야 합니다. 특정 운영체제나 하드웨어 구성에서 빌드 오류가 발생할 수 있으므로, 공식 문서의 요구 사항을 꼼꼼히 따르는 것이 중요합니다.