Cómo instalar y asegurar phpMyAdmin en Ubuntu 18.04 LTS
phpMyAdmin es una herramienta de administración gratuita y de código abierto para MySQL y MariaDB. phpMyAdmin es una herramienta basada en web que le permite administrar fácilmente bases de datos MySQL o MariaDB. Puede realizar tareas de administración como crear, editar o eliminar bases de datos, importar y exportar copias de seguridad de bases de datos, ejecutar búsquedas y administrar usuarios y permisos usando phpMyAdmin.
Características
- Soporte multi-idioma.
- Importar datos de CSV y SQL.
- Proporcione gráficos en vivo para monitorear la actividad del servidor MySQL como conexiones, procesos, uso de CPU/memoria, etc.
- Buscar globalmente en una base de datos o en un subconjunto de ella.
- Interfaz web simple y fácil de usar.
- Exporte datos a varios formatos como CSV, SQL, XML, PDF, Word, Excel, LaTeX y otros.
En este tutorial, explicaremos cómo instalar y asegurar phpMyAdmin en el servidor Ubuntu 18.04, abarcando desde cómo instalar phpMyAdmin en Ubuntu 18.04 LTS hasta cómo asegurarlo adecuadamente.
Requisitos
-
- Un servidor con Ubuntu 18.04.
- Un usuario no root con privilegios sudo.
Instalar phpMyAdmin en Ubuntu 18.04
Antes de comenzar con la instalación de phpMyAdmin en Ubuntu, deberá instalar Apache y MySQL en su servidor. Puedes instalarlo con el siguiente comando:
sudo apt-get install apache2 mysql-server -y
De forma predeterminada, phpMyAdmin no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, para instalar phpMyAdmin en Ubuntu, deberá agregar el repositorio PHP de terceros a su sistema.
Puede agregarlo simplemente ejecutando el siguiente comando:
sudo apt-get install software-properties-common -y sudo add-apt-repository ppa:ondrej/php
Una vez que se agrega el repositorio, para instalar phpMyAdmin en Ubuntu, ejecute el siguiente comando:
sudo apt-get install phpmyadmin php-mbstring php-gettext -y
Durante la instalación, se le pedirá que elija el servidor web como se muestra a continuación:
Elija Apache y haga clic en OK botón. Será redirigido a la siguiente página:
Ahora, haga clic en Sí botón. Deberías ver la siguiente página:
Aquí, proporcione la contraseña de su aplicación MySQL para phpMyAdmin y haga clic en el OK botón.
Una vez que se haya instalado phpMyAdmin, habilite la extensión PHP mbstring con el siguiente comando:
sudo phpenmod mbstring
A continuación, reinicie el servicio de Apache para aplicar los cambios:
sudo systemctl restart apache2
Configurar la autenticación de usuario
phpMyAdmin creó automáticamente un usuario de base de datos llamado phpmyadmin con la contraseña administrativa que configuró durante la instalación. Sin embargo, se recomienda crear un usuario independiente para administrar las bases de datos a través de la interfaz web de phpMyAdmin. En la última versión de MariaDB, el usuario raíz de MySQL está configurado para autenticarse mediante el complemento auth_socket de forma predeterminada. Por lo tanto, para utilizar phpMyAdmin en Ubuntu 18.04 con su usuario raíz de MySQL, deberá cambiar su método de autenticación de auth_socket a mysql_native_password.
Primero, inicie sesión en MySQL shell con el siguiente comando:
sudo mysql
A continuación, verifique el método de autenticación del usuario de MySQL con el siguiente comando:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Producción:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.01 sec)
En el resultado anterior, debería ver que el usuario root usa el complemento auth_socket.
Puede configurar la cuenta raíz para autenticarse con una contraseña ejecutando el siguiente comando:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
A continuación, vacíe los privilegios con el siguiente comando:
mysql> FLUSH PRIVILEGES;
Ahora, verifique los métodos de autenticación ejecutando el siguiente comando:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Producción:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 | mysql_native_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *AC18DF5CAE34BF4796EF975702F038A566B48B42 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.01 sec)
Luego, cree un usuario separado con el nombre phpmyadminuser para conectarse a phpMyAdmin.
Primero, inicie sesión en MySQL shell:
mysql -u root -p
Ingrese su contraseña de root, luego cree un usuario con el siguiente comando:
MariaDB [(none)]> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'password';
Luego, otorgue los privilegios apropiados a phpmyadminuser con el siguiente comando:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;
Finalmente, salga del shell de MySQL con el siguiente comando:
MariaDB [(none)]> exit;
Ahora, para acceder a phpMyAdmin, abra su navegador web y escriba la URL http://your-server-ip/phpmyadmin. Será redirigido a la siguiente página:
Aquí, proporcione su nombre de usuario y contraseña. Luego, haga clic en el Vamos botón. Debería ver el panel de PhpMyAdmin en la siguiente página:
PhpMyAdmin seguro
phpMyAdmin ahora está instalado y configurado. Sin embargo, se recomienda proteger su instancia de phpMyAdmin para evitar el acceso no autorizado. Puede proteger phpMyAdmin utilizando las funcionalidades de autenticación y autorización .htaccess integradas de Apache.
Para hacerlo, primero habilite el uso de anulaciones de archivos .htaccess editando el archivo phpmyadmin.conf:
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Realice los siguientes cambios:
<Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php AllowOverride All
Guarde y cierre el archivo. Luego, reinicie el servicio Apache para aplicar los cambios:
sudo systemctl restart apache2
A continuación, cree un archivo .htaccess dentro del directorio phpmyadmin:
sudo nano /usr/share/phpmyadmin/.htaccess
Agregue las siguientes líneas:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Guarde y cierre el archivo. Luego, cree un usuario llamado admin con la utilidad htpasswd:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin
Producción:
New password: Re-type new password: Adding password for user admin
Su instancia de phpMyAdmin ahora está protegida con una capa adicional de autenticación.
Ahora, abra su navegador web y escriba la URL http://your-server-ip/phpmyadmin. Se le redirigirá al nombre de cuenta y la contraseña adicionales que acaba de configurar como se muestra a continuación:
Ahora, proporcione su nombre de usuario y la contraseña y haga clic en el Tronco En botón. Debería ser redirigido a la página de autenticación normal de phpMyAdmin.