MongoDB PHP 드라이버
이 페이지의 내용
서론
공식 MongoDB PHP 드라이버의 문서 사이트에 오신 것을 환영합니다. 애플리케이션에 드라이버를 추가하여 PHP에서 MongoDB를 사용할 수 있습니다. MongoDB PHP 드라이버는 다음과 같은 구성 요소로 이루어져 있습니다.
확장는 저수준 API를 제공하고 주로 libmongoc 및 libbson을 PHP와 통합하는 역할을 합니다.
라이브러리는 다른 MongoDB 언어 드라이버와 일치하는 MongoDB 데이터베이스용 고수준 API를 제공합니다.
확장을 단독으로 사용할 수도 있지만 MongoDB는 확장과 라이브러리를 함께 사용할 것을 권장합니다. PHP 드라이버의 구성 요소에 대해 자세히 알아보려면 이 페이지의 드라이버 아키텍처 섹션을 참조하세요.
다음 링크를 통해 드라이버에 대해 자세히 알아보고, 실행 가능한 프로젝트 설정에 대한 튜토리얼 콘텐츠에 액세스하세요:
드라이버 아키텍처
이 섹션에서는 PHP 드라이버의 구성 요소가 함께 작동하는 방식을 설명합니다. 이러한 구성 요소는 다음과 같은 일반적인 카테고리에 속합니다.
라이브러리 및 기타 통합을 포함하는 고급 API
시스템 라이브러리를 통합하는 확장을 포함하는 확장 프로그램
C 드라이버, BSON 라이브러리 및 암호화 라이브러리가 포함된 시스템입니다.
다음 다이어그램은 PHP 드라이버 구성 요소의 아키텍처를 보여줍니다.
PHP 라이브러리는 다른 MongoDB 드라이버와 일관된 API를 제공합니다. 라이브러리는 드라이버 간 사양을 충족하기 위해 지속적으로 업데이트됩니다. 대부분의 PHP 애플리케이션에서는 MongoDB에 액세스하려면 라이브러리를 종속성으로 추가해야 합니다.
이 확장 프로그램은 PECL을 사용해 분산되며, PHP를 시스템 라이브러리에 연결합니다. 확장 프로그램의 공개 API는 다음과 같은 기능을 제공합니다.
연결 관리
BSON 인코딩 및 디코딩
객체 문서 직렬화
명령 실행
커서 관리
시스템 라이브러리에 대해 자세히 알아보려면 C 드라이버 문서를 참조하세요.
호환되는 MongoDB 배포에 연결하기
다음 환경에 호스팅된 배포에 연결하기 위해 PHP 드라이버를 사용할 수 있습니다:
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: 구독 기반의 자체 관리형 MongoDB 버전입니다.
MongoDB Community: 소스 사용 가능하고, 무료로 사용할 수 있는 자체 관리형 MongoDB 버전
설치
먼저 시스템에 최신 버전의 PHP가 설치되어 있는지 확인합니다. 다운로드 및 설치 지침은 공식 PHP 매뉴얼을 참조하세요.
MongoDB용 PHP 라이브러리를 설치하기 전에 PHP MongoDB 확장 프로그램을 설치하세요. 명령줄에서 PECL을 사용하여 확장을 설치할 수 있습니다.
sudo pecl install mongodb
마지막으로 php.ini
파일에 다음 줄을 추가합니다:
extension=mongodb.so
참고
일부 시스템에서는 개별 SAPI에 대해 여러 개의 INI 파일이 있을 수 있습니다(예 CLI, FPM). 필요한 모든 SAPI에서 확장을 활성화해야 합니다.
PHP 라이브러리를 설치하는 기본 방법은 Composer를 사용하여 프로젝트 루트에서 다음을 실행하는 것입니다.
composer require mongodb/mongodb
라이브러리를 설치한 후에는 다음 예시와 같이 애플리케이션에 Composer의 자동 로더가 포함되어 있는지 확인하세요.
require_once __DIR__ . '/vendor/autoload.php';
추가 설치 지침은 라이브러리 문서에서 확인할 수 있습니다.
MongoDB Atlas에 연결
다음 연결 스니펫을 사용하여 Atlas에서 MongoDB deployment에 대한 연결을 테스트할 수 있습니다.
use Exception; use MongoDB\Client; use MongoDB\Driver\ServerApi; // Replace the placeholder with your Atlas connection string $uri = '<connection string>'; // Specify Stable API version 1 $apiVersion = new ServerApi(ServerApi::V1); // Create a new client and connect to the server $client = new MongoDB\Client($uri, [], ['serverApi' => $apiVersion]); try { // Send a ping to confirm a successful connection $client->selectDatabase('admin')->command(['ping' => 1]); echo "Pinged your deployment. You successfully connected to MongoDB!\n"; } catch (Exception $e) { printf($e->getMessage()); }
연결 스니펫은 Stable API(Stable API) 기능을 사용합니다. 이 기능은 PHP 드라이버 v1.9 이상 사용 시 활성화할 수 있으며 MongoDB Server v5.0 이상에 연결할 때에도 사용됩니다. 이 기능을 사용하면 Stable API에서 다루는 모든 명령의 하위 호환성 문제에 대한 걱정 없이 드라이버나 서버를 업데이트할 수 있습니다.
Stable API 기능에 대해 자세히 알아보려면 서버 매뉴얼에서 Stable API를 참조하세요.
참고
2022년 2월부터 버전이 지정된 API는 Stable API로 표시됩니다. 이름은 변경되나 모든 개념과 기능은 동일하게 유지됩니다.
Stable API 없이 MongoDB Atlas에 연결하기
Stable API 기능에 대한 지원이 없는 MongoDB 버전 또는 드라이버를 사용하는 경우, 다음 코드 스니펫을 사용하여 Atlas에서 MongoDB 배포에 대한 연결을 테스트할 수 있습니다.
use Exception; use MongoDB\Client; // Replace the placeholder with your Atlas connection string $uri = '<connection string>'; // Create a new client and connect to the server $client = new MongoDB\Client($uri); try { // Send a ping to confirm a successful connection $client->selectDatabase('admin')->command(['ping' => 1]); echo "Pinged your deployment. You successfully connected to MongoDB!\n"; } catch (Exception $e) { printf($e->getMessage()); }
로컬 기계에서 MongoDB Server에 연결하기
Atlas 클러스터를 사용하는 대신 개발 목적으로 로컬 컴퓨터에서 MongoDB 서버를 실행해야 하는 경우, 다음을 완료해야 합니다:
MongoDB Server의 Community 또는 Enterprise 버전을 다운로드하세요.
MongoDB 서버를 설치하고 구성합니다.
서버를 시작합니다.
중요
악의적인 공격으로부터 항상 MongoDB 서버를 보호하세요. 보안 체크리스트에서 보안 권장 사항 목록을 확인하세요.
MongoDB Server를 성공적으로 시작한 후에는 드라이버 연결 코드에 연결 문자열을 지정하세요.
MongoDB Server가 로컬에서 실행되는 경우 연결 문자열("mongodb://localhost:<port>"
)을 사용할 수 있습니다. 여기서 <port>
는 서버가 들어오는 연결을 수신하도록 구성한 포트 번호입니다.
다른 호스트 이름 또는 IP 주소를 지정해야 하는 경우 연결 문자열에 대한 서버 매뉴얼 항목을 참조하세요.
서버에 연결할 수 있는지 테스트하려면 MongoDB Atlas에 연결 코드 예시에서 연결 문자열을 바꾸고 실행하세요.
호환성
32비트 플랫폼에서 64비트 정수를 나타내는 데 문제가 발생할 수 있으므로 사용자는 64비트 환경을 사용하는 것이 좋습니다. 32비트 플랫폼을 사용하는 경우, 데이터베이스에서 읽은 64비트 정수는 PHP 정수 유형이 아닌 MongoDB\BSON\Int64 인스턴스로 반환되니 참고하시기 바랍니다.
MongoDB 호환성
다음 호환성 표는 MongoDB의 특정 버전과 함께 사용할 PHP 드라이버의 권장 버전을 명시합니다.
첫 번째 열에는 드라이버 버전이 나열됩니다.
중요
MongoDB는 서버 버전의 수명 종료(EOL) 날짜 이후 3년 동안 MongoDB Server와 드라이버 간의 호환성을 보장합니다. MongoDB 릴리스 및 EOL 날짜에 대한 자세한 내용은 MongoDB 소프트웨어 수명 주기 일정을 참조하세요.
PHP 드라이버 버전 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 |
---|---|---|---|---|---|---|---|---|
ext + lib 1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext + lib 1.16 ~ 1.19 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ext + lib 1.15 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
언어 호환성
다음 호환성 표는 PHP의 특정 버전과 함께 사용할 PHP 드라이버의 권장 버전을 명시합니다.
첫 번째 열에는 드라이버 버전이 나열됩니다.
PHP 드라이버 버전 | PHP 8.4 | PHP 8.3 | PHP 8.2 | PHP 8.1 | PHP 8.0 | PHP 7.4 | PHP 7.3 | PHP 7.2 |
---|---|---|---|---|---|---|---|---|
ext + lib 1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ext + lib 1.17 ~ 1.19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ext + lib 1.16 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext + lib 1.15 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
호환성 표를 읽는 방법에 대한 자세한 내용은 MongoDB 호환성 표에 대한 가이드를 참조하세요.
도움 받기
MongoDB Community 포럼에서 질문하세요.
지원 채널을 방문하세요.