Tutorial
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:
- sudo apt update
- 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):
- 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:
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:
- 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:
- 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:
- 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:
- 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:
- 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
:
- sudo nano /etc/nginx/sites-available/your_domain
Isso criará um novo arquivo em branco. Cole nele a seguinte configuração:
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:
- 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:
- 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:
- 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:
- nano /var/www/your_domain/index.html
Inclua o conteúdo a seguir neste arquivo:
<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:
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:
- nano /var/www/your_domain/info.php
Isso abrirá um arquivo em branco. Adicione o conteúdo a seguir ao arquivo:
<?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:
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:
- sudo rm /var/www/your_domain/info.php
Tutoriais relacionados
Aqui estão os links para os guias mais detalhados relacionados a este tutorial: