Nginx es un servidor web de código abierto y alto rendimientor . Es conocido por su estabilidad, configuración muy simple, conjunto completo de funciones y bajo consumo de recursos.
Nginx le permite usarlo como proxy inverso, equilibrador de carga, caché HTTP y proxy de correo.
Esta publicación le muestra cómo instalar Nginx en CentOS 8/RHEL 8 con compatibilidad con PHP (a través de PHP-FPM) y compatibilidad con MariaDB.
PHP-FPM es una implementación alternativa de PHP FastCGI. Tiene características adicionales que son útiles para sitios de cualquier tamaño, especialmente para sitios más concurridos.
Instalar Linux
Siga los enlaces para instalar un sistema operativo Linux
LEER: Cómo instalar CentOS 8 (con captura de pantalla)
LEER: Cómo instalar Red Hat Enterprise Linux 8 (con captura de pantalla) o actualizar de RHEL 7 a RHEL 8.
A estas alturas, debería tener un sistema Linux listo con usted. Ahora, instalaremos Nginx, MariaDB y PHP-FPM encima.
Los pasos mencionados en este artículo solo funcionarán si ha habilitado la suscripción a Red Hat en RHEL 8 o ha configurado el repositorio local de yum en su sistema.Inicie sesión en el sistema como usuario raíz o cambie al usuario raíz.
$ su -
Instalar Nginx
Instalar Nginx usando el repositorio base
En RHEL 8, Nginx está disponible en el repositorio rhel-8-for-x86_64-appstream-rpms. Por lo tanto, no necesitamos configurar el repositorio de Nginx manualmente.
Instale Nginx usando el comando YUM.
yum -y install nginx
Instalar Nginx usando el repositorio oficial de Nginx
Agregue el repositorio Nginx a su sistema.
### CentOS 8 ### cat << EOF > /etc/yum.repos.d/nginx.repo [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/8/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key EOF ### RHEL 8 ### cat << EOF > /etc/yum.repos.d/nginx.repo [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/rhel/8/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key EOF
Instale Nginx desde el repositorio oficial de Nginx deshabilitando temporalmente el repositorio de AppStream.
yum install -y nginx --disablerepo=* --enablerepo=nginx-mainline
Inicie el servicio del servidor web Nginx después de la instalación.
systemctl start nginx
Verifique el estado del servicio del servidor web Nginx usando el siguiente comando.
systemctl status nginx
Cortafuegos
Permita que las solicitudes web fluyan a través del firewall ejecutando los siguientes comandos.
firewall-cmd --permanent --add-service=http firewall-cmd --reload
SELinux
Si obtiene algún error para SELinux en los registros de Nginx, aquí está el tutorial sobre cómo configurar la política de SELinux para Nginx.
De lo contrario, puede deshabilitar temporalmente SELinux usando el siguiente comando. Pero le sugerimos que deshabilite SELinux de forma permanente.
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
Verificar la instalación de Nginx
Abra su navegador web y visite la siguiente URL.
http://tu-direccion-ipNginx instalado desde el repositorio de Red Hat:
Debería ver la siguiente página Bienvenido a nginx en Red Hat Enterprise Linux . Esta página le confirma que el servidor web Ngnix se instaló correctamente en el servidor.
Nginx instalado mediante el repositorio oficial de Nginx:
La raíz del documento predeterminada de Nginx en CentOS 8/RHEL 8 es /usr/share/nginx/html/. Otros archivos de configuración se encuentran en el directorio /etc/nginx.Habilite el servicio Nginx al iniciar el sistema.
systemctl enable nginx
Instalar MariaDB
CentOS 8/RHEL 8 viene con MariaDB 10.3. Instale el servidor MariaDB usando el comando yum.
También puede instalar paquetes de MariaDB desde la comunidad de MariaDB.
LEER :Cómo instalar MariaDB en CentOS 8 / RHEL 8
yum -y install mariadb mariadb-server
Inicie el servidor MariaDB usando el siguiente comando.
systemctl start mariadb
Habilite el servicio MariaDB para que se inicie automáticamente durante el arranque del sistema.
systemctl enable mariadb
Una vez que se complete la instalación del servidor MariaDB, ejecute el comando mysql_secure_installation para asegurar MariaDB.
Instalar PHP
CentOS 8/RHEL 8 viene con PHP 7.2. Instale PHP a través de PHP-FPM (FastCGI Process Manager usando el comando YUM.
Si lo desea, puede instalar PHP 7.3 usando el repositorio de Remi.
LEER: Cómo instalar PHP 7.3 en CentOS 8 / RHEL 8
yum -y install php-fpm php-mysqlnd php-cli
Edite /etc/php.ini.
vi /etc/php.ini
establezca cgi.fix_pathinfo en 0.
cgi.fix_pathinfo=0
Edite el archivo /etc/php-fpm.d/www.conf.
vi /etc/php-fpm.d/www.conf
Asegúrese de que los siguientes valores no estén comentados.
[.More.] pm.min_spare_servers = 5 [.More.] pm.max_spare_servers = 35 [.More.]
Cambie el parámetro Escuchar.
DE
listen = /run/php-fpm/www.sock
A
listen = 127.0.0.1:9000
Luego, inicie el servicio PHP-FPM.
systemctl start php-fpm
Habilite el servicio PHP-FPM para que se inicie automáticamente al arrancar el sistema.
systemctl enable php-fpm
Habilitar la compatibilidad con PHP-FPM en el host virtual
Ahora crearemos un host virtual en el servidor Nginx para los siguientes detalles para probar el PHP.
Nombre del servidor: web.itzgeek.local
Raíz del documento: /usr/share/nginx/html/web.itzgeek.local
Cree un archivo de configuración llamado web.itzgeek.local.conf en /etc/nginx/conf.d y edítelo.
vi /etc/nginx/conf.d/web.itzgeek.local.conf
Agrega el siguiente contenido.
server { server_name web.itzgeek.local; root /usr/share/nginx/html/web.itzgeek.local; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Cree un directorio raíz de documentos.
mkdir /usr/share/nginx/html/web.itzgeek.local
Para probar el PHP, colocaremos un archivo PHP en la raíz del documento del servidor virtual creado.
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/web.itzgeek.local/index.php
Reinicie los servicios.
systemctl restart nginx systemctl restart php-fpm
Pila LEMP de prueba
Cree una entrada de host para el dominio de su servidor web (server.itzgeek.local) en el archivo /etc/hosts (Linux) y hosts (Windows).
192.168.1.10 web.itzgeek.local
Abra un navegador web e ingrese su dominio en la barra de direcciones.
http://web.itzgeek.localLa página se verá como a continuación.
De la captura de pantalla anterior, PHP funciona como se esperaba y funciona a través de FPM/FastCGI, como se muestra en la línea API del servidor.
Puede desplazarse por la página más abajo para ver los detalles de soporte de MariaDB.
Temas de interés
Cómo configurar Let's Encrypt SSL con Nginx en CentOS 8/RHEL 8
Cómo instalar WordPress con Nginx en CentOS 8 / RHEL 8
Cómo instalar phpMyAdmin con Nginx en CentOS 8/RHEL 8
Conclusión
Ha aprendido a instalar la pila LEMP en CentOS 8/RHEL 8. Comparta sus comentarios en la sección de comentarios.