Conecte-se ao MongoDB
Nesta página
- Visão geral
- Aplicativo de amostra
- Conexão
- Atlas
- Sistemas locais
- Conjunto de réplicas
- Segurança da camada de transporte (TLS)
- Habilitar TLS
- Especifique um arquivo de autoridade de certificação (CA)
- Desativar verificações OCSP
- Especifique uma lista de revogação de certificados (CRL)
- Apresentar um Certificado de Cliente
- Forneça uma senha para o arquivo de chave de certificado
- Permitir TLS Inseguro
- Desativar validação do certificado
- Desativar verificação de nome de host
- Stable API
Visão geral
Esta página contém exemplos de código que mostram como conectar seu aplicação PHP ao MongoDB com várias configurações.
Dica
Para saber mais sobre as opções de conexão nesta página, consulte o link fornecido em cada seção.
Para usar um exemplo de conexão desta página, copie o exemplo de código noaplicação de amostra ou em seu próprio aplicação. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <hostname>
, pelos valores relevantes para sua implantação do MongoDB .
Aplicativo de amostra
Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:
Verifique se a biblioteca PHP do MongoDB está instalada em seu projeto. Para saber mais sobre como instalar a biblioteca PHP do MongoDB , consulte o guia dedownload e instalação .
Copie o seguinte código e cole-o em um novo arquivo
.php
.Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.
1 2 3 require __DIR__ . '/../vendor/autoload.php'; 4 5 // Start example code here 6 7 // End example code here 8 9 try { 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 }
Importante
Codificação percentual
Você deve codificar por porcentagem um nome de usuário e senha antes de incluí-los em um URI MongoDB . Você pode usar o rawurlencode()
método para codificar esses valores de acordo com a sintaxe do URI especificada em RFC 3986. Não codifique o nome de usuário ou a senha ao passá-los em um parâmetro de array de opções para o construtor MongoDB\Client
.
Conexão
Atlas
O seguinte código mostra como se conectar a uma implantação do MongoDB Atlas :
$uri = '<Atlas connection string>'; $client = new MongoDB\Client($uri);
Para saber mais sobre como se conectar a um sistema do Atlas , consulte Atlas no guia Alvos de conexão.
Sistemas locais
O código a seguir mostra como se conectar a um MongoDB deployment local:
$uri = 'mongodb://localhost:27017/'; $client = new MongoDB\Client($uri);
Observação
Se você não especificar o parâmetro $uri
, o URI de conexão padrão será 'mongodb://127.0.0.1:27017'
.
Para saber mais sobre como se conectar a uma implantação local, consulte Implantações locais no guia Alvos de conexão.
Conjunto de réplicas
O código a seguir mostra como se conectar a um sistema de conjunto de réplicas:
$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);
Dica
Para manter sua conexão com um sistema do conjunto de réplicas quando um host está inativo, você pode fornecer vários membros do conjunto de réplicas no URI de conexão.
Para saber mais sobre como se conectar a um conjunto de réplicas, consulte Conjuntos de réplicas no guia Alvos de conexão.
Segurança da camada de transporte (TLS)
Habilitar TLS
O código a seguir mostra como habilitar o TLS para a conexão com sua instância do MongoDB :
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true], );
$uri = 'mongodb://<hostname>:<port>/?tls=true'; $client = new MongoDB\Client($uri);
Para saber mais sobre como habilitar o TLS, consulte Habilitar TLS no guia Configuração do TLS.
Especifique um arquivo de autoridade de certificação (CA)
O código a seguir mostra como especificar o caminho do arquivo CA para a conexão com a instância do MongoDB :
$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);
Para saber mais sobre como especificar um arquivo CA, consulte Especificar um arquivo CA no guia de configuração TLS.
Desativar verificações OCSP
O seguinte código mostra como impedir que o driver entre em contato com o endpoint 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);
Para saber mais sobre como desativar as verificações OCSP, consulte OCSP no guia de configuração do TLS.
Especifique uma lista de revogação de certificados (CRL)
O seguinte código mostra como instruir o driver a verificar o certificado do servidor em relação a uma CRL:
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true], ['crl_file' => '/path/to/file.pem'], );
Para saber mais sobre como especificar uma CRL, consulte Lista de revogação de certificados no guia de configuração do TLS.
Apresentar um Certificado de Cliente
O seguinte código mostra como especificar o certificado do cliente que o driver apresenta para sua implantação MongoDB :
$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);
Para saber mais sobre como especificar um certificado de cliente , consulte Apresentar um certificado de cliente no guia de configuração do TLS.
Forneça uma senha para o arquivo de chave de certificado
O seguinte código mostra como especificar a senha do seu certificado de cliente :
$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);
Importante
Ao substituir o <password>
espaço reservado no URI de conexão, certifique-se de codificar por cento o valor.
Para saber mais sobre como fornecer uma senha de arquivo de chave, consulte Fornecer uma senha de chave no guia Configuração TLS.
Permitir TLS Inseguro
O código a seguir mostra como relaxar as restrições de TLS, que tem o mesmo efeito que desabilitar a validação do certificado e a verificação do nome do host:
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsInsecure' => true], );
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsInsecure=true'; $client = new MongoDB\Client($uri);
Para saber mais sobre como permitir TLS inseguro, consulte Permitir TLS Inseguro no guia Configuração de TLS.
Aviso
Definir a opção tlsInsecure
como true
pode expor seu aplicação a riscos de segurança. A ativação dessa opção torna seu aplicação desprotegido e potencialmente vulnerável a certificados expirados e a processos externos que se apresentam como instâncias de cliente válidas.
Desativar validação do certificado
O seguinte código mostra como desabilitar a validação do certificado:
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsAllowInvalidCertificates' => true], );
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidCertificates=true'; $client = new MongoDB\Client($uri);
Para saber mais sobre como desativar a validação do certificado, consulte Permitir TLS inseguro no guia Configuração de TLS.
Desativar verificação de nome de host
O seguinte código mostra como desabilitar a verificação de nome de host:
$client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', ['tls' => true, 'tlsAllowInvalidHostnames' => true], );
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidHostnames=true'; $client = new MongoDB\Client($uri);
Para saber mais sobre como desativar a verificação de nome de host, consulte Permitir TLS inseguro no guia Configuração de TLS.
Stable API
O seguinte código mostra como habilitar a Stable API para a conexão com sua instância do MongoDB :
$driverOptions = ['serverApi' => new MongoDB\Driver\ServerApi('1')]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>/', [], $driverOptions, );
Para saber mais sobre a Stable API, consulte o guia da Stable API .