Deploy de um Projeto PHP na DigitalOcean - Parte 1 - Criando, Configurando e Acessando o Servidor

27 de julho de 2022
Ronaldo B.

Estamos iniciando uma nova série de artigos no Blog da Hcode, onde iremos realizar o deploy de um projeto em PHP e MySQL na DigitalOcean. O projeto escolhido foi o que nós desenvolvemos em nosso Curso Completo de PHP 7, que é um e-commerce completo e simplesmente sensacional

O código-fonte deste projeto está em nosso GitHub, e será por meio desta plataforma que iremos atualizar nosso servidor sempre que houver alguma alteração no código.

Neste primeiro artigo iremos criar o projeto na DigitalOcean e configurar todo o acesso ao servidor, além de instalar o PHP e o Nginx nele.

É necessário ter uma conta na DigitalOcean para poder criar um novo projeto. Além disso, talvez seja solicitado que adicionemos um cartão de crédito à nossa conta.

Criando Projeto e Primeiro Droplet na DigitalOcean

Vamos iniciar criando um novo projeto. Para isso, basta clicar em “New Project” no Painel Administrativo:

Opção de criar um novo projeto

Na página a seguir iremos adicionar um nome para o nosso projeto e então clicar em “Create Project”:

Página para criação de um novo projeto

Com o projeto criado, iremos criar o nosso primeiro Droplet. Um Droplet é uma máquina virtual criada na DigitalOcean. Cada Droplet é um servidor individual que podemos manipular e configurar.

Para criar nosso Droplet, vamos clicar em “Create” e então em “Droplets”:

Link para criar um novo Droplet na DigitalOcean

A próxima página irá exibir uma série de opções para a criação do nosso servidor. Iremos escolher o Ubuntu como a distribuição e selecionaremos o plano mais básico da plataforma, cerca de $ 5 por mês:

Opções de assinatura em nosso Droplet

Nesta mesma página iremos selecionar a localização de nosso servidor. Em nosso caso, escolheremos a cidade de Nova Iorque, mas poderíamos selecionar outra região se desejássemos.

Opção de localização e autenticação em nosso servidor

Além disso, iremos selecionar habilitar a opção “SSH keys”. Chaves SSH são essenciais para a autenticação e acesso em nosso servidor. Iremos configurar essa questão agora.

Para configurar uma nova chave SSH, podemos fazer uso do programa PuTTY, que é um cliente SSH para Windows.

Iremos abrir uma nova aba no navegador para instalar e configurar esse programa.

Instalação e Configuração do PuTTY

O PuTTY pode ser baixado no site https://www.putty.org/. Ao acessar essa página, basta clicar no botão de download e executar o arquivo de instalação. Dessa forma, o PuTTY será instalado de forma global em nosso computador:

Opção de download no site do PuTTY

Com o PuTTY instalado, iremos criar uma chave SSH, que será usada para realizarmos a autenticação na DigitalOcean e acessar nosso servidor remotamente. Para criar essa chave, abra o Menu Iniciar e digite “puttygen”. Daí, basta clicar na opção que irá aparecer:

Opção do puttygen no Menu Iniciar

Na janela que será exibida, clique no botão “Generate”. Em seguida, passe o mouse da maneira que desejar na área em branco nesta janela até a barra verde ser concluída. O PuTTY irá usar o padrão do desenho de seu mouse para criar a chave SSH, o que irá garantir uma chave única e também muito segura para nossos acessos remotos:

Criando uma nova chave SSH

Após esse processo concluído, nossa chave terá sido criada. Se desejarmos, podemos criar uma senha para o acesso dessa chave, o que a deixará ainda mais segura. Se optarmos em fazer isso, basta preencher a senha desejada nos campos “Key passphrase” e “Confirm passphrase”. Em seguida, iremos salvar o arquivo de nossa chave SSH em nosso computador, tanto a chave pública como a privada. Faremos isso clicando nos dois botões grifados abaixo:

Opção para salvar a chave SSH de maneira pública e privada

É importante que escolhamos uma pasta segura para salvar essa chave SSH. De preferência uma pasta onde possamos encontrar esses arquivos com facilidade quando precisarmos.

Depois de salvar os arquivos da chave, não feche a janela do puttygen. Copie a chave gerada, que estará na área onde passamos o mouse anteriormente. Copie todo o conteúdo dela, que começará com “ssh-rsa”. Isso é necessário pois agora iremos adicionar a chave criada à DigitalOcean.

Vamos voltar na aba de criação do Droplet no navegador e clicar no botão “New SSH Key”:

Botão para adicionar uma nova chave SSH

Ao clicar nesse botão será aberto um modal, onde poderemos colar o conteúdo de nossa chave recém-criada. Também podemos dar um nome para essa chave e então podemos clicar em “Add SSH Key”:

Adicionando uma nova chave SSH à DigitalOcean

Em seguida precisamos apenas clicar em “Create Droplet”:

Botão para criar o Droplet

Com isso nosso primeiro Droplet terá sido criado e iniciado. Podemos dizer que esse foi o primeiro passo. Muitas configurações não é mesmo? Mas agora estamos prontos para acessar nosso servidor e realizar as configurações iniciais nele.

Acessando nosso Servidor pelo PuTTY

Para acessar nosso servidor, precisamos saber qual é o seu IP. Para isso, vamos voltar na página inicial de nosso projeto na DigitalOcean e procurar pela seção de Droplets. Nesta seção poderemos ver o IP de nosso Droplet, conforme está grifado na imagem abaixo:

IP de nosso Droplet informado na DigitalOcean

Com essa informação em mente, vamos acessar o aplicativo “PuTTY” em nosso computador e colar o IP no campo “Host Name”. Podemos dar um nome para esse servidor se desejarmos:

Janela do PuTTY com as configurações de nosso servidor

Após definir essas informações iremos clicar em “Save”. Mas, antes de acessar nosso servidor, precisamos configurar a autenticação. Faremos isso através da chave SSH que criamos agora há pouco.

Para adicionar esta chave, selecione o nome do servidor que criamos no PuTTY e no menu lateral esquerdo clique em “SSH” e então em “Auth”. Na janela que se abrirá clique no botão “Browse” e então selecione a chave SSH que foi criada anteriormente. Iremos selecionar o arquivo que tem a extensão .ppk:

Selecionando chave SSH para autenticação na DigitalOcean

Após isso basta voltar para a página principal do PuTTY clicando em “Session” e então clicar novamente em “Save” e por fim em “Open”:

Salvando novas configurações no PuTTY

Será aberta uma nova janela, que será a nossa linha de comando para acesso e manipulação no servidor. Será solicitado um login. Por padrão esse login será “root”:

Informando login para acesso no servidor

Em seguida será solicitada a senha da chave SSH que nós criamos, se tivermos definido uma:

Opção para definir uma nova chave SSH

Após informar a senha veremos a seguinte imagem:

Mensagem de boas-vindas ao servidor Ubuntu

Essa imagem significa que conseguimos logar com sucesso no servidor e agora estamos prontos para iniciar a configuração do PHP nele.

Configuração Inicial em Nosso Servidor

Vamos realizar toda a configuração do servidor Nginx e o PHP. Já ensinamos isso em mais detalhes no artigo Nginx com PHP 8 no servidor Ubuntu. Por isso, não iremos entrar em tantos detalhes quanto aos comandos relacionados ao PHP, mas apenas naquilo que for diferente do artigo que já citamos.

O primeiro comando que iremos executar é o sudo apt-get update, para atualizar todos os pacotes já instalados.

Iremos instalar todos os pacotes necessários para o funcionamento do PHP com o Nginx e também o MySQL, que será o Banco de Dados usado no projeto. Instalaremos esses pacotes com o seguinte comando:

sudo apt-get install -y build-essential pkg-config libxml2-dev sqlite3 libsqlite3-dev zlib1g-dev

Vamos realizar o download do PHP 8 exatamente como mostramos no outro artigo. Após o download ser concluído, iremos acessar a pasta do PHP e realizar sua configuração e instalação. Iremos configurá-lo de uma maneira um pouco diferente da maneira que fizemos no outro artigo. Iremos realizar sua configuração com o comando abaixo:

sudo ./configure --with-mysqli --with-pdo-mysql --enable-fpm

Note que adicionamos duas flags relacionadas com o MySQL e PDO, tecnologias essenciais para o funcionamento do nosso projeto.

Após executar esse comando, iremos de fato instalar o PHP usando o seguinte comando:

sudo make && sudo make install

Neste momento pode ser que algum erro de memória seja retornado. Neste caso, tenha certeza de que o seu Droplet possui memória suficiente para executar o PHP. Geralmente 1 GB já é o suficiente.

O próximo passo será adicionar o código de nosso projeto ao servidor. Como comentamos no início do artigo, iremos usar o projeto criado em nosso Curso Completo de PHP 7 nesta série de artigos, e ele está hospedado no GitHub. Por isso, iremos usar o Git para realizar seu download no servidor.

Vamos acessar o diretório padrão de todos os sites hospedados em um servidor Ubuntu. Faremos isso com o comando cd /var/www/. Neste diretório iremos realizar o git clone do projeto.

Em nosso caso iremos usar o protocolo SSH para realizar o download. Se desejar utilizá-lo também, poderá ver como realizar sua configuração no artigo Adicionando uma chave SSH ao GitHub.

Se não desejar, poderá usar o protocolo HTTPS.

Vamos executar o comando abaixo:

git clone git@github.com:anthony1910/ecommerce.git hcode-store

Com isso nosso projeto será adicionado ao nosso servidor. E sempre que possuirmos uma alteração em nosso código, bastará executar um git pull e então o servidor será automaticamente atualizado.

Vamos agora definir que o Nginx possa “enxergar” o nosso projeto. Para isso, vamos acessar o arquivo de configurações do Nginx com o comando abaixo:

sudo nano /etc/nginx/sites-available/default

Será aberto um Editor de Texto. Nesta interface iremos procurar pela linha root /var/www e iremos deixá-la da seguinte forma:

root /var/www/hcode-store;

Após salvar esse arquivo, iremos reiniciar o serviço do Nginx, por meio do comando abaixo:

sudo service nginx restart

Agora, ao acessar o IP de nosso servidor, no meu caso http://167.172.128.137/, veremos o seguinte resultado:

Erro em nosso Servidor

E podemos notar que foi retornado um imenso bug. Mas nós programadores já estamos acostumados com isso ?. A mensagem de erro informa que não conseguiu se conectar com o Banco de Dados, pois essa conexão foi negada. Isso ocorre pois de fato não configuramos o MySQL no Servidor. Para resolver esse problema, vamos precisar realizar a instalação e configuração deste Banco de Dados. Essa configuração será realizada no próximo artigo desta série.

De qualquer forma, neste artigo já conseguimos realizar muitas configurações e aprendemos conceitos muito importantes que poderão ser aplicados sempre que precisarmos acessar um servidor remoto.

E com certeza iremos aprender muito mais coisas no próximo artigo, até lá ?.

Hcode: Utilizamos cookies para a personalização de anúncios e experiências de navegação dentro de nosso site. Ao continuar navegando, você concorda com as nossas Política de Privacidade.