소스에서 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.ini의 extension_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