// Tutorial //

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

Published on June 11, 2020
Default avatar
By Erika Heidi
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:


Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a developer and scale your project or business, and subscribe to topics of interest.

Sign up
About the authors
Default avatar
Developer Advocate

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

Still looking for an answer?

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!