Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼

MongoDB PHP 라이브러리 시작하기

MongoDB PHP 라이브러리는 MongoDB PHP 확장을 추상화한 것으로, 이를 사용하여 MongoDB 에 연결하고 배포서버 서버에 저장된 데이터와 상호 작용 수 있습니다. 이 가이드 에서는 MongoDB PHP 라이브러리를 사용하여 MongoDB Atlas 에서 호스팅되는 MongoDB cluster 에 연결하고 클러스터 의 데이터를 쿼리 하는 애플리케이션 을 만드는 방법을 설명합니다.

MongoDB Atlas는 관리형 클라우드 데이터베이스 서비스로, MongoDB deployment를 호스팅합니다. 이 가이드의 단계에 따라 자체 무료(신용카드 필요 없음) MongoDB Atlas 배포서버를 생성할 수 있습니다.

이 가이드 에 따라 샘플 PHP 애플리케이션 을 MongoDB Atlas 배포서버 서버에 연결합니다. 다른 운전자 또는 프로그래밍 언어 를 사용하여 MongoDB 에 연결하려는 경우 공식 드라이버 목록을 참조하세요.

1

개발을 시작하기 전에 로컬 시스템에 다음 종속성이 설치되어 있는지 확인합니다.

2

다음 명령을 실행하여 mongodb PHP 확장을 설치합니다.

pie install mongodb/mongodb-extension

PHP 확장 버전 지정

특정 버전의 PHP 확장을 설치하려면 다음 명령에 표시된 버전 번호를 포함하세요.

pie install mongodb/mongodb-extension:^2.1.1

v 이전의 PHP 확장 버전을 설치하려면1.21 pecl 명령을사용해야 합니다.

3

루트 디렉토리 의 shell 에서 다음 명령을 실행 하여 이 프로젝트 에 대해 php-quickstart 디렉토리 를 만듭니다.

mkdir php-quickstart

운영 체제에 해당하는 탭 을 선택하고 다음 명령을 실행 하여 php-quickstart 디렉토리 에 quickstart.php 애플리케이션 파일 을 만듭니다.

cd php-quickstart
touch quickstart.php
cd php-quickstart
type nul > quickstart.php
4

MongoDB PHP 라이브러리를 설치하려면 php-quickstart 디렉토리 에서 다음 명령을 실행 합니다.

composer require mongodb/mongodb

라이브러리를 설치한 후 quickstart.php 파일 상단에 다음 코드를 추가하여 컴포저의 autoload.php 파일 을 포함합니다.

<?php
require_once __DIR__ . '/vendor/autoload.php';

이 단계를 완료하면 새 프로젝트 디렉토리, 새 애플리케이션 파일 및 라이브러리 종속성이 설치됩니다.

MongoDB Atlas에 프리 티어 MongoDB 배포를 생성하여 데이터를 저장하고 관리할 수 있습니다. MongoDB Atlas는 클라우드에서 MongoDB database를 호스팅하고 관리합니다.

1

Atlas 시작하기 가이드를 완료하여 새 Atlas 계정을 설정하고 새로운 프리 계층 MongoDB 배포서버에 샘플 데이터를 로드하세요.

2

데이터베이스 사용자를 생성한 후 해당 사용자의 데이터베이스 사용자 이름 과 데이터베이스 비밀번호를 안전한 위치 에 저장하여 다음 단계에서 사용할 수 있습니다.

이 단계를 완료하면 Atlas에 새로운 프리 티어 MongoDB 배포서버, 데이터베이스 사용자 자격 증명 및 샘플 데이터가 데이터베이스에 로드됩니다.

연결 문자열이라고도 하는 연결 URI을 제공하여 MongoDB 배포서버에 연결할 수 있으며, 이 연결 문자열은 드라이버에 MongoDB 배포서버로 연결하는 방법과 연결된 동안 동작하는 방법을 지시합니다.

연결 문자열에는 배포서버의 호스트 이름 또는 IP 주소와 포트, 인증 메커니즘, 해당되는 경우 사용자 자격 증명, 연결 옵션 등이 포함됩니다.

Atlas 에서 호스팅되지 않는 인스턴스 또는 배포서버 에 연결하려면 연결 대상 선택을 참조하세요.

1

이전 단계에서 만든 배포서버에 대한 연결 문자열 조회 하려면 Atlas 계정에 로그인 Database 섹션으로 이동한 다음 새 배포서버에 대한 Connect 버튼을 클릭합니다.

Atlas UI의 클러스터 섹션에 있는 연결 버튼

그런 다음 Select database user 선택 메뉴에서 사용자를 선택합니다. Driver 선택 메뉴에서 "PHP"를 선택하고 Version 선택 메뉴에서 설치한 버전과 가장 일치하는 버전을 선택합니다.

연결 string 만 보려면 Add connection string into your application code 단계에서 String 탭 을 선택합니다.

2

다음 스크린샷과 같이 연결 string 오른쪽에 있는 버튼을 클릭하여 클립보드에 복사합니다.

UI 의 연결 옆에 있는 복사 버튼 string Atlas
3

이 연결 문자열을 원하는 텍스트 편집기의 파일에 붙여넣고 <username><password> 자리 표시자를 데이터베이스 사용자의 사용자 이름 및 비밀번호로 바꿉니다.

다음 단계에서 사용할 수 있도록 이 파일을 안전한 위치에 저장합니다.

이 단계를 완료하면 클러스터 에 해당하는 연결 string Atlas 이 생성됩니다.

배포서버 서버에 대한 연결 을 검색한 후 string MongoDB Atlas PHP 애플리케이션 에서 배포서버 서버에 연결하고 Atlas 샘플 데이터 세트를 쿼리 할 수 있습니다.

1

다음 코드를 복사하여 sample_mflix 데이터베이스 의 movies 컬렉션 을 쿼리하는 quickstart.php 파일 에 붙여넣습니다.

<?php
require __DIR__ . '/../vendor/autoload.php';
$uri = getenv('MONGODB_URI') ?: throw new RuntimeException(
'Set the MONGODB_URI environment variable to your Atlas URI',
);
$client = new MongoDB\Client($uri);
$collection = $client->sample_mflix->movies;
$filter = ['title' => 'The Shawshank Redemption'];
$result = $collection->findOne($filter);
if ($result) {
echo json_encode($result, JSON_PRETTY_PRINT);
} else {
echo 'Document not found';
}
2

이 가이드의 연결 문자열 만들기 단계에서 복사한 연결 문자열에 MONGODB_URI 환경 변수를 할당합니다. 다음 탭에 표시된 대로 셸 명령을 실행 하거나 애플리케이션 에 .env 파일 만들어 이 변수를 할당할 수 있습니다.

export MONGODB_URI=<connection string>
MONGODB_URI=<connection string>
3

프로젝트 디렉토리 에서 다음 shell 명령을 실행 하여 애플리케이션 을 시작합니다.

php quickstart.php

명령줄 출력에는 검색된 영화 문서에 대한 세부 정보가 포함됩니다.

{
"_id": {
"$oid": "..."
},
...
"rated": "R",
"metacritic": 80,
"title": "The Shawshank Redemption",
...
}

오류가 발생하거나 출력이 표시되지 않는 경우 MONGODB_URI 환경 변수에 적절한 연결 string 을 할당하고 샘플 데이터를 로드했는지 확인합니다.

이 단계를 완료하면 MongoDB deployment 에 연결하고, 샘플 데이터에 대해 쿼리 를 실행하고, 일치하는 문서 를 반환하는 PHP 애플리케이션 을 갖게 됩니다.

빠른 시작 튜토리얼을 완료하신 것을 축하드립니다!

참고

이 튜토리얼에서 문제가 실행 하면 MongoDB Community 포럼 에서 도움을 요청하거나 이 페이지의 오른쪽 또는 오른쪽 하단에 있는 Rate this page 탭 사용하여 피드백 제출 .

이 튜토리얼에서는 MongoDB Atlas 에서 호스팅되는 MongoDB deployment 서버에 연결하고 쿼리 와 일치하는 문서 를 검색하는 PHP 애플리케이션 을 만들었습니다.

다음 리소스에서 MongoDB PHP 라이브러리에 자세히 보기 .

이 섹션에서는 PHP 라이브러리 및 해당 종속성을 설치할 때 발생할 수 있는 문제에 대해 설명합니다.

PHP 라이브러리를 설치할 때 다음 코드와 유사한 헤더 파일 오류가 표시될 수 있습니다.

/private/tmp/pear/install/mongodb/php_phongo.c:24:10: fatal error: 'php.h' file not found
#include <php.h>
^~~~~~~

이 오류는 PHP의 빌드 시스템이 필요한 헤더를 찾을 수 없음을 나타냅니다. 모든 PHP 확장을 컴파일하려면 헤더가 필요합니다. 이러한 헤더는 확장이 사용될 PHP 런타임과 일치해야 합니다. peclpie에 의해 호출되는 phpize 명령은 일반적으로 확장이 올바른 헤더로 빌드되도록 합니다.

PHP 런타임을 설치하는 경우 해당 헤더를 항상 자동으로 사용할 수 있는 것은 아닙니다. 많은 Linux 배포판에서 헤더는 별도의 또는 패키지 로 게시되는 경우가 php-dev php-devel 많습니다. macOS에서는 기본값 PHP 런타임에 헤더가 포함되지 않습니다. 사용자는 일반적으로 Homebrew를 사용하여 PHP 와 해당 헤더를 설치해야 합니다.

시스템에 여러 버전의 PHP 설치된 경우 각 버전에는 고유한 pecl, piephpize 명령이 있습니다. 또한 각 PHP 런타임에는 FPM 및 CLI 와 같은 각 서버 SAPI( 애플리케이션 프로그래밍 인터페이스)에 대해 별도의 php.ini 파일이 있을 수 있습니다. 확장을 설치했지만 런타임에 사용할 수 없는 경우 올바른 pecl 또는 pie 명령을 사용하고 적절한 php.ini 파일 수정하는지 확인하세요.

php.ini PHP 런타임에서 사용하는 파일 확인하려면 해당 특정 SAPI에 대한 phpinfo()의 출력을 확인합니다. 또한 php_ini_loaded_file()php_ini_scanned_files()를 사용하여 PHP 가 어떤 INI 파일을 로드했는지 확인할 수 있습니다.

확장 프로그램이 로드되지 않은 경우 문제를 디버깅하려면 도구 디렉토리 에 제공된 detect-extension 스크립트 사용할 수 있습니다. 이 스크립트 CLI 에서 실행 하거나 웹 서버 에서 사용할 수 있는 스크립트 에 포함할 수 있습니다. 이 도구는 시스템의 잠재적인 문제와 설치 지침을 찾습니다. 컴포저를 사용하여 라이브러리를 설치한 경우 다음 코드에 표시된 대로 벤더 디렉토리 에서 스크립트 호출할 수 있습니다.

php vendor/mongodb/mongodb/tools/detect-extension.php

웹 서버 SAPI의 구성을 확인하려면 웹 서버 에서 사용할 수 있는 스크립트 에 파일 포함하고 브라우저에서 엽니다. 다음 코드에 표시된 대로 출력 형식을 올바르게 지정하려면 스크립트 <pre> 태그로 래핑해야 합니다.

<pre><?php require(...); ?></pre>

Windows 바이너리는 PHP 버전, 스레드 안전성 설정(TS 또는 NTS) 및 아키텍처 유형(x86 또는 x64)의 여러 조합에 사용할 수 있습니다. 올바른 바이너리를 선택하지 못하면 다음 샘플 출력과 같이 런타임에 확장 DLL을 로드하려고 할 때 오류가 발생합니다.

PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb'

다음 PHP 런타임 속성에 해당하는DLL을 다운로드했는지 확인합니다.

  • PHP 버전(PHP_VERSION)

  • 스레드 안전성(PHP_ZTS)

  • 아키텍처 (PHP_INT_SIZE)

위의 상수 외에도 이러한 속성은 phpinfo() 에서 추론할 수도 있습니다. 시스템에 여러 PHP 런타임이 설치된 경우 phpinfo() 올바른 환경에 대한 출력을 확인합니다.

이전 섹션에서 설명한 detect-extension 스크립트 사용하여 PHP 환경에 맞는 올바른 DLL을 결정할 수도 있습니다.

돌아가기

MongoDB PHP 라이브러리