LEMP é um grupo de Software Livre. A sigla LEMP significa Linux, Nginx (pronuncia-se Engine x), MySQL e PHP .
Nginx é um software de servidor Web de código aberto robusto, pequeno, de alto desempenho, servidor proxy reverso e também servidor proxy de E-mail.
Os dados do site serão armazenados em um banco de dados MySQL (usando MariaDB) e o conteúdo dinâmico será processado pelo PHP 7.4.
O Pré Requisito para continuar com esse tutorial é que você já tenha o Linux CentOS 7 instalado.
Primeiro passo – Instalar o Nginx
No CentOS o Nginx não está disponível no repositório padrão. Vamos adicionar o repositório EPEL para que possamos instalar o Nginx através do yum.
yum install epel-release
Com o repositório EPEL instalado no servidor, vamos instalar o nginx
yum install nginx
Vamos iniciar o nginx
systemctl start nginx
Nós já podemos acessar utilizando o IP de seu servidor, a página “default” do nginx e certificar que tudo está ok. Caso não saiba ou tenha certeza de qual é o IP utilize:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
ou
curl http://icanhazip.com
Se está utilizando o CentOS 7, provavelmente precisará de uma nova regra ao Firewall padrão (firewalld), para permitir tráfego na porta 80.
Adicionando nova regra ao Firewalld
firewall-cmd --permanent --zone=public --add-service=http
ou
firewall-cmd --permanent --zone=public --add-port=80/tcp
Restart firewalld
systemctl restart firewalld.service
Abra seu Browser e acesse:
http://IP_do_Seu_Servidor
Você verá a página Default do NGINX, que é exibida para fins de informação e teste.

Segundo Passo – Instalar MySQL(MariaDB)
Agora que temos o servidor web NGINX instalado e configurado, vamos instalar o MariaDB, que irá armazenar e gerenciar os dados do site. O MariaDB é mantido pela comunidade de desenvolvedores originais do antigo e conhecido MySQL.
O MariaDB vem com repositórios padrão do CentOS, bastaria utilizar o yum para instala-lo rapidamente. Porém nós desejamos instalar o MariaDB 10.4, que não é a versão disponível como padrão . Após atualizar o servidor com yum , vamos adicionar o repositório do MariaDB e definir a versão ‘0.4
yum update -y;
Crie o arquivo abaixo e insira:
nano /etc/yum.repos.d/MariaDB.repo
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF
Atualize o cache do yum
yum makecache fast
Instale o MariaDB
yum -y install MariaDB-server MariaDB-client
Vamos dar um start no MariaDB e habilita-lo para iniciar após o reboot.
systemctl start mariadb systemctl enable mariadb
Com o MariaDB (MySQL) iniciado, precisamos executar um script de segurança que irá remover algumas configurações default e deixará nossa instalação mais segura.
mysql_secure_installation
A primeira opção irá perguntar qual é a senha do root para o MariaDB. Como acabamos de instalar o MariaDB, você deverá deixar esta opção em branco e pressionar enter para continuar. Na próxima questão será solicitado que digite uma senha para o root do MariaDB e confirme.
Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. New password: password Re-enter new password: password Password updated successfully! Reloading privilege tables.. ... Success!
Para as outras questões digite Y.
Remove anonymous users? [Y/n] Y ... Disallow root login remotely? [Y/n] Y ... Remove test database and access to it? [Y/n] Y ... Reload privilege tables now? [Y/n] Y
Teceiro Passo – Instalar o PHP 7.4
O PHP é o responsável em processar o código para exibir conteúdo dinâmico. Ele poderá executar scripts, conectar-se ao bancos de dados MySQL para obter informações e entregar o conteúdo processado ao seu servidor da Web para exibição.
O primeiro passo será instalar o repositório do CentOS que contém os pacotes de instalação do PHP 7.4
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm
Habilitar o repositório do php74:
yum install yum-utils -y yum-config-manager --enable remi-php74
Instalar pacotes do PHP:
yum --enablerepo=remi,remi-php74 install php-fpm php-common
Instalando módulos comuns:
yum --enablerepo=remi,remi-php74 install php-fpm php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Configurando o processamento do PHP
Nós já temos agora, o php 7.4 e componentes instalados no servidor mas precisamos fazer algumas modificações para manter o servidor mais seguro.
Edite o arquivo principal de configuração do php:
nano /etc/php.ini
Vamos configurar o PHP para aceitar apenas URLs de arquivos que realmente existem no servidor. Isso atenua uma vulnerabilidade de segurança em que o interpretador PHP pode ser induzido a permitir a execução de código arbitrário se o arquivo .php solicitado não estiver presente no sistema de arquivos.
Localize cgi.fix_pathinfo
altere para 0 , isso irá desabilitar essa função.Lembre-se de Remover o “;” antes do nome para descomentar essa função.
cgi.fix_pathinfo=0
Salve e saia do editor nano. ( ctrl+x , y)
Abra e edite o arquivo de configuração do php-fpm www.conf:
nano /etc/php-fpm.d/www.conf
Procure a linha “listen =” e modifique conforme abaixo:
listen = /var/run/php-fpm/php-fpm.sock
Localize listen.owner
e listen.group
. Descomente removendo o “;” antes das funções e altere para :
listen.owner = nginx listen.group = nginx
Localize user
e group
. Altere os valores de apache para nginx
user = nginx group = nginx
Salve e saia do editor nano. ( ctrl+x , y)
Agora, precisamos apenas iniciar nosso processador de PHP e habilitar para iniciar após o boot.
systemctl start php-fpm systemctl enable php-fpm
Quarto Passo – Configurar Nginx para processar páginas PHP 7.2
Agora vamos criar um novo arquivo de configuração para o Nginx . Substitua em server_name “nome_dominio_ou_IP_do_Seu_Servidor” para o IP de seu servidor :
nano /etc/nginx/conf.d/default.conf
Insira o código abaixo:
server {
listen 80;
server_name nome_dominio_ou_IP_do_Seu_Servidor;
# note that these lines are originally from the "location /" block
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Salve e saia do editor nano. ( ctrl+x , y)
Reinicie o nginx para que as modificações sejam carregadas.
systemctl restart nginx
Para Finalizar, vamos criar um arquivo de teste em php que trará informações sobre nosso servidor e php .
nano /usr/share/nginx/html/info.php
Insira o código:

Salve e saia do editor nano. ( ctrl+x , y) .
Agora acesse :
http://ip_do_seu_servidor/info.php.
Será exibido uma página semelhante a :

Agora você tem o LEMP instalado e configurado em seu servidor da melhor forma possível. Com estas configurações você poderá hospedar em seu servidor os mais diversos sistemas, como por exemplo WordPress, Joomla, etc…
Espero que tenha gostado!