Como Instalar Nginx, MySQL, PHP no Ubuntu 18.04

Aprenda a configurar um servidor LEMP em seu droplet na DigitalOcean e tenha um stack Nginx, MySQL e PHP

Todo desenvolvedor em algum momento da sua vida terá que provisionar um servidor, seja ele para produção ou para um testes. No Brasil é raro empresas terem um DBA quem dirá um SysAdmin, por esse motivo entender os passos necessários para provisionar um servidor é uma skill indispensável para se destacar no mercado de trabalho brasileiro.

Nesse artigos vamos tratar exatamente deste ponto, explicaremos os passos necessários para se provisionar um servidor LEMP por completo. Basta salvar o artigo em seus favoritos e você sempre terá um receita pronta para provisionar um servidor.

Primeiro passo é conectar a sua droplet usando o SSH, para que em seguida possamos enviar comandos para ela remotamente. Caso não saiba como realizar o login via SSH na DigitalOcean, leia esse nosso artigo aqui e siga o passo a passo explicado lá. Após a conexão bem sucedida em sua droplet, digite os comandos abaixo.

sudo apt update && sudo apt upgrade -y

Será solicitado a sua senha, após digitá-la o sistema vai executar os comandos inseridos. Os comandos acima são responsáveis por atualizar o seu servidor, deixar tudo pronto para os próximos comandos.

Instalando o Nginx

Agora vamos instalar o Nginx, um servidor web bastante popular e rápido. Ele é a escolha padrão de muitas empresas atualmente, e possivelmente, venha a substituir o Apache no futuro.

Para instalar o Nginx execute o comando abaixo e aguarda a instalação completa do pacote.

sudo apt install nginx -y

Como por padrão no Ubuntu 18.04 o Nginx já se inicia automaticamente após a instalação, você pode acessar o IP da sua droplet após a instalação terminar para visualizar uma página padrão do Nginx. Ao acessar o IP da sua droplet (mesmo IP que utilizou para o SSH) e visualizar uma página igual a da imagem abaixo, parabéns o Nginx está instalado com sucesso vamos seguir para a próxima etapa.

Página padrão Nginx

Instalação do MySQL

Agora que você possui o Nginx instalado vamos partir para o MySQL. Para aqueles que não conhecem, o MySQL é o banco de dados mais popular da Web. Ele é o banco de dados padrão para quem programa em PHP e é utilizado por gigantes como o WordPress que domina 30% de toda internet mundial¹.

Para instalar o MySQL basta executar o comando abaixo. Durante o processo de instalação você terá que informar uma senha para o usuário root do MySQL, guarde esse senha em um local BASTANTE seguro, pois o usuário root possui acesso ilimitado ao seu banco de dados.

sudo apt install mysql-server -y

Ao finalizar a instalação do MySQL e definir uma senha para o usuário root, é interessante (porém não obrigatório) executar o comando mysql_secure_installation, esse comando configura de forma automática diversas opções relacionadas a segurança do seu servidor de banco de dados. Para aumentar a segurança de nosso servidor, vamos executar o comando.

Execute o comando abaixo para iniciar a configuração do MySQL.

sudo mysql_secure_installation

O comando acima solicitará a senha do usuário root do MySQL, digite essa senha, e em seguida, responsa N para a primeira pergunta e Y para todas as perguntas posteriores.

Intalando PHP

Agora que você já instalou o Nginx e o MySQL só lhe resta instalar o PHP para que seu servidor esteja completamente configurado.

Para instalar o PHP execute o comando abaixo para instalar o php-fpm e também o conector MySQL para seu PHP.

sudo apt install php-fpm php-mysql -y

Ao finalizar a instalação do PHP, seu servidor LEMP estará “tecnicamente” instalado por completo. Obviamente ainda faltam algumas configurações para que seu servidor esteja pronto para receber seu sistema ou site. Vamos continuar com essas configurações.

Configurando um novo site Nginx

Vamos agora adicionar um novo site em nosso Nginx, para isso basta criar um arquivo de configuração para o Nginx na pasta /etc/nginx/sites-available/. Para isso vamos supor que nosso novo site chame-se site.com.br, desta forma com o comando abaixo podemos abir o editor de texto para a edição do arquivo de configuração.

sudo nano /etc/nginx/sites-available/site.com.br

No editor que se abriu copie e cole o exemplo de configuração abaixo. Lembre-se de alterar todas as ocorrências de site.com.br para o nome do seu site real.

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name site.com.br www.site.com.br;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

Aqui algumas observações são importantes. Na diretiva root, onde no exemplo acima está apontando para var/www/html, é interessante alterar esse valor para uma pasta específica caso no seu servidor exista mais de um site. Essa diretiva deve sempre apontar para a raiz do seu site, ou seja, no local onde o index.php do seu site vai ficar.

Segundo ponto é a diretiva server_name que deve apontar para o endereço de seu site, caso queira usar tanto o formato www.site.com.br quanto o formato site.com.br para acessar seu sistema é indispensável que adicione os dois exemplos aqui, conforme exibido.

Quando terminar de editar o arquivo a seu gosto pressione Ctrl+x para sair do editor de texto e, quando solicitado, pressione a tecla Y e em seguida o Enter para salvar as alterações.

Se tentar acessar seu site agora, nada vai funcionar. Isso porque apenas adicionamos a configuração do nosso site na pasta de sites disponíveis do Nginx, ainda não ativamos o site propriamente dito. Para isso basta executar o comando abaixo para ativar o nosso arquivo de configuração.

sudo ln -s /etc/nginx/sites-available/site.com.br /etc/nginx/sites-enabled/

Agora sim, se tentar acessar seu site vai notar que ele ainda não funciona. Pois ainda falta reiniciar o Nginx para que ele carregue as novas configurações. Execute o comando abaixo para reiniciar o Nginx.

sudo systemctl reload nginx

Testando se tudo funciona

Agora chegou a hora da verdade, vamos ver se todas as configurações estão perfeitas. Para isso vamos criar um arquivo PHP no nosso servidor e acessá-lo. Digite o comando abaixo para criar o arquivo e abrir o editor de texto para em seguida colar o código em PHP.

sudo nano /var/www/html/info.php

Copie e cole o código abaixo em seu servidor. Quando terminar de editar o arquivo a seu gosto pressione Ctrl+x para sair do editor de texto e, quando solicitado, pressione a tecla Y e em seguida o Enter para salvar as alterações.

<?php
phpinfo();

Agora vá em seu navegador de internet e digite o endereço de seu site, no nosso exemplo é site.com.br e de Enter. Você vai se deparar com uma página semelhante a da imagem abaixo, isso significa que seu servidor esta pronto para receber seu novo projeto, parabéns.

Exemplo phpinfo()

Cadastre-se na DigitalOcean com Descontos!

Cadatre-se hoje mesmo na DigitalOcean e ganhe um cupom de $10 para iniciar os testes na plataforma

Renato Tavares

Analista de Sistemas

Sou formado em Análise de Sistemas e trabalho com Linux e programação há 10 anos, sou especialista em servidores WEB e apaixonado pela ferramenta que a DigitalOcean construiu.