Este tutorial mostra como instalar a pilha LEMP (Nginx, MariaDB e PHP7.4) no Ubuntu 20.04 . Uma pilha (stack) de software é um conjunto de ferramentas de software agrupadas.
LEMP significa Linux, Nginx (Engine-X), MariaDB / MySQL e PHP, todos de código aberto e de uso gratuito. É a pilha de software mais comum que alimenta sites dinâmicos e aplicativos da web. Linux é o sistema operacional;
Nginx é o servidor da web; MariaDB / MySQL é o servidor de banco de dados e PHP é a linguagem de script do lado do servidor responsável pela geração de páginas da web dinâmicas.
ÍNDICE DE CONTEÚDO
Pré-requisitos
Para seguir este tutorial, você precisa de um sistema operacional Ubuntu 20.04 em execução no computador local ou em um servidor remoto.
Se você estiver procurando por um VPS (Virtual Private Server), poderá registrar uma conta no DigitalOcean através deste link especial para obter $ 50 de crédito grátis. (Apenas para novos usuários).
Também usamos e recomendamos a Vultr, use nosso link especial para obter $ 100 de crédito grátis (somente para novos usuários).
E se você precisar configurar a pilha LEMP com um nome de domínio, recomendo comprar um domínio na NameCheap porque o preço é baixo e eles oferecem a proteção da privacidade de quem é gratuita por toda a vida.
Etapa 1: atualizar pacotes de software
Antes de instalar a pilha LEMP, é uma boa prática atualizar os pacotes de repositório e software executando os seguintes comandos no sistema operacional Ubuntu 20.04.
sudo apt update
sudo apt upgrade
Etapa 2: Instalar o Nginx Web Server
Nginx é um servidor web de alto desempenho e muito popular atualmente. Também pode ser usado como proxy reverso e servidor de armazenamento em cache.
Digite o seguinte comando para instalar o Nginx:
sudo apt install nginx
Após a instalação, podemos ativar o Nginx para iniciar automaticamente no momento da inicialização executando o seguinte comando.
sudo systemctl enable nginx
Em seguida, inicie o Nginx com este comando:
sudo systemctl start nginx
Agora confira seu status.
sudo systemctl status nginx
Resultado:
nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-10 14:11:43 UTC; 3s ago Docs: man:nginx(8) Process: 8533 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 8545 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 8549 (nginx) Tasks: 3 (limit: 9451) Memory: 3.9M CGroup: /system.slice/nginx.service ├─8549 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─8550 nginx: worker process └─8551 nginx: worker process
“Active” indica que a inicialização automática no momento da inicialização está ativada e podemos ver que o Nginx está em execução. Você também pode ver a quantidade de RAM que o Nginx está usando na saída.
Se o comando acima não sair imediatamente após a execução. Você precisa pressionar ” q ” para sair.
Verifique a versão do Nginx.
nginx -v
Resultado:
nginx version: nginx/1.17.9 (Ubuntu)
Agora digite o endereço IP público do seu servidor Ubuntu 20.04 na barra de endereços do navegador. Você deverá ver a página da Web “Bem-vindo ao Nginx”, o que significa que o servidor da Web Nginx está sendo executado corretamente.
Se você estiver instalando o LEMP no computador Ubuntu 20.04 local, digite 127.0.0.1
ou localhost
na barra de endereços do navegador.
Se a conexão for recusada ou falhou ao concluir, pode haver um firewall impedindo solicitações de entrada para a porta TCP 80. Se você estiver usando o firewall iptables, precisará executar o seguinte comando para abrir a porta TCP 80.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Se você estiver usando o firewall UFW, execute este comando para abrir a porta TCP 80.
sudo ufw allow http
Finalmente, precisamos criar www-data
(usuário do Nginx) como o proprietário do diretório da web. Por padrão, ele pertence ao usuário root.
sudo chown www-data:www-data /usr/share/nginx/html -R
Etapa 3: Instalar o servidor de banco de dados MariaDB
MariaDB é um substituto para o MySQL. Ele é desenvolvido por ex-membros da equipe do MySQL que estão preocupados que o Oracle possa transformar o MySQL em um produto de código fechado.
Digite o seguinte comando para instalar o MariaDB no Ubuntu 20.04.
sudo apt install mariadb-server mariadb-client
Depois de instalado, o servidor MariaDB deve ser automaticamente visualizado. Use systemctl para verificar seu status.
systemctl status mariadb
Resultado:
mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 9161 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 9451) Memory: 64.7M CGroup: /system.slice/mariadb.service └─9161 /usr/sbin/mysqld
Se não estiver em execução, inicie-o com este comando:
sudo systemctl start mariadb
Para permitir que o MariaDB inicie automaticamente no momento da inicialização, execute
sudo systemctl enable mariadb
Agora execute o script de segurança pós-instalação.
sudo mysql_secure_installation
Quando solicitar que você digite a senha root do MariaDB, pressione a tecla Enter, pois a senha root ainda não está definida. Em seguida, digite y para definir a senha raiz do servidor MariaDB.
Em seguida, você pode pressionar Enter para responder a todas as perguntas restantes, o que removerá o usuário anônimo, desabilitará o login raiz remoto e remover o banco de dados de teste.
Esta etapa é um requisito básico para a segurança do banco de dados MariaDB. (Observe que Y é maiúsculo, o que significa que é a resposta padrão.)
Por padrão, o pacote MaraiDB no Ubuntu usa unix_socket
para autenticar o login do usuário, o que basicamente significa que você pode usar o nome de usuário e a senha do sistema operacional para fazer login no console do MariaDB.
Portanto, você pode executar o seguinte comando para efetuar login sem fornecer a senha root do MariaDB.
sudo mariadb -u root
Para sair, execute
exit;
Verifique as informações da versão do servidor MariaDB.
mariadb --version
Como você pode ver, instalamos o MariaDB 10.3.22.
mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Etapa 4: Instale o PHP 7.4
O PHP 7.4 está incluído no repositório Ubuntu 20.04 e possui uma pequena melhoria de desempenho em relação ao PHP7.3.
Digite o seguinte comando para instalar o PHP7.4 e algumas extensões comuns.
sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl
As extensões PHP são geralmente necessárias para sistemas de gerenciamento de conteúdo (CMS) como o WordPress. Por exemplo, se sua instalação falhar php7.4-xml
, algumas das páginas do site WordPress poderão ficar em branco e você poderá encontrar um erro no log de erros do Nginx, como:
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create()
A instalação dessas extensões PHP garante que o seu CMS funcione sem problemas. Agora inicie o php7.4-fpm.
sudo systemctl start php7.4-fpm
Habilite o início automático no momento da inicialização.
sudo systemctl enable php7.4-fpm
Verificar status:
status do systemctl php7.4-fpm
Saída de amostra:
php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor pr> Active: active (running) since Fri 2020-04-10 14:40:26 UTC; 12s ago Docs: man:php-fpm7.4(8) Process: 21019 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /ru> Main PID: 21012 (php-fpm7.4) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req> Tasks: 3 (limit: 9451) Memory: 9.4M CGroup: /system.slice/php7.4-fpm.service ├─21012 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf) ├─21017 php-fpm: pool www └─21018 php-fpm: pool www
Se o comando acima não sair imediatamente após a execução. Você precisa pressionar ” q ” para sair.
Etapa 5: criar um bloco de servidor Nginx
Um bloco de servidor Nginx é como um host virtual no Apache. Não usaremos o bloco de servidor padrão porque é inadequado executar o código PHP e, se o modificarmos, ele se tornará uma bagunça.
Portanto, remova o default
link simbólico no sites-enabled
diretório executando o seguinte comando. (Ainda está disponível como /etc/nginx/sites-available/default
.)
sudo rm /etc/nginx/sites-enabled/default
Em seguida, use um editor de texto da linha de comando como o Nano para criar um novo arquivo de bloco de servidor no diretório /etc/nginx/conf.d/ .
sudo nano /etc/nginx/conf.d/default.conf
Cole o seguinte texto no arquivo. O seguinte trecho fará com que o Nginx escute na porta IPv4 80 e na porta 80 IPv6 com um nome de servidor abrangente.
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
Salve e feche o arquivo. (Para salvar um arquivo no editor de texto Nano, pressione Ctrl+O
e pressione Enter
para confirmar. Para sair, pressione Ctrl+X
.)
Em seguida, teste as configurações do Nginx.
sudo nginx -t
Se o teste for bem-sucedido, recarregue o Nginx.
sudo systemctl reload nginx
Etapa 6: teste o PHP
Para testar o PHP-FPM com o servidor da Web Nginx, precisamos criar um info.php
arquivo no diretório webroot.
sudo nano /usr/share/nginx/html/info.php
Cole o seguinte código PHP no arquivo
<?php phpinfo(); ?>
Salve e feche o arquivo.
Agora, na barra de endereços do navegador, insira server-ip-address/info.php
.
Substitua sever-ip-address
pelo seu IP real. Se você seguir este tutorial no computador local, digite 127.0.0.1/info.php
ou localhost/info.php
.
Você deve ver as informações PHP do seu servidor. Isso significa que os scripts PHP podem ser executados corretamente com o servidor da web Nginx.
Para segurança do seu servidor, você deve excluir o arquivo info.php
agora para impedir que hackers o vejam.
sudo rm /usr/share/nginx/html/info.php
Prontinho!
Parabéns! Você instalou o Nginx, o MariaDB e o PHP7.4 no Ubuntu 20.04.
Deixe um comentário.