GNU/Linux >> Tutoriales Linux >  >> OpenSuse

Cómo instalar y configurar PHP y Nginx (LEMP) en OpenSUSE Leap 15.3

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 Apache (pila LAMP) 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
  • Cómo instalar y configurar PHP y Nginx (LEMP) en Rocky Linux/Alma Linux 8

Tabla de contenido

  1. Asegurarse de que el servidor esté actualizado
  2. Instalación de PHP en OpenSUSE Leap 15.3
  3. Instalación de Nginx en OpenSUSE Leap 15.3
  4. Instalación de php-fpm en OpenSUSE Leap 15.3
  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 zypper refresh
sudo zypper update -y

2. Instalación de PHP en OpenSUSE Leap 15.3

PHP está disponible en los repositorios predeterminados de OpenSUSE. La última versión de PHP al escribir este blog es PHP 7.4.

Instale PHP y algunos paquetes comunes usando este comando:

sudo zypper install -y \
    php \
    php-cli

Compruebe la versión instalada de PHP

~> zypper info php7
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...


Information for package php7:
-----------------------------
Repository     : Update repository with updates from SUSE Linux Enterprise 15
Name           : php7
Version        : 7.4.6-3.29.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 10.3 MiB
Installed      : Yes
Status         : up-to-date
Source package : php7-7.4.6-3.29.1.src
Summary        : Interpreter for the PHP scripting language version 7
Description    :
    PHP is a server-side HTML embedded scripting language designed
    primarily for web development but also used as a general-purpose
    programming language.

    This package contains the standard implementation of PHP, namely Zend
    PHP. Included are the PHP command-line binary and the configuration
    file (php.ini). This package must be installed in order to use PHP.
    Additionally, extension modules and server modules (e.g. for Apache)
    may be installed.

    Additional documentation is available in package php-doc.

Verifique la versión de php instalada usando este comando:

~> php -v
PHP 7.4.6 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

3. Instalación de Nginx en OpenSUSE Leap 15.3

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 UpenSUSE. Instálalo usando este comando:

sudo zypper install -y nginx

Confirme el nginx instalado

~> zypper info nginx
Loading repository data...
Reading installed packages...


Information for package nginx:
------------------------------
Repository     : Main Repository
Name           : nginx
Version        : 1.19.8-3.6.1
Arch           : x86_64
Vendor         : SUSE LLC <https://www.suse.com/>
Installed Size : 2.2 MiB
Installed      : Yes
Status         : up-to-date
Source package : nginx-1.19.8-3.6.1.src
Summary        : A HTTP server and IMAP/POP3 proxy server
Description    :
    nginx [engine x] is a HTTP server and IMAP/POP3 proxy server written by Igor Sysoev.
    It has been running on many heavily loaded Russian sites for more than two years.

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

sudo systemctl start nginx

Confirme que el servicio está activo y funcionando con 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)
     Active: active (running) since Mon 2021-12-20 18:56:15 UTC; 36s ago
    Process: 31740 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
   Main PID: 31741 (nginx)
      Tasks: 2 (limit: 4587)
     CGroup: /system.slice/nginx.service
             ├─31741 nginx: master process /usr/sbin/nginx -g daemon off;
             └─31742 nginx: worker process

Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 20 18:56:15 ip-10-2-40-44 nginx[31740]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 20 18:56:15 ip-10-2-40-44 systemd[1]: Started The nginx HTTP and reverse proxy server.

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

sudo systemctl enable nginx

4. Instalación de PHP FPM en OpenSUSE Leap 15.3

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 zypper install -y php-fpm

Copie los archivos de configuración predeterminados

sudo cp /etc/php7/fpm/php-fpm.conf.default /etc/php7/fpm/php-fpm.conf
sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

El servicio no se iniciará de forma predeterminada. Inicie php-fpm usando este comando:

sudo systemctl start php-fpm

Verifique su estado usando 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 Mon 2021-12-20 08:56:16 UTC; 21s ago
   Main PID: 24608 (php-fpm)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4587)
     CGroup: /system.slice/php-fpm.service
             ├─24608 php-fpm: master process (/etc/php7/fpm/php-fpm.conf)
             ├─24609 php-fpm: pool www
             └─24610 php-fpm: pool www

Dec 20 08:56:16 ip-10-2-40-44 systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 20 08:56:16 ip-10-2-40-44 systemd[1]: Started The PHP FastCGI Process Manager.

Para habilitar php-fpm en el arranque, use este comando:

sudo systemctl enable php-fpm

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 /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 zypper 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 OpenSUSE Leap 15.3.


OpenSuse
  1. Cómo instalar y configurar PHP y Apache (pila LAMP) en OpenSUSE Leap 15.3

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

  3. Cómo instalar y configurar Nginx como proxy OpenSUSE Leap 15.3

  4. Cómo instalar y configurar Mariadb 10 en OpenSUSE Leap 15.3

  5. Cómo instalar y configurar Squid Proxy en OpenSUSE Leap 11

Cómo instalar WordPress con HHVM y Nginx en OpenSUSE Leap 42.1

Cómo instalar ownCloud 9 con Nginx en OpenSUSE Leap 42.1

Cómo instalar PHP 8.0 en openSUSE 15 Leap

Cómo instalar LEMP en CentOS 7

Cómo instalar Apache y PHP en OpenSUSE 15.1

Cómo instalar Nginx, MySQL y PHP (LEMP) en un servidor Ubuntu 15.04