Cómo instalar y proteger la última versión de phpMyAdmin en Debian 12
Este tutorial existe para estas versiones del sistema operativo.
- Debian 12 (ratón de biblioteca)
- Debian 11 (Diana)
En esta página
- Requisitos previos
- Empezando
- Instalar el servidor LAMP
- Instalar y configurar phpMyAdmin
- Crear usuario administrador de phpMyAdmin
- Configurar Apache para phpMyAdmin
- Accede a phpMyAdmin
- PHPMyAdmin seguro
- Verificar phpMyAdmin
- Conclusión
phpMyAdmin es una herramienta de administración gratuita basada en web que se utiliza para administrar bases de datos MySQL y MariaDB, ampliamente utilizada en sistemas Debian Linux. Proporciona una interfaz fácil de usar para interactuar con bases de datos, lo que permite a los usuarios ejecutar consultas SQL, administrar tablas de bases de datos, importar y exportar datos y configurar varias configuraciones de bases de datos sin necesidad de utilizar la línea de comandos. En Debian Linux, phpMyAdmin a menudo se instala junto con una pila LAMP (Linux, Apache, MySQL/MariaDB, PHP), lo que facilita a los administradores y desarrolladores manejar las operaciones de la base de datos de una manera más visual y organizada.
En este tutorial, le mostraré cómo instalar y proteger la herramienta de administración de bases de datos phpMyAdmin en Debian 12.
Requisitos previos
- Un servidor que ejecuta Debian 12.
- Se configura una contraseña de root en el servidor.
Empezando
Antes de comenzar, es una buena idea actualizar los paquetes de su sistema a la última versión. Puede actualizar todos los paquetes usando el siguiente comando:
apt update -y
Una vez que su sistema esté actualizado, puede continuar con el siguiente paso.
Instalar el servidor LAMP
phpMyAdmin es una aplicación basada en PHP que se ejecuta en un servidor web. Por lo tanto, deberá instalar el servidor LAMP en su servidor. Puedes instalarlo usando el siguiente comando:
apt install apache2 mariadb-server libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml php-mbstring php-zip php-gd unzip -y
Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.
Instalar y configurar phpMyAdmin
Primero, descargue la última versión de phpMyAdmin desde su sitio web oficial usando el siguiente comando:
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
Una vez que se complete la descarga, descomprima el archivo descargado con el siguiente comando:
unzip phpMyAdmin-5.2.1-all-languages.zip
A continuación, mueva el directorio extraído a /usr/share con el siguiente comando:
mv phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin
A continuación, cree el directorio requerido con el siguiente comando:
mkdir -p /var/lib/phpmyadmin/tmp
A continuación, establezca la propiedad adecuada para el directorio phpMyAdmin:
chown -R www-data:www-data /var/lib/phpmyadmin
A continuación, copie el archivo de configuración de muestra de phpMyAdmin:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
A continuación, instale pwgen y genere una clave secreta con el siguiente comando:
apt-get install pwgen -y
pwgen -s 32 1
Producción :
pau9t1SG6lmaeCFxKqeeaY5N4erIa25K
A continuación, edite el archivo config.inc.php y configúrelo:
nano /usr/share/phpmyadmin/config.inc.php
Defina su clave secreta y descomente las siguientes líneas:
$cfg['blowfish_secret'] = 'pau9t1SG6lmaeCFxKqeeaY5N4erIa25K'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'password';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Guarde y cierre el archivo cuando haya terminado.
Crear usuario administrador de phpMyAdmin
Siempre se recomienda crear un usuario separado para administrar la base de datos a través de phpMyAdmin.
Primero, importe las tablas phpMyAdmin a la base de datos MariaDB usando el siguiente comando:
mysql < /usr/share/phpmyadmin/sql/create_tables.sql
A continuación, conéctese al shell MariaDB con el siguiente comando:
mysql
Una vez que esté conectado, otorgue todos los privilegios necesarios a la base de datos phpmyadmin con el siguiente comando:
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';
A continuación, cree un usuario administrador con el siguiente comando:
MariaDB [(none)]> CREATE USER myadmin;
A continuación, otorgue todos los privilegios al usuario administrador con el siguiente comando:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'myadmin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
A continuación, borre los privilegios y salga del shell MariaDB usando el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Una vez que haya terminado, puede continuar con el siguiente paso.
Configurar Apache para phpMyAdmin
A continuación, debe crear un archivo de configuración de host virtual Apache para phpMyAdmin. Puedes crearlo usando el siguiente comando:
nano /etc/apache2/conf-available/phpmyadmin.conf
Agregue las siguientes líneas:
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
</Directory>
# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>
Guarde y cierre el archivo cuando haya terminado, luego habilite el archivo de configuración phpMyAdmin con el siguiente comando:
a2enconf phpmyadmin.conf
A continuación, recarga el servicio Apache para aplicar los cambios:
systemctl reload apache2
Puede verificar el estado del servicio Apache usando el siguiente comando:
systemctl status apache2
Deberías ver el siguiente resultado:
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2024-08-25 11:28:21 UTC; 5s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 23021 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 23031 (apache2)
Tasks: 6 (limit: 2341)
Memory: 14.6M
CPU: 89ms
CGroup: /system.slice/apache2.service
??45031 /usr/sbin/apache2 -k start
??45032 /usr/sbin/apache2 -k start
??45033 /usr/sbin/apache2 -k start
??45034 /usr/sbin/apache2 -k start
??45035 /usr/sbin/apache2 -k start
??45036 /usr/sbin/apache2 -k start
Sun 25 11:28:21 debian systemd[1]: Starting The Apache HTTP Server...
Accede a phpMyAdmin
En este punto, phpMyAdmin está instalado y configurado. Ahora, abra su navegador web y acceda a phpMyAdmin usando la URL http://your-server-ip/phpmyadmin. Deberías ver la página de inicio de sesión de phpMyAdmin:
Proporcione su nombre de usuario y contraseña de administrador y haga clic en el botón Ir . Deberías ver el panel de phpMyAdmin en la siguiente página:
PHPMyAdmin seguro
Es una buena idea proteger phpMyAdmin con autenticación de dos factores. Puede hacerlo utilizando las funcionalidades de autenticación y autorización de .htaccess.
Primero, edite el archivo de configuración phpMyAdmin:
nano /etc/apache2/conf-available/phpmyadmin.conf
Agregue la línea "AllowOverride All" en el siguiente bloque del servidor:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
<IfModule mod_php5.c>
Guarde y cierre el archivo cuando haya terminado y luego reinicie el servicio Apache:
systemctl restart apache2
A continuación, cree un archivo .htaccess y defina el tipo de autenticación de Apache:
nano /usr/share/phpmyadmin/.htaccess
Agregue las siguientes líneas:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/share/phpmyadmin/.htpasswd
Require valid-user
Guarde y cierre el archivo y luego cree un usuario con el siguiente comando:
htpasswd -c /usr/share/phpmyadmin/.htpasswd secureuser
Se le pedirá que establezca una contraseña como se muestra a continuación:
New password:
Re-type new password:
Adding password for user secureuser
Verificar phpMyAdmin
En este punto, phpMyAdmin está protegido con autenticación adicional. Para verificarlo, abra su navegador web y acceda a phpMyAdmin usando la URL http://your-server-ip/phpmyadmin. Se le pedirá el nombre de usuario y la contraseña adicionales como se muestra a continuación:
Después de proporcionar su nombre de usuario y contraseña, será redirigido a la página de inicio de sesión habitual de phpMyAdmin.
Conclusión
¡Felicidades! Ha instalado y protegido correctamente phpMyAdmin en Debian 12. Ahora puede explorar phpMyAdmin y administrar su base de datos desde el navegador web.