Habilitando e Utilizando o MongoDB no ServBay (Extensão PHP & Serviço do Banco de Dados)
O ServBay é um ambiente local de desenvolvimento web poderoso, desenvolvido especialmente para programadores. Ele integra diversos servidores web, linguagens de programação e bancos de dados, além de oferecer uma vasta gama de extensões e ferramentas já pré-configuradas. Para desenvolvedores PHP que precisam trabalhar com MongoDB, o ServBay facilita tanto a ativação da extensão MongoDB do PHP quanto a execução do serviço do banco de dados MongoDB.
Neste artigo, você verá em detalhes como habilitar a extensão MongoDB no PHP, iniciar o serviço MongoDB e exemplos práticos de como conectar e usar o MongoDB em projetos PHP.
Visão Geral: ServBay & MongoDB
O MongoDB é um banco de dados NoSQL orientado a documentos, de alto desempenho e código aberto. Sua flexibilidade de modelo de dados e excelente escalabilidade o tornam muito popular em aplicações web modernas.
O ServBay inclui o MongoDB como um de seus pacotes integrados, permitindo que os desenvolvedores implantem e gerenciem instâncias do MongoDB facilmente no ambiente local. Além disso, o ServBay já traz as extensões MongoDB (mongodb.so
) pré-compiladas para cada versão do PHP, tornando possível a integração do PHP com o MongoDB.
Para utilizar o MongoDB em seus projetos PHP, são necessários dois passos principais:
- Habilitar a extensão MongoDB do PHP: Isso permite que seu código PHP faça chamadas para funções associadas ao MongoDB.
- Iniciar o serviço de banco de dados MongoDB: É o serviço que realmente armazena e gerencia seus dados.
A interface gráfica do ServBay (GUI) torna essas etapas fáceis e acessíveis para o desenvolvedor.
Versões da Extensão PHP MongoDB
O ServBay oferece a extensão MongoDB correspondente para cada versão suportada do PHP. Os números exatos das versões podem variar conforme o ServBay é atualizado, mas normalmente são fornecidas versões estáveis e compatíveis para cada PHP. Veja abaixo algumas das combinações mais comuns (confirme na sua instalação do ServBay para garantir):
- PHP 5.6, 7.0: MongoDB 1.7.5
- PHP 7.1, 7.2, 7.3, 7.4: MongoDB 1.11.1
- PHP 8.0, 8.1, 8.2, 8.3: MongoDB 1.15.0
- PHP 8.4: MongoDB 1.19.1
Atenção: a extensão PHP (mongodb.so
) apenas fornece a capacidade de comunicação entre PHP e MongoDB. Para interagir com o banco em seu código, recomenda-se o uso do driver oficial do MongoDB para PHP, normalmente instalado via Composer.
Habilitando a Extensão MongoDB no PHP
Por padrão, certos módulos do PHP podem não estar ativados para manter o ambiente enxuto. O modo mais recomendável de ativar a extensão do MongoDB é através da interface gráfica do ServBay.
Habilitando via GUI do ServBay
O processo mais simples e rápido é este:
- Abra o aplicativo ServBay.
- No menu de navegação à esquerda, clique em Linguagens (Languages) e selecione PHP.
- Escolha a versão do PHP na qual deseja habilitar a extensão MongoDB (exemplo,
PHP 8.4
). - No painel à direita, encontre a seção Extensões (Extensions).
- Role para baixo até localizar
MongoDB
. - Clique no interruptor ao lado de
MongoDB
para alternar de cinza (desativado) para verde (ativado). - Clique no botão Salvar (Save) ao final do painel.
O ServBay irá automaticamente ajustar o arquivo de configuração do PHP e reiniciar o serviço afetado para aplicar as mudanças.
Editando Manualmente o Arquivo de Configuração (Opcional)
Se preferir configuração manual ou precisa de ajustes avançados, a alteração pode ser feita editando o arquivo de configuração do PHP diretamente. Mas na maioria dos casos, a GUI já é suficiente.
Localize o diretório
conf.d
da versão do PHP desejada. Por exemplo, para habilitar o MongoDB no PHP 8.3:bash/Applications/ServBay/etc/php/8.3/conf.d/mongodb.ini
1Ajuste o caminho de acordo com sua instalação do ServBay e a versão do PHP utilizada.
Abra o arquivo
mongodb.ini
em um editor de texto.Encontre as linhas:
ini[MongoDB] ; Uncomment the following line to enable MongoDB ;extension = mongodb.so
1
2
3Remova o ponto e vírgula
;
antes deextension = mongodb.so
para descomentar:ini[MongoDB] ; Uncomment the following line to enable MongoDB extension = mongodb.so
1
2
3Salve o arquivo.
Importante: Após alterar manualmente, reinicie o serviço PHP correspondente para aplicar as modificações. Na GUI do ServBay, clique em Pacotes (Packages), localize a versão do PHP modificada e clique no botão de reinício (normalmente um ícone circular de seta).
Iniciando o Serviço do Banco de Dados MongoDB
Ativar a extensão do PHP só permite a comunicação com MongoDB, mas é preciso subir o serviço do banco de dados para que haja de fato um banco funcional. O MongoDB está disponível como um pacote no ServBay, e pode ser iniciado facilmente via GUI.
- Abra o ServBay.
- No menu à esquerda, clique em Pacotes (Packages).
- No grupo Bancos de Dados (Databases), localize o
MongoDB
. - Ative o serviço clicando no interruptor ao lado de
MongoDB
, mudando de cinza (parado) para verde (em execução).
O serviço MongoDB iniciará na porta padrão 27017
.
Verificando a Extensão e Conexão com o MongoDB
Após as etapas anteriores, confira se a extensão MongoDB está realmente carregada no PHP e se o serviço MongoDB está operacional.
Conferindo se a Extensão PHP foi Carregada
Crie um arquivo PHP simples para checar a saída do phpinfo()
:
- No diretório root do seu site no ServBay (ex.:
/Applications/ServBay/www
), crie o arquivophpinfo.php
. - Insira este conteúdo:php
<?php phpinfo(); ?>
1
2
3 - Acesse este arquivo no navegador, por exemplo:
https://servbay.demo/phpinfo.php
(considerando queservbay.demo
aponta para o diretóriowww
do ServBay). - Procure pela seção "MongoDB" na página. Se a extensão foi carregada corretamente, verá uma seção "mongodb" com informações de versão e configuração.
(Observação: a captura pode variar conforme a versão do seu ServBay ou interface.)
Testando a Conexão com o Banco de Dados
Crie um script PHP básico para testar a conexão local ao MongoDB:
- Confirme que você instalou o driver oficial do MongoDB via Composer em seu projeto. Senão, no terminal, navegue até a pasta do projeto e execute:bash
composer require mongodb/mongodb
1 - Crie o arquivo
test_mongodb.php
no seu projeto. - Insira este código:php
<?php require __DIR__ . '/vendor/autoload.php'; // Ajuste o caminho conforme sua estrutura echo "Tentando conectar ao MongoDB...\n"; try { // Conectando ao MongoDB local, porta padrão 27017 $client = new MongoDB\Client("mongodb://localhost:27017"); // Tenta listar os bancos de dados para validar a conexão $listDatabases = $client->listDatabases(); echo "Conexão realizada com sucesso ao MongoDB!\n"; echo "Bancos de dados disponíveis:\n"; foreach ($listDatabases as $databaseInfo) { echo "- " . $databaseInfo->getName() . "\n"; } } catch (\MongoDB\Driver\Exception\Exception $e) { echo "Falha ao conectar ao MongoDB: " . $e->getMessage() . "\n"; } ?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 - Execute este script via terminal (usando a versão PHP do ServBay) ou acesse-o via web. Conexão bem-sucedida exibirá mensagem de sucesso e a lista de bancos. Em caso de erro, a mensagem ajudará a diagnosticar (ex.: serviço do MongoDB parado).
Utilizando o MongoDB em Código PHP
Com a extensão PHP e o serviço MongoDB ativos, basta utilizar o driver oficial instalado via Composer para consumir o banco nos seus projetos PHP.
Instalando o Driver do MongoDB via Composer
Como já mencionado, instale o driver oficial:
composer require mongodb/mongodb
O pacote mongodb/mongodb
e suas dependências serão adicionados, além do autoloader em vendor/autoload.php
.
Exemplo de Código
Veja um exemplo de conexão, inserção e consulta em MongoDB:
<?php
require __DIR__ . '/vendor/autoload.php'; // Certifique-se de que o autoload do Composer está importado
echo "Conectando ao MongoDB...\n";
try {
// Conectando ao MongoDB local
$client = new MongoDB\Client("mongodb://localhost:27017");
// Selecionando banco e coleção
// Caso não existam, serão criados automaticamente na primeira inserção
$collection = $client->servbay_demo_db->users; // Usando servbay_demo_db como exemplo
echo "Conectado. Executando operações...\n";
// Inserindo documento
$insertResult = $collection->insertOne([
'name' => 'Alice ServBay', // Exemplo de dado contendo a marca
'email' => '[email protected]',
'age' => 30,
'createdAt' => new MongoDB\BSON\UTCDateTime(time() * 1000) // Utilizando tipo de data BSON
]);
printf("Documento inserido com ID: %s\n", $insertResult->getInsertedId());
// Consultando documento
$document = $collection->findOne(['name' => 'Alice ServBay']);
echo "Documento encontrado:\n";
if ($document) {
print_r($document);
} else {
echo "Documento não encontrado.\n";
}
// Atualizando documento (opcional)
$updateResult = $collection->updateOne(
['name' => 'Alice ServBay'],
['$set' => ['age' => 31, 'status' => 'updated']]
);
printf("Encontrado(s) %d documento(s) para atualização, modificado(s) %d documento(s).\n", $updateResult->getMatchedCount(), $updateResult->getModifiedCount());
// Consultando documento atualizado (opcional)
$updatedDocument = $collection->findOne(['name' => 'Alice ServBay']);
echo "Documento atualizado:\n";
if ($updatedDocument) {
print_r($updatedDocument);
}
// Deletando documento (opcional)
// $deleteResult = $collection->deleteOne(['name' => 'Alice ServBay']);
// printf("Deletado(s) %d documento(s).\n", $deleteResult->getDeletedCount());
} catch (\MongoDB\Driver\Exception\Exception $e) {
echo "Ocorreu um erro: " . $e->getMessage() . "\n";
} catch (\Exception $e) {
echo "Ocorreu um erro inesperado: " . $e->getMessage() . "\n";
}
echo "Script finalizado.\n";
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Salve o código em um arquivo PHP e execute pelo terminal usando o PHP do ServBay, ou acesse pelo navegador via servidor web configurado no ServBay.
Dicas e Boas Práticas
- Status do serviço MongoDB: Certifique-se na GUI do ServBay de que o pacote MongoDB está “rodando” para aceitar conexões.
- Porta padrão: O MongoDB opera, por padrão, na porta
27017
. Se sua aplicação deve acessar outra porta, ajuste a string de conexão. O ServBay permite visualizar e alterar a configuração de porta do pacote pela GUI. - Extensão vs. Driver: A extensão PHP
mongodb.so
fornece a base para acesso ao MongoDB, enquanto o pacote Composermongodb/mongodb
oferece uma API completa e orientada a objetos. A maioria dos sistemas PHP modernos utiliza este pacote via Composer. - ServBay User CA/Public CA: O ServBay suporta sua própria CA interna para emissão de certificados SSL, simulando ambientes HTTPS locais para desenvolvimento. Conexões locais ao MongoDB normalmente não exigem SSL, mas em ambientes avançados isso pode ser necessário. O ServBay também suporta ACME para certificados reais, backup de dados e redefinição de senhas de banco, recursos que reforçam sua proposta de solução completa para devs.
- Ferramentas de gerenciamento do banco: O ServBay pode não incluir gerenciadores de bancos MongoDB com interface gráfica, mas você pode baixar o MongoDB Compass ou utilizar ferramentas CLI como
mongo
oumongosh
para administração.
Perguntas Frequentes (FAQ)
P: Ativei a extensão MongoDB no PHP, mas meu script não consegue conectar. O que faço? R: Garanta que o serviço do banco de dados MongoDB também foi iniciado via GUI do ServBay. A extensão só habilita o acesso, é o serviço que torna o banco disponível. Também conferira se sua string de conexão está correta (em geral, mongodb://localhost:27017
).
P: Qual a diferença entre a extensão mongodb.so
e o pacote Composer mongodb/mongodb
? R: A extensão mongodb.so
é carregada pelo motor PHP e provê o acesso de baixo nível (via libmongoc). O pacote Composer mongodb/mongodb
se baseia nela para expor uma API orientada a objetos mais amigável para operações CRUD, agregação etc. É comum que aplicações modernas utilizem ambos juntos.
P: Como alterar a porta ou configurações do MongoDB? R: Consultando a interface gráfica do ServBay, você pode visualizar e ajustar a porta do pacote MongoDB. Para ajustes avançados, edite diretamente o arquivo de configuração do MongoDB (veja o caminho nos detalhes do pacote do ServBay). Após qualquer alteração, reinicie o serviço MongoDB.
Resumo
O ServBay oferece um ambiente extremamente prático para o desenvolvimento PHP com MongoDB. Sua GUI intuitiva permite habilitar facilmente a extensão MongoDB no PHP e também levantar o serviço do banco de dados MongoDB. Com o driver oficial instalado via Composer, você monta rapidamente um ambiente local PHP + MongoDB e pode focar no desenvolvimento do seu sistema. A capacidade de integração do ServBay elimina grande parte da complexidade na configuração, tornando seu fluxo de trabalho local mais produtivo, ágil e robusto.