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.