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

php illustration for: 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:

				
					
[label /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:

				
					
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/&lt;^&gt;your_domain&lt;^&gt;/index.html

				
			

Inclua o conteúdo a seguir neste arquivo:

				
					
[label /var/www/your_domain/index.html]

&lt;html&gt;

 &lt;head&gt;

 &lt;title&gt;&lt;^&gt;your_domain&lt;^&gt; website&lt;/title&gt;

 &lt;/head&gt;

 &lt;body&gt;

 &lt;h1&gt;Hello World!&lt;/h1&gt;



 &lt;p&gt;This is the landing page of &lt;strong&gt;&lt;^&gt;your_domain&lt;^&gt;&lt;/strong&gt;.&lt;/p&gt;

 &lt;/body&gt;

&lt;/html&gt;

				
			

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://&lt;^&gt;server_domain_or_IP&lt;^&gt;

				
			

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/&lt;^&gt;your_domain&lt;^&gt;/info.php

				
			

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

				
					
[label /var/www/your_domain/info.php]

&lt;?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://&lt;^&gt;server_domain_or_IP&lt;^&gt;/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/&lt;^&gt;your_domain&lt;^&gt;/info.php

				
			

Tutoriais relacionados

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