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

MongoDB에 연결

이 페이지의 내용

  • 개요
  • 샘플 애플리케이션
  • 연결
  • Atlas
  • 로컬 배포
  • 복제본 세트
  • TLS(전송 계층 보안)
  • TLS 활성화
  • 인증 기관(CA) 파일 지정
  • OCSP 검사 비활성화
  • 인증서 해지 목록(CRL) 지정
  • 클라이언트 인증서 제시
  • 인증서 키 파일 비밀번호 제공
  • 안전하지 않은 TLS 허용
  • 인증서 유효성 검사 비활성화
  • 호스트 이름 확인 사용 안 함
  • Stable API

이 페이지에는 다양한 설정을 사용하여 PHP 애플리케이션 을 MongoDB 에 연결하는 방법을 보여주는 코드 예제가 포함되어 있습니다.

이 페이지의 연결 옵션에 대해 자세히 알아보려면 각 섹션에 제공된 링크를 참조하세요.

이 페이지의 연결 예시 를 사용하려면 코드 예시 를 샘플 애플리케이션 또는 자체 애플리케이션 에 복사합니다. 코드 예제의 모든 자리 표시자(예: <hostname>)를 MongoDB deployment 관련 값으로 바꿔야 합니다.

다음 샘플 애플리케이션을 사용하여 이 페이지의 코드 예제를 테스트할 수 있습니다. 샘플 애플리케이션을 사용하려면 다음 단계를 수행하세요.

  1. 프로젝트 에 MongoDB PHP 라이브러리가 설치되어 있는지 확인합니다. MongoDB PHP 라이브러리 설치에 학습 보려면 다운로드 및 설치 가이드 를 참조하세요.

  2. 다음 코드를 복사하여 새 .php 파일에 붙여넣습니다.

  3. 이 페이지에서 코드 예제를 복사하여 파일의 지정된 줄에 붙여넣습니다.

1<?php
2
3require __DIR__ . '/../vendor/autoload.php';
4
5// Start example code here
6
7// End example code here
8
9try {
10 $client->test->command(['ping' => 1]);
11 echo 'Successfully pinged the MongoDB server.', PHP_EOL;
12} catch (MongoDB\Driver\Exception\RuntimeException $e) {
13 printf("Failed to ping the MongoDB server: %s\n", $e->getMessage());
14}

중요

백분율 인코딩

을(를) 퍼센트 인코딩 해야 합니다. 사용자 이름 과 비밀번호를 MongoDB URI에 포함하기 전에 확인합니다. 메서드를 사용하여 rawurlencode() RFC 3986 에 지정된 URI 구문에 따라 이러한 값을 인코딩할 수 있습니다. . 옵션 배열 매개변수로 사용자 이름이나 비밀번호를 MongoDB\Client 생성자에 전달할 때 사용자 이름 이나 비밀번호를 퍼센트 인코딩하지 마세요.

다음 코드는 MongoDB Atlas 배포서버 서버에 연결하는 방법을 보여줍니다.

$uri = '<Atlas connection string>';
$client = new MongoDB\Client($uri);

Atlas 배포서버 서버에 연결하는 방법에 학습 보려면 연결 대상 가이드 에서 Atlas 를 참조하세요.

다음 코드는 로컬 MongoDB deployment 에 연결하는 방법을 보여줍니다.

$uri = 'mongodb://localhost:27017/';
$client = new MongoDB\Client($uri);

참고

$uri 매개 변수를 지정하지 않으면 연결 URI는 기본적으로 'mongodb://127.0.0.1:27017' 로 설정됩니다.

로컬 배포에 연결하는 방법에 학습 보려면 연결 대상 가이드 의 로컬 배포 배포서버 참조하세요.

다음 코드는 복제본 세트 배포서버 에 연결하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<replica set member>:<port>/',
['replicaSet' => '<replica set name>'],
);
$uri = 'mongodb://<replica set member>:<port>/?replicaSet=<replica set name>';
$client = new MongoDB\Client($uri);

하나의 호스팅하다 가 다운되었을 때 복제본 세트 배포서버 에 대한 연결을 유지하려면 연결 URI에 여러 복제본 세트 멤버를 제공할 수 있습니다.

복제본 세트에 연결하는 방법에 학습 보려면 연결 대상 가이드 에서 복제본 세트 복제본 세트 참조하세요.

다음 코드는 MongoDB 인스턴스 에 대한 연결을 위해 TLS를 활성화 하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true';
$client = new MongoDB\Client($uri);

TLS 활성화에 학습 보려면 TLS 구성 가이드 에서 TLS 활성화 를 참조하세요.

다음 코드는 MongoDB 인스턴스 에 연결하기 위해 CA 파일 의 경로를 지정하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsCAFile' => '/path/to/ca.pem'],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCAFile=/path/to/ca.pem';
$client = new MongoDB\Client($uri);

CA 파일 지정에 학습 보려면 TLS 구성 가이드 에서 CA 파일 지정 을 참조하세요.

다음 코드는 운전자 가 OCSP 엔드포인트에 연결하지 못하도록 하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsDisableOCSPEndpointCheck' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsDisableOCSPEndpointCheck=true';
$client = new MongoDB\Client($uri);

OCSP 검사 비활성화에 학습 보려면 TLS 구성 가이드 의 OCSP 를 참조하세요.

다음 코드는 CRL과 비교하여 서버의 인증서를 확인하도록 운전자 에 지시하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true],
['crl_file' => '/path/to/file.pem'],
);

CRL 지정에 대해 자세히 알아보려면 TLS 구성 가이드의 인증서 해지 목록 을 참조하세요.

다음 코드는 운전자 가 MongoDB deployment 에 제공하는 클라이언트 인증서를 지정하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsCertificateKeyFile' => '/path/to/client.pem'],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/client.pem';
$client = new MongoDB\Client($uri);

클라이언트 인증서 지정에 학습 보려면 TLS 구성 가이드 의 클라이언트 인증서 제시 를 참조하세요.

다음 코드는 클라이언트 인증서의 비밀번호를 지정하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
[
'tls' => true,
'tlsCertificateKeyFile' => '/path/to/client.pem',
'tlsCertificateKeyFilePassword' => '<password>'
],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/client.pem&tlsCertificateKeyFilePassword=<password>';
$client = new MongoDB\Client($uri);

중요

연결 URI에서 자리 표시자를 바꿀 때 다음과 같이 <password> 퍼센트 인코딩 해야 합니다. 값.

키 파일 비밀번호 제공에 학습 보려면 TLS 구성 가이드 의 키 비밀번호 제공 을 참조하세요.

다음 코드는 인증서 유효성 검사호스트 이름 확인을 모두 비활성화하는 것과 동일한 효과가 있는 TLS 제약 조건을 완화하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsInsecure' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsInsecure=true';
$client = new MongoDB\Client($uri);

안전하지 않은 TLS 허용에 학습 보려면 TLS 구성 가이드 에서 안전하지 않은 TLS 허용 을 참조하세요.

경고

tlsInsecure 옵션을 true 로 설정하면 애플리케이션 이 보안 위험에 노출될 수 있습니다. 이 옵션을 활성화하면 애플리케이션 이 안전하지 않고 만료된 인증서와 유효한 클라이언트 인스턴스로 가장하는 외부 프로세스에 잠재적으로 취약해집니다.

다음 코드는 인증서 유효성 검사 를 비활성화하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsAllowInvalidCertificates' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidCertificates=true';
$client = new MongoDB\Client($uri);

인증서 유효성 검사 비활성화에 대한 학습 내용은 TLS 구성 가이드 에서 안전하지 않은 TLS 허용 을 참조하세요.

다음 코드는 호스트 이름 확인을 비활성화하는 방법을 보여줍니다.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsAllowInvalidHostnames' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidHostnames=true';
$client = new MongoDB\Client($uri);

호스트 이름 확인 비활성화에 학습 보려면 TLS 구성 가이드 에서 안전하지 않은 TLS 허용 을 참조하세요.

다음 코드는 MongoDB 인스턴스 에 대한 연결을 위해 Stable API 를 활성화 하는 방법을 보여줍니다.

$driverOptions = ['serverApi' => new MongoDB\Driver\ServerApi('1')];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
[],
$driverOptions,
);

Stable API 에 학습 보려면 Stable API 가이드 를 참조하세요.

돌아가기

다음 단계