Preparando-se para executar PHP com MongoDB
Avalie esse Início rápido
Bem-vindo a este guia de início rápido para MongoDB com PHP. Sabemos que você provavelmente está interessado em começar a escrever código e criar aplicativos usando PHP com MongoDB. Nós chegaremos lá, eu prometo. No entanto, vamos Go por algumas configurações necessárias primeiro.
Este guia está organizado em algumas seções em alguns artigos. Este primeiro artigo aborda a instalação e configuração do seu ambiente de desenvolvimento. PHP é uma linguagem integrada de desenvolvimento web. Existem vários componentes que você normalmente usa em conjunto com a linguagem de programação PHP. Se você já tiver o PHP instalado e só quer começar a usar o PHP e o MongoDB, fique à vontade para pular para opróximo artigo desta série.
Vamos começar com uma visão geral do que abordaremos nesta série.
Uma breve observação sobre PHP e Apache: como o PHP é principalmente uma linguagem web — o que significa que ele foi criado para funcionar com um servidor web — passaremos algum tempo no início deste artigo garantindo que você tenha PHP e Apache web servidor instalado e configurado corretamente. Existem alternativas, mas vamos nos concentrar em PHP e Apache.
O PHP foi desenvolvido e lançado pela primeira vez em 1994 por Rasmus Lerdorf. Embora tenha suas raízes na linguagem C, a sintaxe do PHP era muito parecida com a do Perl desde o início. Um dos principais motivos de sua enorme popularidade foi sua simplicidade e a natureza dinâmica e interpretada de sua implementação.
Você precisará dos seguintes itens instalados em seu computador para acompanhar este tutorial:
- MacOS Catalina ou posterior: você pode executar o PHP em versões anteriores, mas continuaremos no MacOS neste tutorial.
- Homebrew Package Manager: o gerenciador de pacotes ausente para macOS.
- PECL: o repositório para extensões PHP .
Primeiro, vamos instalar as ferramentas de linha de comando, pois elas serão usadas pelo Homebrew:
Em seguida, usaremos um gerenciador de pacotes para instalar as coisas. Isso garante que nossas dependências serão atendidas. Prefiro
Homebrew
, ou brew
para abreviar. Para começar a usar brew
, abra seu terminal app
e digite:Isso aproveita
curl
para extrair os scripts e binários de instalação mais recentes para brew
.As instruções de instalação são bem simples. Digite sua senha quando necessário para assumir privilégios de root para a instalação. Quando estiver concluído, basta digitar o seguinte para verificar se o
brew
está instalado corretamente:Se você tiver problemas neste ponto e não conseguir executar
brew
, consulte os documentos de instalação do Homebrew.Você também pode verificar a instalação do homebrew usando
brew doctor
. Confirme se todos os problemas ou mensagens de erro foram resolvidos antes de prosseguir. Você pode encontrar avisos, que geralmente podem ser ignorados com segurança.Para usar o MongoDB com PHP, devemos instalar o Apache.
A versão mais recente do macOS 11.0 Big Sur vem com o Apache 2.4 pré-instalado, mas a Apple removeu alguns scripts essenciais, o que dificulta seu uso.
Então, para ter certeza de que estamos alinhados, vamos instalar o Apache 2.4 via Homebrew e, em seguida, executá-lo nas portas padrão (80/443).
Quando eu estava escrevendo este tutorial, perdi muito tempo tentando descobrir o que estava acontecendo com a versão pré-instalada. Então, acho melhor instalarmos do zero usando o Homebrew.
Agora, vamos instalar a versão mais recente do Apache:
Uma vez instalado, vamos iniciar o serviço.
Agora você deve conseguir abrir um navegador da Web, visitar
http://localhost:8080
e ver algo semelhante ao seguinte:O servidor web Apache padrão não oferece suporte para PHP integrado. Portanto, precisamos instalar o PHP e a extensão PHP para reconhecer e interpretar arquivos PHP.
Se você instalou versões anteriores do PHP, recomendo enfaticamente que faça uma limpeza removendo as versões mais antigas. Se você tiver projetos anteriores que dependam dessas versões, precisará ter cuidado e fazer backup de suas configurações e arquivos de projeto.
O Homebrew é uma boa maneira de os usuários do MacOS instalarem o PHP.
Quando isso for concluído, você poderá testar se ele foi instalado corretamente emitindo o seguinte comando em seu prompt de linha de comando no terminal.
Você deverá ver algo semelhante a isto:
Agora que temos o
php
instalado, podemos configurar o Apache para usar o PHP
para interpretar nosso conteúdo da web, traduzindo nossos comandos php
em vez de exibir o código-fonte.PECL (PHP Extension Community Library) é um repositório para extensões PHP, fornecendo um diretório de todas as extensões conhecidas e recursos de hospedagem ou download e desenvolvimento de extensões PHP.
pecl
é a ferramenta binária ou de linha de comando (instalada por padrão com PHP) que você pode usar para instalar e gerenciar extensões PHP. Faremos isso na próxima seção.Instale a extensão PHP MongoDB antes de instalar a biblioteca PHP para MongoDB. É importante observar que a experiência completa do driver MongoDB é fornecida com a instalação da extensão de baixo nível (que se integra ao nosso driver C) e da biblioteca de alto nível, escrita em PHP.
Você pode instalar a extensão usando o PECL na linha de comando:
Em seguida, precisamos modificar o arquivo
php.ini
principal para incluir a extensão MongoDB. Para localizar seu arquivo php.ini
, use o seguinte comando:Para instalar a extensão, copie a linha a seguir e coloque-a no final do arquivo
php.ini
.Depois de salvar o php.ini, reinicie o serviço Apache e, para verificar a instalação, use o seguinte comando.
Você deverá ver uma saída semelhante a esta:
Agora você está pronto para começar a usar o PHP para manipular e gerenciar dados em seus bancos de dados MongoDB. Em seguida, vamos nos concentrar em preparar seu cluster do MongoDB.
Se você estiver enfrentando problemas com a instalação da extensão do MongoDB, algumas dicas ajudam a verificar se tudo está instalado corretamente.
Primeiro, você pode verificar se o Apache e o PHP foram instalados com êxito criando um arquivo info.php na raiz do diretório da Web. Para localizar o diretório web raiz, use o seguinte comando:
No arquivo, adicione o seguinte conteúdo:
Em seguida, vamos falar sobre como executar um programa PHP no localhost. Navegue até http://localhost:8080/info.php e você deverá ver uma página em branco apenas com o texto Olá, mundo.
Em seguida, edite o conteúdo do arquivo info.php para:
Salve e, em seguida, atualize a página info.php. Você deverá ver uma página com uma grande tabela de informações PHP como esta:
IMPORTANTE: Em servidores de produção, não é seguro expor as informações exibidas por phpinfo() em uma página acessível publicamente
As informações em que estamos interessados podem estar nestes locais:
- A propriedade "Configuration File (php.ini) Path" mostra de onde o tempo de execução do PHP está obtendo o arquivo php.ini. Pode acontecer que a extensão mongodb.so tenha sido adicionada no arquivo php.ini errado, pois pode haver mais de um.
- “Additional .ini files parsed mostra possíveis arquivos de configuração PHP extras que podem impactar sua configuração específica. Esses arquivos estão no diretório listado pela seção "Scan this dir for additional .ini files" na tabela.
Há também uma tabela “mongodb” inteira que se parece com isto:
Sua presença indica que a extensão MongoDB foi carregada corretamente e está funcionando. Você também pode ver o número da versão para garantir que é a que pretende usar.
Se você não vir esta seção, é provável que a extensão MongoDB não tenha sido carregada. Se esse for o caso, procure a propriedade "error_log" na tabela para ver onde está o arquivo de log de erros do PHP, pois ele pode conter pistas cruciais. Certifique-se de que "log_errors" esteja definido como LIGADO. Ambos estão localizados na seção "Core" do PHP.
Se você estiver atualizando para uma versão mais recente do PHP ou tiver várias versões instaladas, lembre-se de que cada versão precisa ter sua própria extensão MongoDB e arquivos php.ini.
Agora que você configurou seu ambiente local, é hora de criar um MongoDB database para trabalhar e carregar alguns dados de exemplo que você possa explorar e modificar.
Comece hoje mesmo com um cluster M0 no Atlas. É gratuito para sempre e é a maneira mais fácil de experimentar as etapas desta série de blogs.
O provisionamento do cluster levará alguns minutos; portanto, enquanto espera, você pode passar para a próxima etapa.
Esperemos que seu MongoDB cluster tenha terminado de ser iniciado agora e provavelmente esteja em execução há alguns minutos.
As instruções a seguir estavam corretas no momento da redação, mas podem mudar, pois estamos sempre melhorando o Atlas user:
Na interface web do Atlas, você verá um botão verde "Get Started" no canto inferior esquerdo da tela. Clique nele para ver uma lista de verificação de etapas para configurar seu banco de dados. Clique em cada um dos itens da lista (incluindo o item "Carregar dados de amostra " — usaremos isso posteriormente para testar a biblioteca PHP) para ajudar nas etapas de configuração.
A maneira mais rápida de obter acesso aos dados é carregar os conjuntos de dados de exemplo em seu cluster diretamente no console do Atlas. Se você for novo, o assistente de novo usuário o orientará durante o processo e solicitará que você os carregue.
Se você já criou o cluster e deseja voltar para carregar os conjuntos de dados de amostra, clique nas reticências (três pontos) ao lado dos botões de conexão do cluster (veja a imagem abaixo) e selecione
Load Sample Dataset
.Agora, vamos definir a configuração necessária para acessar seus dados no Cluster MongoDB. Você precisará criar um usuário de banco de dados e configurar sua lista de acesso de endereços IP.
Seguindo as etapas de "Começar", crie um usuário com "Acesso de leitura e gravação a qualquer banco de dados". Você pode dar-lhe o nome de usuário e senha de sua escolha. Faça uma cópia deles, porque você vai precisar deles em breve. Use o botão "gerar automaticamente senha segura" para garantir que você tenha uma senha longa e aleatória que também seja segura para colar em sua string mais tarde.
Ao implantar um aplicativo com dados confidenciais, você deve apenas colocar na lista de permissões o endereço IP dos servidores que precisam se conectar ao seu banco de dados. Para colocar na lista de permissões o endereço IP de sua máquina de desenvolvimento, selecione "Acesso à rede", clique no botão "Adicionar endereço IP" e, em seguida, clique em "Adicionar endereço IP atual" e pressione "Confirmar."
A última etapa da lista de verificação "Começar" é "Conecte-se ao seu cluster". Selecione "Conectar seu aplicativo" e selecione "PHP" com uma versão de "PHPLIB 1.8".
Clique no botão "Copiar" para copiar o URL em seu buffer de colagem. Salve-o no mesmo local em que armazenou seu nome de usuário e senha. Observe que o URL tem
<password>
como espaço reservado para sua senha. Você deve colar sua senha aqui, substituindo todo o espaço reservado, inclusive os caracteres <
e >
.Agora é hora de realmente escrever algum código PHP para se conectar ao seu MongoDB database! Até agora, instalamos apenas os componentes de suporte do sistema. Antes de começarmos a nos conectar ao nosso banco de dados e usar o PHP para manipular dados, precisamos instalar a biblioteca PHP do MongoDB.
Composer é a ferramenta de instalação recomendada para a biblioteca MongoDB. O Composer é uma ferramenta para gerenciamento de dependências em PHP. Ele permite que você declare as bibliotecas das quais seu projeto depende e ele as gerenciará (instalará/atualizará) para você.
Para instalar o
composer
, podemos usar o Homebrew.Depois que o
composer
estiver instalado, você poderá prosseguir com a instalação da biblioteca do MongoDB.A instalação da biblioteca deve ocorrer no diretório raiz do seu projeto. O Composer não é um gerenciador de pacotes no mesmo sentido que o Yum ou o Apt. O Composer instala pacotes em um diretório dentro do seu projeto. Por padrão, ele não instala nada globalmente.
Verifique se você está no mesmo diretório em que estava quando usou o
composer
acima para instalar a biblioteca.No editor de código, crie um arquivo PHP no diretório de projeto chamado quickstart.php. Se você estiver referenciando o exemplo, insira o seguinte código:
<username>
e <password>
são o nome de usuário e a senha que você criou no Atlas, e o endereço do cluster é específico para o cluster que você iniciou no Atlas.Salve e feche o programa
quickstart.php
e execute-o a partir da linha de comando:Se tudo correr bem, você deverá ver algo semelhante ao seguinte:
Você acabou de conectar seu programa PHP ao MongoDB e realizou uma query de um único documento do banco de dados
sample_analytics
em seu cluster! Se você não vir esses dados, talvez não tenha carregado com sucesso os dados de amostra em seu cluster. Volte algumas etapas até que a execução desse comando mostre o documento acima.Armazenar nomes de usuários e senhas em seu código nunca é uma boa ideia. Vamos dar mais um passo para protegê-los um pouco melhor. É uma prática geral colocar esses tipos de valores confidenciais em um arquivo de ambiente como
.env
. O truque, então, será fazer com que seu código PHP leia esses valores. Felizmente, Vance Lucas encontrou uma ótima solução chamada phpdotenv
. Para começar a usar a solução da Vance, vamos usar composer
.Agora que temos a biblioteca instalada, vamos criar nosso arquivo
.env
que contém nossos valores confidenciais. Abra seu editor favorito e crie um arquivo chamado .env
, colocando os seguintes valores nele. Substitua your user name
e your password
pelos valores reais criados ao adicionar um usuário de banco de dados no Atlas.Em seguida, precisamos modificar nosso programa quickstart.php para extrair os valores usando
phpdotenv
. Vamos adicionar uma chamada à biblioteca e modificar nosso programa de início rápido para que fique como o seguinte. Observe as alterações nas linhas 5, 6 e 9.Em seguida, para garantir que você não esteja publicando suas credenciais em
git
ou em qualquer repositório de código-fonte que esteja usando, certifique-se de adicionar um .gitignore (ou equivalente) para evitar o armazenamento desse arquivo em seu repositório. Aqui está meu arquivo .gitignore
:Meu
.gitignore
inclui arquivos que são aproveitados como parte de nossas bibliotecas - eles não devem ser armazenados em nosso projeto.Se quiser aproveitar os arquivos do meu projeto, fique à vontade para visitar meu repositório no github, clonar, bifurcar e compartilhar seus comentários na Comunidade.
Este início rápido teve o objetivo de preparar você para usar o PHP com o MongoDB. Agora você deve estar pronto para passar para o próximo artigo desta série. Sinta-se à vontade para me contatar na Comunidade se tiver alguma dúvida sobre este artigo ou qualquer coisa relacionada ao MongoDB.
- A documentação do driver MongoDB PHP fornece documentação completa que descreve como usar PHP com seu cluster do MongoDB.
- A documentação do documento de query do MongoDB detalha todo o poder disponível para consultar as coleções do MongoDB.