phpMyAdmin es una aplicación gratuita, de código abierto y basada en web que se utiliza para administrar bases de datos MySQL y MariaDB desde la interfaz web. Crear y administrar una base de datos desde la interfaz de línea de comandos es muy difícil para los usuarios principiantes. phpMyAdmin proporciona una manera más fácil de administrar bases de datos MySQL, cuentas de usuario y privilegios, ejecutar declaraciones SQL, importar y exportar datos a través del navegador web.
En esta publicación, le mostraremos cómo instalar y asegurar la herramienta de administración de bases de datos phpMyAdmin en Debian 11.
Requisitos
- Un servidor que ejecuta Debian 11.
- Se configura una contraseña raíz en el servidor.
Cómo empezar
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-get update -y
Una vez que su sistema esté actualizado, puede continuar con el siguiente paso.
Instalar servidor LAMP
phpMyAdmin es una aplicación basada en PHP y se ejecuta en un servidor web. Por lo tanto, deberá instalar el servidor LAMP en su servidor. Puedes instalarlo usando el siguiente comando:
apt-get 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.1.1/phpMyAdmin-5.1.1-all-languages.zip
Una vez completada la descarga, descomprima el archivo descargado con el siguiente comando:
unzip phpMyAdmin-5.1.1-all-languages.zip
A continuación, mueva el directorio extraído a /usr/share con el siguiente comando:
mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin
Luego, cree el directorio requerido con el siguiente comando:
mkdir -p /var/lib/phpmyadmin/tmp
A continuación, establezca la propiedad adecuada en 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
Salida:
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 de 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 de 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, elimine los privilegios y salga del shell de MariaDB con 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, deberá crear un archivo de configuración de host virtual de 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 de phpMyAdmin con el siguiente comando:
a2enconf phpmyadmin.conf
A continuación, vuelva a cargar el servicio de Apache para aplicar los cambios:
systemctl reload apache2
Puede verificar el estado del servicio Apache usando el siguiente comando:
systemctl status apache2
Debería 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 Tue 2021-08-17 10:16:28 UTC; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 45027 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 45031 (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 Aug 17 10:16:28 debian systemd[1]: Starting The Apache HTTP Server...
Acceso 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ía 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 Ir botón. Debería ver el panel de phpMyAdmin en la siguiente página:
phpMyAdmin seguro
Es una buena idea asegurar phpMyAdmin con autenticación de dos factores. Puede hacerlo utilizando las funcionalidades de autenticación y autorización .htaccess.
Primero, edite el archivo de configuración de phpMyAdmin:
nano /etc/apache2/conf-available/phpmyadmin.conf
Agregue la línea "AllowOverride All" en el siguiente bloque de 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 asegurado con éxito phpMyAdmin en Debian 11. Ahora puede explorar phpMyAdmin y comenzar a administrar su base de datos desde el navegador web.