Se você pretende trabalhar com o banco NoSQL MongoDB no Apache utilizando o Windows, será necessário baixar um arquivo de DLL e habilitar a extensão no arquivo de configurações do PHP.ini.
É importante se atentar a versão do PHP que você está utilizando, já que será necessário baixar uma DLL compatível com sua versão do PHP. Vale a pena se atentar também nas funcionalidades disponíveis para o driver, pois se você estiver usando um PHP 5.6, por exemplo, algumas funções podem não estar disponíveis comparado com o driver para o PHP 7.4.
Para garantir que vamos baixar a versão de DLL correta, abra o terminal do Windows e digite o comando abaixo para visualizar a versão do PHP. No nosso caso, obtivemos o resultado PHP 7.4.27, ou seja, temos que baixar uma DLL compatível com a versão 7.4.
php -v
Agora que sabemos qual a versão do PHP que estamos utilizando, devemos acessar a página PECL MongoDB, nela veremos uma lista de versões de DLLs disponíveis. Perceba que na frente de cada versão, tem um link para a DLL, clicando nela uma nova página com as DLLs para essa versão, será carregada.
Para a versão da DLL, o suporte ao PHP muda, como, por exemplo, nós clicamos na versão mais recente, que possui suporte para o PHP 8.0, 8.1 e para o 7.4. Agora basta escolher a versão x64 ou x86 e se é Thread Safe ou não, por fim, clique no link referente a sua escolha para iniciar o download da DLL.
Adicione a extensão abaixo no arquivo de configurações do PHP.ini, por fim, reinicie o Apache.
extension=php_mongodb.dll
Utilizando o pacote MongoDB, criei um arquivo com o código abaixo. Ao executá-lo, você verá a lista com todos os bancos criados, julgando assim se a conexão com o driver instalado está funcionando ou não.
<?php
//Requisitando o vendor autoload
require_once('../vendor/autoload.php');
//Utilizamos o cliente mongo
use MongoDB\Client;
//Iniciamos uma nova conexão com o mongo através do servidor local e porta padrão
$mongo = new Client('mongodb://localhost:27017');
//Obtemos a lista de bancos existentes
$bases = $mongo->listDatabases();
//Percorremos todos os bancos existentes
foreach ($bases as $base) {
//Obtemos o nome do banco
echo $base->getName() . '<br>';
}