Instalar y configurar un servidor LEMP en Ubuntu 20.04 – Nginx, php-fpm, MariaDB y phpMyAdmin.

En la siguiente entrada veremos como instalar y configurar un servidor con los servicios Web de Nginx con php-fpm, un servidor de Base de datos MariaDB y el gestor phpMyAdmin, además agregaremos privilegios a phpMyAdmin para que pueda gestionar como root el servidor MariaDB.

En una próxima entrada veremos como montar nuestra Web con WordPress utilizando este servidor.

Se asume que tiene un sistema Ubuntu 20.04 instalado y funcionando.

Los datos del servidor son:

Nombre: srv

Dirección IP: 10.10.20.4

//Bueno lo primero como siempre, actualizar nuestro sistema.

# sudo apt update
# sudo apt upgrade

//Vamos a proceder a instalar nuestro servidor Web Nginx:

# sudo apt install nginx

//Ya puedes comprobar que ha quedado instalado el servicio accediendo con el navegador a: http://10.10.20.4

//Lo siguiente es instalar nuestro servidor de base de datos MariaDB:

# sudo apt install mariadb-server mariadb-client

//Lanzamos el comando de configuración inicial de MariaDB:

# sudo mysql_secure_installation

//Sólo debemos establecer una contraseña segura para el usuario root y lo demás podemos dejarlo por defecto.

//Vamos a instalar php-fpm:

# sudo apt install php-fpm

//En algún momento se instala el servicio de apache2 que no lo necesitamos ni vamos a usar, asi que ejecutamos lo siguiente para desinstalarlo:

# sudo apt remove apache2 apache2-data apache2-utils

//Comprobamos que esta corriendo php-fpm y lo habilitamos como servicio por si acaso no quiere arrancar con el sistema:

# sudo systemctl status php7.4-fpm
# sudo systemctl is-enabled php7.4-fpm

//Vamos a cerciorarnos de que esta escuchando en el socket:

# sudo nano /etc/php/7.4/fpm/pool.d/www.conf

//La línea listen debe estar definida a: listen = /run/php/php7.4-fpm.sock

//Cómo por el momento no tenemos ningún sitio web configurado, usaremos el archivo de configuración por defecto para hacer algunas pruebas, lo editamos para dejarlo de la siguiente forma:

# sudo nano /etc/nginx/sites-available/default

//En el bloque pass PHP scripts to FastCGI server, descomentar las siguientes líneas:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

//Comprobamos que todo esta bien y reiniciamos Nginx:

# sudo nginx -t
# sudo systemctl reload nginx

//Veamos si php esta funcionando, de forma temporal podemos crear un archivo info.php para comprobar nuestros sistemas:

# echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

//Ahora nos toca instalar el paquete de phpMyAdmin que nos servirá para gestionar nuestras Bases de datos, los usuarios y los privilegios de una forma más fácil y amigable.

sudo apt install phpmyadmin

//Durante la instalación se mostrará el siguiente mensaje en el cual vamos a presionar ESC ya que nuestro servidor Web Nginx no está listado:

//Luego nos pedirá confirmación para que el asistente instale la base de datos de phpMyAdmin, damos en Yes:

//Nos pedirá una contraseña para la base de datos de phpMyAdmin, escojamos una segura y continuamos.

//La instalación de phpMyAdmin guarda sus archivos en /usr/share/phpmyadmin asi que debemos crear un link hacia el directorio que lee Nginx:

# sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin

//Damos permisos necesarios al directorio y asignamos usuario y grupo:

$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/

//Por defecto Nginx no va a leer archivos php, así que debemos editar el archivo default nuevamente:

# sudo nano /etc/nginx/sites-available/default

//Agregamos:

index.php

//Reiniciamos Nginx y ya podremos cargar nuestro phpMyAdmin:

# sudo systemctl restart nginx

http://10.10.20.4/phpmyadmin

//Accedemos con el usuario phpmyadmin y la contraseña que especificamos en la instalación del phpmyadmin, el problema es que ahora mismo este usuario no tiene ningún privilegio como se muestra en la imagen, pero eso lo vamos a arreglar pronto:

//Vamos a asignar los privilegios:

# sudo mysql -u root -p
# GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
# FLUSH PRIVILEGES;
# exit;

//Veamos ahora:

//Para dudas, consultas o intercambio por favor utilizar la Comunidad.

0.00 avg. rating (0% score) - 0 votes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *