GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo instalar y configurar PHP y Nginx (LEMP) en Rocky Linux/Alma Linux 8

PHP es un lenguaje de secuencias de comandos de propósito general orientado al desarrollo web. Es uno de los lenguajes de programación populares para la web. Las herramientas populares como WordPress están codificadas usando php. Las grandes empresas como Facebook también usan mucho php.

Nginx es un servidor web que también se puede utilizar como proxy inverso, equilibrador de carga, proxy de correo y caché HTTP. Comenzó como un servidor web diseñado para el máximo rendimiento y estabilidad. Nginx ha crecido en popularidad desde su lanzamiento debido a su uso ligero de recursos y su capacidad de escalar fácilmente en un hardware mínimo. Nginx se destaca en la entrega rápida de contenido estático y está diseñado para pasar solicitudes dinámicas a otro software que se adapta mejor a esos fines.

Contenido relacionado

  • Cómo instalar y configurar PHP y Nginx (LEMP) en OpenSUSE Leap 15.3
  • Cómo instalar la pila Apache PHP 7.4 (LAMP) en Rocky Linux/Centos 8
  • Cómo instalar y configurar PHP y Apache (pila LAMP) en Ubuntu 20.04
  • Cómo instalar y configurar PHP y Nginx (LEMP) en Ubuntu 20.04
  • Cómo instalar y configurar PHP y Apache (pila LAMP) en Debian 11
  • Cómo instalar y configurar PHP y Nginx (LEMP) en Debian 11

Tabla de contenido

  1. Asegurarse de que el servidor esté actualizado
  2. Instalación de PHP en Rocky Linux/Alma Linux 8
  3. Instalación de Nginx en Rocky Linux/Alma Linux 8
  4. Instalación de php-fpm en Rocky Linux/Alma Linux 8
  5. Creación de un sitio simple y configuración de host virtual
  6. Probar la configuración

1. Asegurarse de que el servidor esté actualizado

Antes de continuar, siempre es una buena práctica asegurarse de que el servidor esté actualizado. Usa estos comandos para lograr esto

sudo df update -y

2. Instalación de PHP en Rocky Linux/Alma Linux 8

Para que se sirvan los archivos php, es necesario configurar php en el sistema. En esta guía instalaremos php 7.4.

PHP 7.4 aún no está disponible en los repositorios predeterminados. El Repositorio Remi es el repositorio perfecto para instalar php7.4. Remi repo es un repositorio YUM gratuito y estable principalmente para la pila de PHP. Contiene paquetes para las últimas versiones de PHP.

Para habilitar Remi Repository en nuestro Servidor Centos:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Confirme que el repositorio remi se ha instalado y habilitado con este comando:

$ sudo dnf repolist
repo id                                 repo name
appstream                               CentOS Linux 8 - AppStream
baseos                                  CentOS Linux 8 - BaseOS
epel                                    Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                            Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                  CentOS Linux 8 - Extras
remi-modular                            Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                               Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

Debería ver los repositorios remi como parte de la lista.

Ahora que se ha instalado el repositorio, busquemos php. Usa este comando:

$ sudo dnf module list php
Last metadata expiration check: 0:49:30 ago on Wed 22 Dec 2021 04:23:13 AM UTC.
Rocky Linux 8 - AppStream
Name           Stream             Profiles                            Summary
php            7.2 [d]            common [d], devel, minimal          PHP scripting language
php            7.3                common [d], devel, minimal          PHP scripting language
php            7.4                common [d], devel, minimal          PHP scripting language

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name           Stream             Profiles                            Summary
php            remi-7.2           common [d], devel, minimal          PHP scripting language
php            remi-7.3           common [d], devel, minimal          PHP scripting language
php            remi-7.4           common [d], devel, minimal          PHP scripting language
php            remi-8.0           common [d], devel, minimal          PHP scripting language
php            remi-8.1           common [d], devel, minimal          PHP scripting language

De la lista. podemos ver que el predeterminado es 7.2. Realizando una dnf install php instalará 7.2 que no queremos. Habilitemos el 7.4 usando este comando:

sudo dnf module enable php:remi-7.4

Si por alguna razón falla, puede restablecer el módulo existente con este comando:

sudo dnf module reset php

Ahora que se ha habilitado el repositorio, instalemos php con este comando:

sudo dnf install -y php \
    php-common \
    php-cli

Una vez exitoso. confirme la versión instalada con este comando:

$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

3. Instalación de Nginx en Rocky Linux

Usaremos Nginx para servir el contenido de PHP. Nginx, como servidor web estable de alto rendimiento y con un consumo de recursos muy bajo, es la pareja perfecta para PHP-FPM. Nginx tiene una arquitectura asíncrona que es mucho más escalable, basada en eventos.

Nginx está disponible en los repositorios predeterminados de Rocky Linux/Alma Linu. Instálalo usando este comando:

sudo dnf install -y nginx

Confirme el nginx instalado

$ rpm -qi nginx
Name        : nginx
Epoch       : 1
Version     : 1.14.1
Release     : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Wed 22 Dec 2021 05:16:08 AM UTC
Group       : System Environment/Daemons
Size        : 1669719
License     : BSD
Signature   : RSA/SHA256, Thu 10 Jun 2021 09:22:38 AM UTC, Key ID 15af5dac6d745a60
Source RPM  : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date  : Thu 10 Jun 2021 09:10:40 AM UTC
Build Host  : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://nginx.org/
Summary     : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low

El servicio no se iniciará de forma predeterminada. Para iniciar Nginx, use este comando:

sudo systemctl start nginx

Confirme el estado usando este comando:

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 45s ago
  Process: 118235 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 118228 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 118226 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 118237 (nginx)
    Tasks: 3 (limit: 23167)
   Memory: 5.0M
   CGroup: /system.slice/nginx.service
           ├─118237 nginx: master process /usr/sbin/nginx
           ├─118238 nginx: worker process
           └─118239 nginx: worker process

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.

Para habilitar el servicio en el arranque, use este comando systemd:

sudo systemctl enable nginx

4. Instalación de PHP FPM en Rocky Linux/Alma Linux 8

PHP-FPM (un acrónimo de FastCGI Process Manager) es una implementación alternativa de FastCGI de PHP (procesador de hipertexto) muy popular. PHP-FPM es la implementación alternativa más popular de PHP FastCGI. Tiene características adicionales que son realmente útiles para sitios web de alto tráfico. Al usar Nginx con PHP-FPM se mejora el rendimiento a nivel de consumo de memoria.

PHP se ejecuta como un servicio separado cuando se usa PHP-FPM. Al usar esta versión de PHP como intérprete de lenguaje, las solicitudes se procesan a través de un socket TCP/IP; para que el servidor web Nginx solo maneje las solicitudes HTTP y PHP-FPM interprete el código PHP. El hecho de tener dos servicios separados es clave para aumentar la eficiencia.

Instale php-fpm usando este comando:

sudo dnf install -y php-fpm

El servicio no se iniciará de forma predeterminada. Para iniciarlo, use este comando systemd:

sudo systemctl start php-fpm

Verifique el estado del servicio para confirmar que se está ejecutando con este comando:

$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 3min 5s ago
 Main PID: 118227 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 23167)
   Memory: 22.9M
   CGroup: /system.slice/php-fpm.service
           ├─118227 php-fpm: master process (/etc/php-fpm.conf)
           ├─118230 php-fpm: pool www
           ├─118231 php-fpm: pool www
           ├─118232 php-fpm: pool www
           ├─118233 php-fpm: pool www
           └─118234 php-fpm: pool www

Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.

5. Creando un sitio simple y configurando host virtual

Nginx le permite atender múltiples sitios utilizando hosts virtuales. El concepto de hosts virtuales permite más de un sitio web en un sistema o servidor web. Los servidores se diferencian por su nombre de host. Los visitantes del sitio web se enrutan por nombre de host o dirección IP al host virtual correcto. El alojamiento virtual permite que las empresas que comparten un servidor tengan sus propios nombres de dominio.

En este ejemplo, usaremos el dominio site1.citizix.com para el host virtual, pero podrá usar el dominio que prefiera. Tenga en cuenta que el DNS del dominio que se utilizará ya debe estar configurado para apuntar a la dirección IP del servidor. Confirme eso con:

dig -t A site1.citizix.com

Crear un directorio y agregar contenido de muestra

La página predeterminada de nginx está configurada como un host virtual predeterminado que sirve contenido desde /var/www/html . Es una buena práctica crear el directorio de su sitio en el /var/www directorio ya que es una mejor práctica servir desde allí.

Vamos a crear un directorio para nuestro sitio con el siguiente comando:

sudo mkdir /var/www/site1.citizix.com

Vamos a crear un simple index.php página para servir desde nuestro sitio. Necesitará vim instalado para que esto funcione, si no, use este comando:

sudo dnf install -y vim

Edite el archivo:

sudo vim /var/www/site1.citizix.com/index.php

Agregar contenido al archivo:

<?php phpinfo(); ?>

Creación de host virtual (bloques de servidor)

Se pueden usar bloques de servidor Nginx para encapsular detalles de configuración y alojar más de un dominio en un solo servidor. Vamos a crear un host virtual para nuestro sitio (site1.citizix.com).

Las configuraciones de hosts virtuales de Nginx se almacenan en el directorio /etc/nginx/conf.d/ . Vamos a crear una configuración para nuestro sitio:

sudo vim /etc/nginx/conf.d/site1.citizix.com.conf

Agrega el siguiente contenido

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com.log;
    error_log  /var/log/nginx/site1.citizix.com.log;

    root /var/www/site1.citizix.com;
    index index.php;

    if ($host !~* ^(site1.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Reiniciemos el servicio nginx y php-fpm para que se aplique la configuración

sudo systemctl restart php-fpm
sudo systemctl restart nginx

6. Probando la configuración

Para probar la configuración, abra su navegador y cargue el dominio que configuró. En mi caso es http://site1.citizix.com . Deberías ver la página de información de php.

Si aún no ha configurado su configuración de DNS o simplemente no desea que el sitio se active todavía, puede modificar el archivo de hosts de su computadora. Para hacer esto, use el siguiente comando en la CLI de su computadora local

sudo vim /etc/hosts

Luego, agregue la dirección IP de su servidor real seguida del nombre de dominio que está configurando, por ejemplo:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Ahora debería poder guardar el archivo y acceder a él desde un navegador web.

Conclusión

Hosts virtuales Nginx o server Los bloques son una excelente manera de agregar sitios web adicionales al mismo servidor de origen. La cantidad de posibilidades de configuración para un sitio determinado es casi infinita cuando comienza a modificar el archivo de configuración del host virtual para adaptarlo a las necesidades específicas de su sitio.

En esta guía, aprendimos cómo configurar un host virtual para servir contenido php en Rocky Linux/Alma Linux o sistema basado en RHEL.


Rocky Linux
  1. ¿Cómo instalar WordPress con LEMP (Nginx, MariaDB y PHP) en Rocky Linux 8?

  2. Cómo instalar Erlang en Rocky Linux/Alma Linux/CentOS 8

  3. Cómo instalar y configurar PHP y Nginx (LEMP) en Debian 11

  4. Cómo instalar y configurar PHP y Nginx (LEMP) en Ubuntu 20.04

  5. Cómo instalar PHP 8 en Alma Linux y Rocky Linux

Cómo instalar PHP 7.4 en Rocky Linux 8

Cómo instalar Linux, Nginx, MariaDB y PHP (LEMP) en Fedora 22

Cómo instalar PHP 8 en Rocky Linux 8

Cómo instalar Nginx en Rocky Linux 8

Cómo instalar Laravel en Rocky Linux 8

Cómo instalar Nginx en Rocky Linux 9