Instale LEMP - Nginx, PHP, MariaDB y PhpMyAdmin en OpenSUSE


LEMP o Linux, Engine-x, MySQL y PHP stack es un paquete de software compuesto por software de código abierto instalado en el sistema operativo Linux para ejecutar aplicaciones web basadas en PHP impulsadas por el servidor HTTP Nginx y el sistema de gestión de bases de datos MySQL/MariaDB.

Este tutorial lo guiará sobre cómo instalar una pila LEMP con Nginx, MariaDB, PHP, PHP-FPM y PhpMyAdmin en las ediciones de escritorio/servidor OpenSuse.

Instalación del servidor HTTP Nginx

Nginx es un servidor proxy y HTTP rápido y confiable que puede manejar una mayor carga de solicitudes HTTP. Utiliza un enfoque asincrónico basado en eventos para manejar solicitudes, y su arquitectura modular impulsada por eventos puede proporcionar un rendimiento más predecible bajo cargas elevadas.

Para instalar Nginx en OpenSuse, ejecute el siguiente comando.

$ sudo zypper install nginx

Una vez instalado Nginx, puede iniciar el servicio por ahora, luego habilitarlo para que se inicie automáticamente en el momento del arranque y verificar el estado de Nginx ejecutando los siguientes comandos.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

En este punto, el servidor web Nginx debería estar en funcionamiento, también puede verificar el estado usando el comando netstat como se muestra.

$ sudo netstat -tlpn | grep nginx

Ahora, necesitamos probar si la instalación de Nginx está funcionando bien. A diferencia de otras distribuciones de Linux, en openSUSE, Nginx no tiene un documento index.html estándar en la carpeta raíz web. Necesitamos crear un nuevo archivo index.html bajo el directorio web raíz "/ srv/www/htdocs" como se muestra.

$ echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

Si tiene Firewalld instalado, debe abrir los puertos 80 y 443 para permitir el tráfico web en el firewall.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

A continuación, abra un navegador web y navegue hasta la dirección http:// localhost y verifique la página de Nginx.

Instalación del servidor de base de datos MariaDB

MariaDB es una bifurcación de código abierto y gratuito del sistema de gestión de bases de datos relacionales MySQL. Está desarrollado por los desarrolladores originales de MySQL y tiene la intención de seguir siendo de código abierto. MariaDB es rápido, escalable y robusto, con un rico ecosistema de motores de almacenamiento, complementos y muchas otras herramientas que lo hacen muy versátil para una amplia variedad de casos de uso.

Para instalar MariaDB en OpenSuse, ejecute el siguiente comando.

$ sudo zypper install mariadb mariadb-client 

A continuación, inicie el servicio MariaDB por ahora, luego habilítelo para que se inicie automáticamente en el momento del arranque y verifique su estado.

$ sudo systemctl start mariadb 
$ sudo systemctl enable mariadb 
$ sudo systemctl status mariadb 

El siguiente paso crítico en esta sección es asegurar la instalación del servidor MariaDB. Por lo tanto, ejecute el script de seguridad que se envía con el paquete MariaDB, como se muestra.

Nota: Se recomienda encarecidamente ejecutar el script de seguridad MariaDB y todas sus partes para todos los servidores MariaDB en producción.

$ sudo mysql_secure_installation 

Después de ejecutar el guión, lea atentamente la descripción de cada paso. Debe establecer una contraseña de usuario raíz, eliminar usuarios anónimos, deshabilitar el acceso raíz remoto, eliminar la base de datos de prueba y acceder a ella y, finalmente, volver a cargar la tabla de privilegios.

Instalación y configuración de PHP y PHP-FPM

PHP-FPM (abreviatura de PHP FastCGI Process Manager) es un demonio FastCGI alternativo para PHP con algunas características adicionales y diseñado para manejar cargas elevadas. Mantiene grupos (trabajadores que pueden responder a las solicitudes de PHP) para lograr esto. Es importante destacar que es más rápido que los métodos tradicionales basados en CGI, como SUPHP, para entornos PHP multiusuario.

Para instalar PHP y PHP-FPM junto con los módulos necesarios, ejecute el siguiente comando.

$ sudo zypper install php php-mysql php-fpm php-gd php-mbstring

Antes de proceder a iniciar el servicio PHP-FPM, debemos crear los archivos de configuración necesarios a partir de los archivos predeterminados proporcionados durante la instalación y configurar el servicio para que esté listo para las operaciones.

$ 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

Luego abra el archivo de configuración principal php-fpm.conf para editarlo.

$ sudo vim /etc/php7/fpm/php-fpm.conf 

Descomente la siguiente línea en la línea número 24 como se muestra.

error_log = log/php-fpm.log

Guarde y cierre el archivo.

A continuación, necesitamos definir la configuración correcta para los grupos configurados en el archivo de configuración www.conf .

$ sudo vim /etc/php7/fpm/php-fpm.d/www.conf

Primero, configure el propietario de Unix y el propietario del grupo de procesos para el usuario y el grupo de Nginx. Haga esto cambiando los valores de los parámetros de usuario y grupo de nadie a nginx .

user = nginx
group = nginx

Ahora guarde los cambios en el archivo y salga de él.

Además, hay una configuración más importante que realizar, que protege PHP-FPM en el archivo /etc/php/cli/php.ini .

$ sudo vim /etc/php7/cli/php.ini

Busque la línea ; cgi.fix_pathinfo u003d 1 y cámbiela a.

cgi.fix_pathinfo=0

Guarde los cambios en el archivo y salga.

A continuación, inicie el servicio PHP-FPM por ahora, luego habilítelo para que se inicie automáticamente en el momento del arranque y verifique su estado.

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo systemctl status php-fpm

Configuración de Nginx para trabajar con PHP-FPM

En este punto, necesitamos configurar Nginx para que funcione con PHP-FPM en el archivo de configuración predeterminado de Nginx.

$ sudo vim /etc/nginx/nginx.conf

Luego busque la siguiente sección y agregue index.php en la lista de archivos de índice esperados.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

También busque la siguiente sección (que debe estar comentada) y descomente. Esta sección se utiliza para pasar los scripts PHP al servidor FastCGI que escucha en 127.0.0.1:9000.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

Guarde los cambios en el archivo y salga.

Probando Nginx y PHP-FPM

El siguiente paso es probar si Nginx está funcionando bien junto con PHP-FPM creando un nuevo archivo de prueba PHP en el directorio DocumentRoot como se muestra.

$ echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

Ahora debemos verificar si la configuración de Nginx es correcta de la siguiente manera, antes de proceder a reiniciar el servicio.

$ sudo nginx -t

Si la sintaxis de configuración de Nginx está bien, continúe y reinicie los servicios de Nginx y PHP-FPM para que los cambios recientes surtan efecto.

$ sudo systemctl restart nginx php-fpm

Ahora abra un navegador web y navegue hasta la dirección http://localhost/info.php para verificar la configuración de PHP como se muestra en la siguiente captura de pantalla.

Instalación y configuración de PhpMyAdmin

phpMyAdmin es una herramienta gratuita, sencilla, fácil de usar y popular escrita en PHP, creada para administrar el servidor MySQL a través de la Web. Es compatible con una amplia gama de operaciones en MySQL y MariaDB.

Para instalar phpMyAdmin en OpenSuse, ejecute el siguiente comando.

$ sudo zypper install phpMyAdmin

Una vez que se complete la instalación, cree un nuevo archivo de configuración de vhost para acceder a phpMyAdmin como se muestra.

$ sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

Agregue la siguiente configuración al archivo.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

Guarde los cambios y cierre el archivo. Luego reinicie el servicio Nginx con el siguiente comando.

$ sudo systemctl restart nginx

Ahora vaya a su navegador web y escriba la dirección http:// localhost/phpMyAdmin. Debería mostrarse una página de inicio de sesión de phpMyAdmin como se muestra en la siguiente captura de pantalla. Ingrese sus credenciales de inicio de sesión de usuario raíz de la base de datos y haga clic en Ir.

¡Eso es todo! En este tutorial, le explicamos cómo instalar una pila LEMP con Nginx, MariaDB, PHP, PHP-FPM y PhpMyAdmin en las ediciones de escritorio/servidor OpenSuse. Si tiene algún problema durante la configuración, haga sus preguntas a través del formulario de comentarios a continuación.