Búsqueda de sitios web

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


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

Leer también: Instalar LAMP – Apache, PHP, MariaDB y PhpMyAdmin en OpenSUSE

Este tutorial le guiará sobre cómo instalar una pila LEMP con Nginx, MariaDB, PHP, PHP-FPM y PhpMyAdmin en ediciones de servidor/escritorio 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 basada en 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 que Nginx esté instalado, 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

Lea también: Los 10 comandos Nginx más utilizados que todo usuario de Linux debe conocer

En este punto, el servidor web Nginx debería estar en funcionamiento; también puede verificar el estado utilizando 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 en 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 el puerto 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, 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 gratuita y de código abierto del sistema de gestión de bases de datos relacionales MySQL. Está desarrollado por los desarrolladores originales de MySQL y pretende permanecer como 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 incluye 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 script, 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, recargar 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 soportar cargas elevadas. Mantiene grupos (trabajadores que pueden responder a solicitudes 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 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, debemos 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 grupo de Nginx. Haga esto cambiando los valores de los parámetros de usuario y grupo de nobody a nginx.

user = nginx
group = nginx

Ahora guarde los cambios en el archivo y salga.

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=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

Configurar 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 ; 
       }

Busque también la siguiente sección (que debe estar comentada) y descoméntela. 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 funciona bien junto con PHP-FPM creando un nuevo archivo de prueba PHP en el directorio DocumentRoot como mostrado.

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

Ahora necesitamos 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 es correcta, continúe y reinicie los servicios 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. Admite 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 las siguientes configuraciones 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 aparecer una página de inicio de sesión phpMyAdmin como se muestra en la siguiente captura de pantalla. Ingrese las credenciales de inicio de sesión del usuario raíz de su 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 servidor/escritorio OpenSuse. Si tiene algún problema durante la configuración, haga sus preguntas a través del formulario de comentarios a continuación.