수색…


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 으로 가서 컴파일하고자하는 확장을 선택하고 타르 볼을 다운로드하십시오.

  1. 타르 볼을 풉니 다 (예 : tar xfvz yaml-2.0.0RC8.tgz )
  2. 압축 파일이 압축 해제 된 디렉토리를 입력하고 phpize 실행하십시오.
  3. 이제 모든 것이 잘 되었다면 새로 생성 된 .configure 스크립트를 .configure 합니다. ./configure
  4. 이제 make 를 실행해야합니다. 그러면 make 가 확장을 컴파일합니다.
  5. 마지막으로 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 환경에서 파생됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow