GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el último phpMyAdmin con LEMP en Ubuntu 20.04

phpMyAdmin es una herramienta de administración gratuita y de código abierto escrita en PHP se utiliza para administrar servidores de bases de datos MySQL y MariaDB desde una interfaz web . La mayoría de los desarrolladores prefieren usar phpMyAdmin para interactuar con un servidor de base de datos debido a su facilidad de uso y editor SQL avanzado, lo que facilita la creación y prueba de consultas SQL complejas.

En el siguiente tutorial, aprenderá cómo instalar LEMP y phpMyAdmin desde la fuente en Ubuntu 20.04.

Requisitos

  • SO recomendado: Ubuntu 20.04 – opcional (Ubuntu 21.04 y Linux Mint 20)
  • Cuenta de usuario: Una cuenta de usuario con sudo o acceso root.
  • Obligatorio: Nginx, MariaDB y PHP (LEMP)

Actualización del sistema operativo

Primero, antes que nada, actualiza tu Ubuntu sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:

sudo apt update && sudo apt upgrade -y

Nginx para phpMyAdmin

Agregar PPA personalizado para Nginx más reciente

Dado que está configurando phpMyAdmin con Nginx, deberá instalar la aplicación web. Actualmente, el mejor método para la mayoría es usar el PPA del conocido Ondřej Surý, que mantiene las versiones Nginx y Stable y se actualiza constantemente.

Primero, agregue un PPA estable o principal de la siguiente manera:

Nginx estable:

sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update

Línea principal de Nginx (recomendado):

sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Instalar Nginx

Después de instalar Nginx PPA estable o principal, use el siguiente comando para instalar Nginx:

sudo apt install nginx-core nginx-common nginx nginx-full

MariaDB para phpMyAdmin

Instalar MariaDB para Ubuntu 20.04

En primer lugar, debe instalar MariaDB para crear una base de datos y un nombre de usuario de la siguiente manera:

sudo apt install mariadb-server

Tenga en cuenta que esta es una versión anterior, con la instalación predeterminada siendo la versión 10.3. Visite nuestro tutorial si prefiere instalar una versión más reciente de MariaDB, como 10.5 y 10.6.

A continuación, ejecute el script de seguridad si lo instaló desde cero por primera vez con el siguiente comando:

sudo mysql_secure_installation

A continuación, siga a continuación:

  • Configuración de la contraseña para root cuentas.
  • Eliminar las cuentas raíz a las que se puede acceder desde fuera del host local.
  • Eliminar cuentas de usuarios anónimos.
  • Eliminar la base de datos de prueba, a la que pueden acceder de forma predeterminada los usuarios anónimos.

Tenga en cuenta que usa (Y) para eliminar todo.

Crear base de datos y nombre de usuario de phpMyAdmin

En primer lugar, abra MariaDB y cree una nueva base de datos para phpMyAdmin:

sudo mysql -u root

A continuación, cree una base de datos en la terminal MariaDB:

CREATE DATABASE phpmyadmindb;

Ahora necesita crear un usuario y otorgar permisos de la siguiente manera:

GRANT ALL ON phpmyadmindb.* TO phpmyadminuser@localhost IDENTIFIED BY 'password here change';

Para terminar, descarga los privilegios y sal con los siguientes códigos:

FLUSH PRIVILEGES;
QUIT;

PHP para phpMyAdmin

Agregar PPA personalizado para PHP más reciente

Similar a nuestra instalación de Nginx, se recomienda agregar el PPA de Ondřej Surý, el mantenedor de PHP para Debian. El PPA personalizado tiene todas las versiones más recientes de 7.4, 8.0 y la 8.1 entrante más reciente.

Agregue el PPA usando el siguiente comando:

sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Instalar PHP para Ubuntu 20.04

Ahora, puede instalar PHP 7.4 o PHP 8.0. Como PHP aún es más nuevo y posiblemente tenga más errores con phpMyAdmin, se recomienda instalar PHP 7.4 por ahora. Para lograr esto, use el siguiente comando de terminal para instalar los paquetes necesarios:

sudo apt install php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-mcrypt php7.4-cli php7.4-curl php7.4-zip php7.4-gd

Instalar phpMyAdmin en Ubuntu 20.04

De manera predeterminada, el repositorio de Ubuntu 20.04 viene con phpMyAdmin y las dependencias requeridas. Sin embargo, como suele ocurrir con los lanzamientos de Ubuntu LTS, la versión y la compilación están muy por detrás de lo que está disponible actualmente en la fuente. Entonces, como propósito de esta guía, descargará de la fuente de la siguiente manera:

Descargue la última versión de phpMyAdmin

Para empezar, visite la página de descargas de phpMyAdmin para encontrar la última versión actual. En el momento de este tutorial, la versión 5.1.1 es la más reciente.

Ejecute los siguientes códigos para descargar automáticamente la última versión en todos los idiomas:

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Si desea descargar la versión en inglés, sustituya la última línea por la siguiente:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

A continuación, extraiga el archivo con el siguiente comando:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

Configurar phpMyAdmin manualmente

Debe mover el directorio extraído y sus subdirectorios a /usr/share ubicación del directorio donde phpMyAdmin espera encontrar sus archivos de configuración por defecto. Para hacer esto, use el siguiente comando:

sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin

Por defecto, phpMyAdmin no viene con un TMP directorio al instalar desde la fuente, y debe crearlo manualmente:

sudo mkdir -p /var/lib/phpmyadmin/tmp

Asigne los permisos correctos al usuario www-data con el directorio phpMyAdmin:

sudo chown -R www-data:www-data /var/lib/phpmyadmin

En el directorio phpMyAdmin, se incluye un archivo de ejemplo de configuración predeterminado. Deberá cambiar el nombre de este archivo para que phpMyAdmin reconozca la configuración. Sin embargo, para la copia de seguridad, utilizará el CP Comando para crear una copia y mantener la predeterminada como copia de seguridad si se cometen errores en la ubicación /etc/usr/phpmyadmin/directorio .

Copie config.sample.inc.php a config.inc.php con el siguiente comando:

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

A continuación, abra este archivo con su editor de texto preferido. Para el tutorial, se utiliza el editor de texto nano:

sudo nano /usr/share/phpmyadmin/config.inc.php

phpMyAdmin usa un cifrado Blowfish. Desplácese hacia abajo hasta la línea que comienza con $cfg[‘blowfish_secret’] .

Las líneas se verán como, por ejemplo:

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Deberá asignar una cadena de 32 caracteres aleatorios entre las comillas simples. La forma más fácil de lograr esto es usando el programa pwgen . Para instalar pwgen, use el siguiente comando de terminal:

sudo apt install pwgen

Una vez instalado, ejecute el siguiente comando:

pwgen -s 32 1

Luego obtendrá sus 32 caracteres aleatorios para el secreto del pez globo, resultado de ejemplo:

Ejemplo de cómo agregar el cifrado al archivo de configuración (no copiar):

$cfg['blowfish_secret'] = 'kQVwa2yLI6FxA3LN6E7YcW3WgtTKTZ2j'

El resto de la configuración predeterminada debería funcionar para la mayoría de los usuarios. Si su servidor está ubicado en otro servidor ubicado en su red, busque y cambie la línea $cfg[‘Servers’][$i][‘host’] = a la de la dirección IP privada. Ejemplo a continuación:

$cfg['Servers'][$i]['host'] = '192.168.55.101';

Crear bloque de servidor Nginx para phpMyAdmin

Para acceder a la interfaz web de phpMyAdmin, deberá crear un bloque de servidor Nginx. Se recomienda encarecidamente mantener esto separado, y en un subdominio, puede nombrarlo como desee para ayudar con la seguridad y los ataques de fuerza bruta.

Primero, cree y abra su bloque de servidor usando el editor de texto nano de la siguiente manera:

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

A continuación, puede pegar el siguiente texto en el archivo. Tenga en cuenta que debe reemplazar la URL del dominio con la suya propia:

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /usr/share/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

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

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

Si es el único que accede a esto desde una dirección IP estática, puede agregar el siguiente código sobre la primera entrada de ubicación. A continuación se muestra un ejemplo de esto:

  allow <your ip address>;
  deny all; 

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

Esto naturalmente bloqueará cualquier persona que visite la página con un error 403 a menos que su dirección IP lo permita. Esto, por naturaleza, puede detener todos los ataques brutos en seco, pero tal vez no sea viable para algunas configuraciones.


Ahora guarda usando (CTRL+O) y sal con (CTRL+X) .

Pruebe su bloque de servidor Nginx ejecutando el comando de ejecución en seco:

sudo nginx -t

Si no tiene errores, debería obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ahora reinicie su servicio Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

Acceso a la interfaz de usuario web de phpMyAdmin

Para acceder a la interfaz web, abra su navegador de Internet preferido y escriba pma.example.com con (ejemplo) su dominio. Debería llegar a la pantalla de inicio de sesión de phpMyAdmin de la siguiente manera:

Inicie sesión con el nombre de usuario y la contraseña de MariaDB que configuró originalmente al comienzo del tutorial. Luego llegará a la pantalla principal.

Instalar certificado TLS

Para mayor seguridad la interfaz web de phpMyAdmin, puede instalar opcionalmente un certificado TLS de Let's Encrypt gratuito desde el repositorio predeterminado de Ubuntu .

Ejecute el siguiente comando en su terminal de Ubuntu:

sudo apt install certbot python3-certbot-nginx

Ahora ejecute el siguiente comando para obtener e instalar el certificado TLS para Nginx y phpMyAdmin:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email your-email-address

Durante la instalación del certificado, recibirá un aviso para recibir correos electrónicos de EFF (Electronic Frontier Foundation) . Elija S o N y su certificado TLS se instalará y configurará automáticamente.

Eso es todo, y ha instalado SSL en su área de phpMyAdmin. Asegúrese de probar usando una prueba SSL gratuita como DigiCert o SSL Labs.


Ubuntu
  1. Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04

  2. Cómo instalar Joomla con Apache en Ubuntu 18.04

  3. Cómo instalar phpMyAdmin en Ubuntu

  4. Cómo instalar WordPress 5.x con Nginx en Ubuntu 18.04 / Ubuntu 16.04

  5. Cómo instalar phpMyAdmin con la pila LAMP en Ubuntu

Cómo instalar el último PHPMyAdmin en Ubuntu 18.04

Cómo instalar phpMyAdmin en Ubuntu 16.04

Cómo instalar phpMyAdmin en Ubuntu 20.04 LTS

Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04

Cómo instalar phpMyAdmin en Ubuntu 18.04

Cómo instalar phpMyAdmin en Ubuntu 22.04