Introdução

Neste guia, você instalará uma pilha LEMP em um servidor do CentOS 8. Embora o MySQL esteja disponível nos repositórios padrão do CentOS 8, este guia irá guiá-lo pelo processo de configuração de uma pilha LEMP com o MariaDB como o sistema de gerenciamento de banco de dados.

Para obter uma versão mais detalhada deste tutorial, com mais explicações de cada passo, consulte o tutorial sobre Como instalar o Linux, o Nginx, o MySQL e a pilha PHP (LEMP) no CentOS 8.

Pré-requisitos

php illustration for: Pré-requisitos

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

Passo 1 — Instalar o Nginx

Instale o pacote nginx com:

				
					
sudo dnf install nginx

				
			

Após a instalação terminar, execute o seguinte comando para habilitar e iniciar o servidor:

				
					
sudo systemctl start nginx

				
			

Se o firewalld estiver ativo, você precisará executar o seguinte comando para permitir o acesso externo na porta 80 (HTTP):

				
					
sudo firewall-cmd --permanent --add-service=<^>http<^>

				
			

Recarregue a configuração do firewall para que as alterações entrem em vigor:

				
					
sudo firewall-cmd --reload

				
			

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 MariaDB

Agora, vamos instalar o MariaDB, uma bifurcação – desenvolvida pela comunidade – do servidor MySQL original da Oracle. Para instalar esse software, execute:

				
					
sudo dnf install mariadb-server

				
			

Quando a instalação terminar, habilite e inicie o servidor MariaDB com:

				
					
sudo systemctl start mariadb

				
			

Para melhorar a segurança do seu servidor de banco de dados, é recomendável que execute um script de segurança que vem pré-instalado com o MariaDB. Inicie o script interativo com:

				
					
sudo mysql_secure_installation

				
			

O primeiro prompt pedirá que digite a senha da root do banco de dados atual. Como você instalou o MariaDB e ainda não fez nenhuma alteração de configuração, essa senha estará em branco. Dessa forma, pressione apenas ENTER no prompt.

O próximo prompt pergunta a você se deseja configurar uma senha root do banco de dados. Como o MariaDB usa um método especial de autenticação para o usuário root, o que, normalmente, é mais seguro do que usar uma senha, você não precisa definir isso agora. Digite N e, em seguida, pressione ENTER.

A partir daí, pressione Y e, depois, ENTER para aceitar as configurações padrão para todas as perguntas subsequentes.

Passo 3 — Instalar o PHP-FPM

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

				
					
sudo dnf install php-fpm php-mysqlnd

				
			

Quando a instalação terminar, você precisará editar o arquivo /etc/php-fpm.d/www.conf para ajustar algumas configurações. Vamos instalar o nano para facilitar a edição desses arquivos:

				
					
sudo dnf install nano

				
			

Agora, abra o arquivo de configuração /etc/php-fpm.d/www.conf usando o nano ou o editor de sua escolha:

				
					
sudo nano /etc/php-fpm.d/www.conf

				
			

Procure pelas diretivas de user e group. Se estiver usando o nano, você pode pressionar CTRL+W para pesquisar por esses termos dentro do arquivo aberto. Certifique-se de alterar ambos os valores de apache para nginx:

				
					
[label /etc/php-fpm.d/www.conf]

…

; RPM: apache user chosen to provide access to the same directories as httpd

user = <^>nginx<^>

; RPM: Keep a group allowed to write in log dir.

group = <^>nginx<^>

…

				
			

Salve e feche o arquivo quando terminar de editar.

Para habilitar e iniciar o serviço php-fpm, execute:

				
					
sudo systemctl start php-fpm

				
			

Por fim, reinicie o servidor Web Nginx para que ele carregue os arquivos de configuração criados pela instalação do php-fpm:

				
					
sudo systemctl restart nginx

				
			

Passo 4 — Testar o PHP com o Nginx

No CentOS 8, a instalação padrão do php-fpm cria automaticamente arquivos de configuração que permitirão que seu servidor Web Nginx gerencie os arquivos .php no diretório base padrão, localizado em /usr/share/nginx/html. Você não precisará fazer nenhuma alteração na configuração do Nginx para que o PHP funcione corretamente dentro do seu servidor Web.

Só precisaremos modificar o proprietário e o grupo padrão no diretório base do Nginx, de modo que você possa criar e modificar arquivos naquele local usando seu usuário de sistema não raiz regular:

				
					
sudo chown -R <^>sammy<^>.<^>sammy<^> /usr/share/nginx/html/

				
			

Crie um arquivo PHP chamado info.php no diretório /usr/share/nginx/html:

				
					
nano /usr/share/nginx/html/<^>info.php<^>

				
			

O código PHP a seguir exibirá informações sobre o ambiente PHP atual em execução no servidor:

				
					
[label /usr/share/nginx/html/info.php]

<?php



phpinfo();

				
			

Copie esse conteúdo para seu arquivo info.php e não se esqueça de salvá-lo quando tiver terminado.

Agora, podemos testar se nosso servidor Web consegue exibir corretamente o conteúdo gerado por um script PHP. Vá até seu navegador e acesse o nome do host ou endereço IP do seu servidor, seguido por /info.php:

				
					
http://<^>server_host_or_IP<^>/info.php

				
			

Você verá uma página parecida com esta: