PHP
컴파일 PHP 확장
수색…
Linux에서 컴파일
일반적인 리눅스 환경에서 PHP 확장을 컴파일하기 위해서는 몇 가지 전제 조건이 있습니다 :
- 기본적인 유닉스 기술 ( "make"와 C 컴파일러를 사용할 수 있음)
- ANSI C 컴파일러
- 컴파일하고자하는 PHP 확장을위한 소스 코드
일반적으로 PHP 확장을 컴파일하는 두 가지 방법이 있습니다. 확장 기능을 PHP 바이너리로 정적으로 컴파일하거나, 시작할 때 PHP 바이너리에 의해로드 된 공유 모듈로 컴파일 할 수 있습니다. 공유 된 모듈은 전체 PHP 바이너리를 다시 빌드하지 않고도 확장을 추가하거나 제거 할 수 있기 때문에 가능합니다. 이 예제는 공유 옵션에 중점을 둡니다.
패키지 관리자 ( apt-get install
, yum install
등)를 통해 PHP를 설치 한 경우 필요한 PHP 헤더 파일과 phpize 스크립트가 포함 된 PHP 용 -dev
패키지를 설치해야 빌드 환경을 작동 할 수 있습니다 . 패키지의 이름은 php5-dev
또는 php7-dev
와 같을 수도 있지만 패키지 관리자를 사용하여 배포판의 저장소를 사용하여 적절한 이름을 검색해야합니다. 그들은 다를 수 있습니다.
소스에서 PHP를 빌드 한 경우 헤더 파일은 시스템에 이미 존재할 가능성이 높습니다 ( 일반적 으로 /usr/include
또는 /usr/local/include
).
컴파일 단계
컴파일에 필요한 모든 전제 조건을 갖추 었는지 확인한 후 , pecl.php.net 으로 가서 컴파일하고자하는 확장을 선택하고 타르 볼을 다운로드하십시오.
- 타르 볼을 풉니 다 (예 :
tar xfvz yaml-2.0.0RC8.tgz
) - 압축 파일이 압축 해제 된 디렉토리를 입력하고
phpize
실행하십시오. - 이제 모든 것이 잘 되었다면 새로 생성 된
.configure
스크립트를.configure
합니다../configure
- 이제
make
를 실행해야합니다. 그러면make
가 확장을 컴파일합니다. - 마지막으로
make install
은 컴파일 된 확장 바이너리를 확장 디렉토리에 복사합니다.
make install
단계는 일반적으로 확장이 복사 된 설치 경로를 제공합니다. 이것은 보통 /usr/lib/
있으며, 예를 들어 /usr/lib/php5/20131226/yaml.so
와 같을 수 있습니다. 그러나 이것은 PHP 구성 (즉 --with-prefix
) 및 특정 API 버전에 따라 다릅니다. API 번호는 별도의 위치에 다른 API 버전 용으로 작성된 확장을 유지하기위한 경로에 포함됩니다.
PHP에서 확장 기능로드하기
PHP에서 확장을로드하려면 적절한 SAPI에 대해로드 된 php.ini 파일을 찾고 extension=yaml.so
를 추가 한 다음 PHP를 다시 시작하십시오. yaml.so
를 설치 한 실제 확장명으로 변경하십시오.
Zend 확장의 경우 공유 객체 파일의 전체 경로를 제공해야합니다. 그러나 일반적인 PHP 확장의 경우이 경로는로드 된 구성의 extension_dir
지시문이나 초기 설치 중에 $PATH
환경에서 파생됩니다.