Servidor Web · 4 min read · Oct 24, 2025
Como Instalar Nginx Com PHP E MySQL (LEMP Stack) No CentOS 7
Nginx (pronunciado “engine x”) é um servidor HTTP gratuito, de código aberto e de alto desempenho. O Nginx é conhecido por sua estabilidade, conjunto rico de recursos, configuração simples e baixo consumo de recursos. Este tutorial mostra como você pode instalar o Nginx em um servidor CentOS 7 com suporte a PHP (através do PHP-FPM) e suporte a MySQL (Mariadb).
1 Nota Preliminar
Neste tutorial, uso o nome do host server1.example.com com o endereço IP 192.168.1.105. Essas configurações podem diferir para você, então você deve substituí-las onde apropriado.
2 Habilitando Repositórios Adicionais
O Nginx não está disponível nos repositórios oficiais do CentOS, então incluímos o repositório do projeto Nginx para instalá-lo:
vi /etc/yum.repos.d/nginx.repo [nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=13 Instalando MySQL
Primeiro, instalamos o Mariadb. O Mariadb é um fork gratuito do MySQL. Execute este comando no shell:
yum install mariadb mariadb-server net-toolsEm seguida, criamos os links de inicialização do sistema para o MySQL (para que o MySQL inicie automaticamente sempre que o sistema for inicializado) e iniciamos o servidor MySQL:
systemctl enable mariadb.service
systemctl start mariadb.serviceAgora verifique se a rede está habilitada. Execute
netstat -tap | grep mysqlDeve mostrar algo como isto:
[root@example ~]# netstat -tap | grep mysql
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 10623/mysqld Execute
mysql_secure_installationpara definir uma senha para o usuário root (caso contrário, qualquer pessoa pode acessar seu banco de dados MySQL!):
[root@example ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not foundNOTE: EXECUTAR TODAS AS PARTES DESTE SCRIPT É RECOMENDADO PARA TODOS OS SERVIDORES MariaDB
EM USO EM PRODUÇÃO! POR FAVOR, LEIA CADA PASSO CUIDADOSAMENTE!Para fazer login no MariaDB e protegê-lo, precisaremos da senha atual
do usuário root. Se você acabou de instalar o MariaDB, e
você ainda não definiu a senha do root, a senha estará em branco,
portanto, você deve apenas pressionar enter aqui.Digite a senha atual para root (pressione enter para nenhum):
OK, senha usada com sucesso, prosseguindo...Definir senha root? [Y/n] <-- ENTER
Nova senha: <-- yourrootsqlpassword
Reinsira a nova senha: <-- yourrootsqlpassword
Senha atualizada com sucesso!
Recarregando tabelas de privilégios..
... Sucesso!Por padrão, uma instalação do MariaDB tem um usuário anônimo, permitindo que qualquer um
faça login no MariaDB sem precisar ter uma conta de usuário criada para
ele. Isso é destinado apenas para testes, e para tornar a instalação
mais suave. Você deve removê-los antes de passar para um
environmento de produção.Remover usuários anônimos? [Y/n] <-- ENTER
... Sucesso!Normalmente, o root deve ser permitido apenas conectar-se de 'localhost'. Isso
assegura que alguém não possa adivinhar a senha do root pela rede.Desabilitar login remoto do root? [Y/n] <-- ENTER
... Sucesso!Por padrão, o MariaDB vem com um banco de dados chamado 'test' que qualquer um pode
acessar. Isso também é destinado apenas para testes, e deve ser removido
antes de passar para um ambiente de produção.Remover banco de dados de teste e acesso a ele? [Y/n] <-- ENTER
- Removendo banco de dados de teste...
... Sucesso!
- Removendo privilégios no banco de dados de teste...
... Sucesso!Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora
entrem em vigor imediatamente.Recarregar tabelas de privilégios agora? [Y/n] <-- ENTER
... Sucesso!Limpando...Tudo pronto! Se você completou todos os passos acima, sua instalação do MariaDB
deve estar agora segura.Obrigado por usar o MariaDB!
[root@example ~]#[root@server1 ~]# mysql_secure_installation
4 Instalando Nginx
O Nginx está disponível como um pacote do nginx.org que podemos instalar da seguinte forma:
yum install nginxEm seguida, criamos os links de inicialização do sistema para o nginx e o iniciamos:
systemctl enable nginx.service
systemctl start nginx.serviceHá chances de você receber um erro como porta 80 já em uso, a mensagem de erro será assim:
[root@server1 ~]# service nginx start
Iniciando nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] ainda não conseguiu bind()
[FALHOU]
[root@server1 ~]#Então, isso significa que há chances de o serviço apache estar rodando lá. Pare o serviço e inicie o serviço para o NGINX da seguinte forma:
systemctl stop httpd.service
yum remove httpd
systemctl disable httpd.servicesystemctl enable nginx.service
systemctl start nginx.serviceE abra as portas http e https no firewall:
f firewall-cmd --permanent --zone=public --add-service=http
f firewall-cmd --permanent --zone=public --add-service=https
f firewall-cmd --reloadA saída resultante no shell será assim:
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=http
sucesso
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=https
sucesso
[root@example ~]# firewall-cmd --reload
sucesso
[root@example ~]#Digite o endereço IP ou nome do seu servidor web em um navegador (por exemplo, http://192.168.1.105), e você deve ver a página de boas-vindas do nginx:

Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.