Tutorial

Como Instalar Linux, Nginx, MySQL, PHP (pilha LEMP) no Ubuntu 20.04 [Quickstart]

Published on June 11, 2020

Developer Advocate

Português
Como Instalar Linux, Nginx, MySQL, PHP (pilha LEMP) no Ubuntu 20.04 [Quickstart]

Introdução

Neste guia de consulta rápida, instalaremos uma pilha LEMP em um servidor Ubuntu 20.04.

Para uma versão mais detalhada deste tutorial, com mais explicações de cada passo, consulte o tutorial How To Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 20.04.

Pré-requisitos

Para seguir este guia, você precisará ter acesso a um servidor Ubuntu 20.04 como um usuário sudo.

Passo 1 — Instalar o Nginx

Atualize o cache do seu gerenciador de pacotes e, em seguida, instale o Nginx com:

  1. sudo apt update
  2. sudo apt install nginx

Assim que a instalação terminar, você precisará ajustar suas configurações de firewall para permitir o tráfego HTTP em seu servidor. Execute o seguinte comando para permitir o acesso externo na porta 80 (HTTP):

  1. sudo ufw allow in "Nginx"

Com a nova regra de firewall adicionada, você poderá testar se o servidor está em funcionamento, acessando o endereço IP público do seu servidor ou nome de domínio do seu navegador Web. Você verá uma página como esta:

Nginx default page

Passo 2 — Instalar o MySQL

Agora, vamos instalar o MySQL, um popular sistema de gerenciamento de banco de dados utilizado em ambientes PHP.

Novamente, utilize o apt para adquirir e instalar este software:

  1. sudo apt install mysql-server

Quando a instalação terminar, é recomendável que você execute um script de segurança que vem pré-instalado com o MySQL. Inicie o script interativo executando:

  1. sudo mysql_secure_installation

Este script irá perguntar se você deseja configurar o VALIDATE PASSWORD PLUGIN. Responda Y para sim, ou qualquer outra coisa para continuar sem a habilitar. Se você responder “yes”, você será solicitado a selecionar um nível de validação por senha.

Em seguida, seu servidor pedirá que você escolha e confirme uma senha para o root user do MySQL. Embora o método de autenticação predefinido para o root user dispense o uso de uma senha, mesmo quando uma senha está definida, você deve definir uma senha forte aqui como uma medida de segurança adicional.

Para o resto das perguntas, pressione Y e pressione a tecla ENTER em cada prompt.

Nota: no momento em que este artigo foi escrito, a biblioteca nativa do PHP para o MySQL mysqlnd não suporta o caching_sha2_authentication, o método de autenticação padrão para o MySQL 8. Por essa razão, ao criar usuários de banco de dados para aplicações PHP no MySQL 8, você precisará garantir que eles estejam configurados para usar o mysql_native_password. Por favor, consulte o passo 6 do nosso guia detalhado de LEMP no Ubuntu 20.04 para aprender como fazer isto.

Passo 3 — Instalar o PHP

Para instalar os pacotes php-fpm e php-mysql, execute:

  1. sudo apt install php-fpm php-mysql

Passo 4 — Configurar o Nginx para o PHP

Neste guia,vamos configurar um domínio chamado your_domain, mas você deve substituí-lo por seu próprio nome de domínio.

No Ubuntu 20.04, o Nginx tem um bloco de servidor habilitado por padrão que está configurado para servir documentos do diretório /var/www/html. Enquanto isso funciona bem para um único site, isso se torna difícil de gerenciar se você estiver hospedando vários sites. Em vez de modificar o /var/www/html, vamos criar uma estrutura de diretórios dentro do /var/www para o site your_domain, deixando o /var/www/html intocado como o diretório padrão para ser servido se uma solicitação de cliente não corresponder a nenhum outro site.

Crie o diretório para your_domain como segue:

  1. sudo mkdir /var/www/your_domain

Em seguida, atribua a propriedade do diretório com a variável de ambiente $USER, que deve fazer referência ao seu usuário de sistema atual:

  1. sudo chown -R $USER:$USER /var/www/your_domain

Em seguida, abra um novo arquivo de configuração no diretório sites-available do Nginx usando seu editor de linha de comando preferido. Aqui, usaremos o nano:

  1. sudo nano /etc/nginx/sites-available/your_domain

Isso criará um novo arquivo em branco. Cole nele a seguinte configuração:

/etc/nginx/sites-available/your_domain
server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

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

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

    location ~ /\.ht {
        deny all;
    }

}


Quando terminar de editar, salve e feche o arquivo. Se você estiver usando o nano, você pode fazer isso digitando CTRL+X e, depois, y e ENTER para confirmar.

Ative sua configuração vinculando ao arquivo de configuração no diretório sites-enabled do Nginx:

  1. sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Isso dirá ao Nginx para usar a configuração da próxima vez que ela for recarregada. Teste a configuração para conferir erros de sintaxe digitando:

  1. sudo nginx -t

Se algum erro for reportado, volte para seu arquivo de configuração para revisar seu conteúdo antes de continuar.

Quando estiver pronto, recarregue o Nginx para aplicar as alterações:

  1. sudo systemctl reload nginx

Agora, seu novo site está ativo, mas o web root /var/www/your_domain ainda está vazio. Crie um arquivo index.html naquele local para que possamos testar se o seu novo bloco de servidor funciona conforme esperado:

  1. nano /var/www/your_domain/index.html

Inclua o conteúdo a seguir neste arquivo:

/var/www/your_domain/index.html
<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

Agora, vá para seu navegador e acesse o nome de domínio ou endereço IP do seu servidor, conforme listado na diretiva server_name em seu arquivo de configuração de bloco de servidor:

http://server_domain_or_IP

Você verá uma página como esta:

Nginx server block

Passo 5 — Testar o PHP com o Nginx

Agora, vamos criar um script de teste PHP para confirmar que o Nginx consegue lidar e processar solicitações para arquivos PHP.

Crie um novo arquivo chamado info.php dentro de sua pasta web root personalizada:

  1. nano /var/www/your_domain/info.php

Isso abrirá um arquivo em branco. Adicione o conteúdo a seguir ao arquivo:

/var/www/your_domain/info.php
<?php
phpinfo();

Quando você terminar, salve e feche o arquivo.

Agora, você pode acessar essa página em seu navegador web visitando o nome de domínio ou o endereço IP público que você configurou em seu arquivo de configuração do Nginx, seguido por /info.php:

http://server_domain_or_IP/info.php

Você verá uma página web contendo informações detalhadas sobre seu servidor:

PHPInfo Ubuntu 20.04

Após verificar as informações relevantes sobre seu servidor PHP através dessa página, é melhor remover o arquivo que você criou, uma vez que ele contém informações sensíveis sobre seu ambiente PHP e seu servidor Ubuntu. Use o rm para remover esse arquivo:

  1. sudo rm /var/www/your_domain/info.php

Tutoriais relacionados

Aqui estão os links para os guias mais detalhados relacionados a este tutorial:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Developer Advocate

Dev/Ops passionate about open source, PHP, and Linux.

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.