Servidor web · 4 min read · Oct 24, 2025
Cómo instalar Nginx con PHP y MySQL (LEMP Stack) en CentOS 7
Nginx (pronunciado “engine x”) es un servidor HTTP gratuito, de código abierto y de alto rendimiento. Nginx es conocido por su estabilidad, conjunto de características ricas, configuración simple y bajo consumo de recursos. Este tutorial muestra cómo puedes instalar Nginx en un servidor CentOS 7 con soporte para PHP (a través de PHP-FPM) y soporte para MySQL (Mariadb).
1 Nota Preliminar
En este tutorial utilizo el nombre de host server1.example.com con la dirección IP 192.168.1.105. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.
2 Habilitando Repositorios Adicionales
Nginx no está disponible en los repositorios oficiales de CentOS, así que incluimos el repositorio del proyecto Nginx para instalarlo:
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
Primero instalamos Mariadb. Mariadb es un fork gratuito de MySQL. Ejecuta este comando en la terminal:
yum install mariadb mariadb-server net-toolsLuego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que se inicie el sistema) y comenzamos el servidor MySQL:
systemctl enable mariadb.service
systemctl start mariadb.serviceAhora verifica que la red esté habilitada. Ejecuta
netstat -tap | grep mysqlDebería mostrar algo como esto:
[root@example ~]# netstat -tap | grep mysql
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 10623/mysqld Ejecuta
mysql_secure_installationpara establecer una contraseña para el usuario root (de lo contrario, ¡cualquiera puede acceder a tu base de datos MySQL!):
[root@example ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not foundNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!Para iniciar sesión en MariaDB y asegurarla, necesitaremos la contraseña
actual para el usuario root. Si acabas de instalar MariaDB, y
no has establecido la contraseña de root aún, la contraseña estará en blanco,
por lo que solo debes presionar enter aquí.Introduce la contraseña actual para root (presiona enter si no hay):
OK, se utilizó la contraseña correctamente, continuando...Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MariaDB
sin la autorización adecuada.¿Establecer contraseña de root? [Y/n] <-- ENTER
Nueva contraseña: <-- yourrootsqlpassword
Reingresa la nueva contraseña: <-- yourrootsqlpassword
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
... ¡Éxito!Por defecto, una instalación de MariaDB tiene un usuario anónimo, permitiendo que cualquiera
pueda iniciar sesión en MariaDB sin tener que tener una cuenta de usuario creada para
el. Esto está destinado solo para pruebas, y para hacer que la instalación
sea un poco más fluida. Debes eliminarlos antes de pasar a un
entorno de producción.¿Eliminar usuarios anónimos? [Y/n] <-- ENTER
... ¡Éxito!Normalmente, solo se debería permitir que root se conecte desde 'localhost'. Esto
asegura que alguien no pueda adivinar la contraseña de root desde la red.¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <-- ENTER
... ¡Éxito!Por defecto, MariaDB viene con una base de datos llamada 'test' a la que cualquiera puede
acceder. Esto también está destinado solo para pruebas, y debe ser eliminado
antes de pasar a un entorno de producción.¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <-- ENTER
- Eliminando base de datos de prueba...
... ¡Éxito!
- Eliminando privilegios en la base de datos de prueba...
... ¡Éxito!Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora
tengan efecto inmediato.¿Recargar tablas de privilegios ahora? [Y/n] <-- ENTER
... ¡Éxito!Limpiando...¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MariaDB
debería estar ahora segura.¡Gracias por usar MariaDB!
[root@example ~]#[root@server1 ~]# mysql_secure_installation
4 Instalando Nginx
Nginx está disponible como un paquete de nginx.org que podemos instalar de la siguiente manera:
yum install nginxLuego creamos los enlaces de inicio del sistema para nginx y lo iniciamos:
systemctl enable nginx.service
systemctl start nginx.serviceHay posibilidades de que obtengas un error como que el puerto 80 ya está en uso, el mensaje de error será algo como esto
[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] still could not bind()
[FAILED]
[root@server1 ~]#Entonces significa que hay posibilidades de que el servicio de apache esté corriendo allí. Detén el servicio y luego inicia el servicio para NGINX de la siguiente manera
systemctl stop httpd.service
yum remove httpd
systemctl disable httpd.servicesystemctl enable nginx.service
systemctl start nginx.serviceY abre los puertos http y https en el firewall
firebase-cmd --permanent --zone=public --add-service=http
firebase-cmd --permanent --zone=public --add-service=https
firebase-cmd --reloadLa salida resultante en la terminal se verá así:
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@example ~]# firewall-cmd --reload
success
[root@example ~]#Escribe la dirección IP o el nombre de host de tu servidor web en un navegador (por ejemplo, http://192.168.1.105), y deberías ver la página de bienvenida de nginx:

Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.