소스에서 MongoDB PHP 드라이버 빌드

최신 버그 수정에 관심이 있는 드라이버 개발자와 사람들을 위해 » Github의 최신 소스 코드에서 드라이버를 컴파일할 수 있습니다. 다음 명령을 실행하여 프로젝트를 복제하고 빌드합니다.

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule update --init
$ phpize
$ ./configure
$ make all
$ sudo make install
                

시스템에 여러 버전의 PHP가 설치된 경우(예: macOS 기본 및 » XAMPP), 각 PHP 버전에는 고유한 phpize 명령과 php.ini 파일이 있습니다.

기본적으로 드라이버는 » libbson, » libmongoc» libmongocrypt의 번들 버전을 사용하고 자체적으로 구성을 시도합니다. 이러한 라이브러리가 이미 시스템 라이브러리로 설치된 경우 구성할 인수로 --with-libbson=yes --with--libmongoc=yes를 지정하여 드라이버에 이를 활용하도록 지시할 수 있습니다. 확장 버전 1.7.0부터 이러한 인수는 더 이상 사용되지 않으며 대신 --with-mongodb-system-libs=yes를 사용해야 합니다.

구성 옵션의 전체 목록을 보려면 configure --help를 실행하십시오.

libbson 및 libmongoc의 번들 버전을 사용할 때 드라이버는 구성을 위한 --with-mongodb-ssl 옵션에 따라 SSL 라이브러리 선택도 시도합니다. 기본값은 --with-mongodb-ssl=auto이며, Secure Transport(macOS만 해당), OpenSSL 및 LibreSSL을 순서대로 검색합니다. 또한 openssl, libressl 또는 darwin을 지정하여 각각 특정 라이브러리를 강제로 선택할 수 있습니다.

메모:

빌드 프로세스에서 SSL 라이브러리를 찾지 못하면 개발 패키지(예: libssl-dev)와 » pkg-config가 모두 설치되어 있는지 확인하세요.

macOS에서 Homebrew를 사용할 때 시스템에 여러 버전의 OpenSSL이 설치되어 있는 것이 일반적입니다. OpenSSL의 원하는 버전이 선택되었는지 확인하기 위해 PKG_CONFIG_PATH 환경 변수를 사용하여 pkg-config의 검색 경로를 제어할 수 있습니다. pkg-config가 사용되지 않는 경우 configure는 수동 검색 경로를 지정하는 데 사용할 수 있는 --with-openssl-dir=DIR 인수도 지원합니다(OpenSSL에만 해당).

최종 빌드 단계인 make install은 다음과 유사하게 mongodb.so가 설치된 위치를 보고합니다.

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20151012/
                

php.iniextension_dir 옵션이 mongodb.so가 설치된 디렉토리를 가리키는지 확인하십시오. 다음을 실행하여 옵션을 쿼리할 수 있습니다.

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 =>
                   /usr/lib/php/extensions/debug-non-zts-20151012
                

디렉토리가 다른 경우 php.ini에서 extension_dir을 변경하거나 mongodb.so를 올바른 디렉토리로 수동으로 이동하십시오.

마지막으로 php.ini 파일에 다음 줄을 추가합니다.

extension=mongodb.so