Este error indica problemas con la configuración de la conexión a la base de datos.

Solución:

  • Asegúrate de que el servidor de base de datos (MySQL) está en funcionamiento: sudo systemctl status mysql.
  • Verifica que el nombre de host, el puerto, el nombre de usuario y la contraseña en el archivo /etc/phpmyadmin/config.inc.php sean correctos.
sudo systemctl status mysql
sudo nano /etc/phpmyadmin/config.inc.php
ProblemaSolución
404 Not FoundComprobar la configuración del servidor web, la URL, el enlace simbólico
Access deniedComprobar la contraseña, el usuario, los permisos en MySQL
mbstring missingInstalar php-mbstring, reiniciar el servidor web
Cannot connect: invalid settingsComprobar el estado de MySQL, el nombre de host, el puerto, el usuario, la contraseña

Si te encuentras con otro problema – ¡no te desesperes! Busca el error en Google. Honestly, Google – es tu mejor amigo. Y Stack Overflow también.

«Siempre codifica como si el tipo que vaya a mantener tu código sea un psicópata violento que sabe dónde vives.»

VPS Hosting

Servidores virtuales con recursos garantizados

Elegir VPS

John Woods

Y recuerda: es mejor prevenir el problema que solucionarlo. Por lo tanto, haz copias de seguridad, configura la seguridad y actualiza phpMyAdmin regularmente. Word of warning: lo barato sale caro. En este caso – tu tiempo y tus nervios.

¡Eso es todo! Espero que esta guía te haya sido útil. ¡Mucha suerte con la instalación y configuración de phpMyAdmin! If you have any questions, feel free to ask in the comments.

Enlaces externos:

«`

Contenido

Preparación para la instalación: Actualizamos e instalamos lo necesario

Как установить phpMyAdmin на VPS? - A screenshot of the terminal showing package update commands being executed successfully.

Bien, lo primero que hay que hacer es asegurarse de que tenemos todo actualizado y listo para funcionar. Es como lavarse los dientes antes de una reunión importante, pero para tu VPS. ¡Sin esto no hay nada que hacer! Empezaremos actualizando la lista de paquetes e instalando las dependencias necesarias. Wanna make sure everything is up to date, right? Usaremos `apt` (o `yum`, si tienes CentOS/RHEL, pero yo mostraré el ejemplo con Debian/Ubuntu, porque estoy acostumbrado). Real talk, sin esto no se puede avanzar. Comprobado por experiencia personal.

sudo apt update
sudo apt upgrade -y
sudo apt install -y php php-mysql php-common php-mbstring php-gd php-xml php-pear mysql-server

Esto es el santo grial para que phpMyAdmin funcione. Sin `php-mysql` simplemente no podrá comunicarse con la base de datos, y sin `php-mbstring` tendrás problemas con la codificación. Been there, done that. Trust me on this one.

Y también necesitaremos un servidor web. Si ya tienes instalado Nginx o Apache – ¡genial! Si no, es el momento de solucionarlo. Yo personalmente prefiero Nginx, es como más rápido y ligero. Pero eso es cuestión de gustos. Bottom line, ambos sirven.

sudo apt install -y nginx

O, si eres fan de Apache:

sudo apt install -y apache2

Después de instalar el servidor web, asegúrate de que está funcionando. ¡Esto es importante!

sudo systemctl status nginx  # Или sudo systemctl status apache2

Si ves «active (running)» – todo está bien. Si no – busca el error en Google. No joke, ¡busca en Google! Stack Overflow te ayudará.

Y lo último en esta etapa – la configuración de MySQL. Hay que establecer una contraseña para el usuario `root` y crear una base de datos para phpMyAdmin. Aquí *atención*: si acabas de instalar MySQL, es posible que no se haya establecido la contraseña para `root`. En este caso, tendrás que utilizar el comando `mysql_secure_installation`. Te ayudará a establecer la contraseña y a realizar otras configuraciones de seguridad importantes.

sudo mysql_secure_installation

Responde a las preguntas con atención. Normalmente recomiendo responder «Y» a todas las preguntas, excepto a la pregunta sobre el cambio de contraseña (si ya tienes una contraseña segura).

Después de esto, nos conectamos a MySQL y creamos la base de datos:

sudo mysql -u root -p
CREATE DATABASE phpmyadmin;
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
exit;

Reemplaza `YOUR_PASSWORD` por una contraseña segura. ¡No uses «password» o «123456», te lo suplico! Seriously though, esta es la base de la seguridad.

Uf, la primera etapa está superada. Ahora tenemos todo lo necesario para instalar phpMyAdmin. Let’s move on!

Instalación de phpMyAdmin: El camino más sencillo

Как установить phpMyAdmin на VPS? - A terminal window showcasing the phpMyAdmin installation process using apt or another package manager.

Bien, ahora viene la etapa más sencilla. Instalamos phpMyAdmin desde el repositorio. Honestly, esta es la forma más indolora. No hay que descargar archivos, descomprimirlos y configurarlos manualmente. Simplemente introduces el comando y esperas. Easy peasy!

sudo apt install -y phpmyadmin

Durante la instalación te harán varias preguntas. *Atención*: elige «apache2» o «nginx» (dependiendo del servidor web que estés usando) y responde «Yes» cuando te pregunten si quieres configurar la base de datos para phpMyAdmin. Además, cuando te pregunten por la contraseña de administrador de MySQL, introduce la que has definido para el usuario `root`.

Si te equivocas en algo durante la instalación, ¡no te preocupes! Todo se puede arreglar. Simplemente reinstala phpMyAdmin:

sudo dpkg-reconfigure phpmyadmin

Este comando reiniciará el proceso de configuración. Responde a las preguntas con atención. I’ve spent hours debugging this, so trust me, mejor revisar dos veces.

Después de la instalación, hay que configurar el servidor web para que phpMyAdmin esté accesible desde el navegador. De esto hablaremos en la siguiente sección.

Configuración del servidor web (Nginx/Apache): Hacemos que funcione

Aquí empieza lo más interesante. Hay que configurar el servidor web para que sepa dónde buscar phpMyAdmin y cómo procesarlo. Aquí tenemos dos opciones: Nginx o Apache. Mostraré ambas, pero con Nginx seré un poco más detallado, porque, bueno, me gusta más. Deal? Don’t you hate when you have to configure web servers?

Configuración de Nginx

Creamos un enlace simbólico al archivo de configuración de phpMyAdmin en el directorio de Nginx:

sudo ln -s /etc/phpmyadmin/nginx.conf /etc/nginx/conf.d/phpmyadmin.conf

Luego, hay que reiniciar Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

Si ya tienes configurado un virtual host para tu sitio web, entonces tendrás que añadir el siguiente bloque al archivo de configuración de este virtual host (por ejemplo, `/etc/nginx/sites-available/default`):

location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /phpmyadmin/index.php?$args;

    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Замените на вашу версию PHP
    }
}

Presta atención a la línea `fastcgi_pass unix:/run/php/php7.4-fpm.sock;`. Aquí tienes que indicar la ruta al socket PHP-FPM. Pro tip: la versión de PHP puede ser diferente, así que compruébala antes de copiar este código.

Y, por supuesto, reiniciamos Nginx:

sudo systemctl restart nginx

Configuración de Apache

En Apache todo es un poco más sencillo. Después de instalar phpMyAdmin, se crea automáticamente un archivo de configuración para Apache. Lo único que hay que hacer es habilitarlo:

sudo a2enconf phpmyadmin

Y reiniciar Apache:

sudo systemctl restart apache2

¡Eso es todo! Ahora phpMyAdmin debería estar accesible en `http://tu_dirección_ip/phpmyadmin` o `http://tu_dominio/phpmyadmin`. Time for the moment of truth! If you get a 404 error, double-check your configuration files. I’ll be straight with you, este es el error más común.

Configuración de seguridad: Protegemos contra ataques

Bien, esta es una sección *muy* importante. ¡La seguridad no es un juego! phpMyAdmin es un bocado jugoso para los hackers, así que hay que tomar todas las medidas para protegerlo. Seriously though, es como ponerle un candado a tu casa.

Lo primero y más sencillo es cambiar la URL predeterminada. Don’t use `/phpmyadmin`. ¡Es demasiado obvio! Cámbiala por algo más complicado, por ejemplo, `/mysecretadminpanel`. Para ello, hay que editar el archivo de configuración de Nginx o Apache.

Para Nginx, esto se hace en el archivo `/etc/nginx/conf.d/phpmyadmin.conf` (o en el archivo de configuración de tu virtual host):

location /mysecretadminpanel {
    root /usr/share/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /mysecretadminpanel/index.php?$args;

    location ~ ^/mysecretadminpanel/(.+\.php)$ {
        try_files $uri =404;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Замените на вашу версию PHP
    }
}

Para Apache, hay que editar el archivo `/etc/phpmyadmin/apache.conf` (o `/etc/phpmyadmin/apache2.conf`) y reemplazar `/phpmyadmin` por `/mysecretadminpanel` en todas las líneas.

Después de esto, por supuesto, reiniciamos el servidor web.

Lo segundo es configurar la autenticación y autorización. Por defecto, phpMyAdmin utiliza la autenticación de MySQL. No es la forma más segura. Es mejor utilizar HTTP Basic Authentication o HTTP Digest Authentication. Pero esto requiere configuraciones adicionales del servidor web.

Lo tercero es configurar el firewall. Permite el acceso a phpMyAdmin solo desde determinadas direcciones IP. Word of warning: esto puede ser incómodo si cambias de dirección IP con frecuencia, pero aumenta significativamente la seguridad.

Para ello, puedes utilizar `iptables` o `ufw`. Por ejemplo, para permitir el acceso solo desde la dirección IP `192.168.1.100`, utiliza los siguientes comandos:

sudo ufw allow from 192.168.1.100 to any port 80,443
sudo ufw enable

Lo cuarto es desactivar la posibilidad de cargar archivos. phpMyAdmin permite cargar archivos al servidor. Esto puede ser peligroso si un atacante puede cargar un archivo malicioso. Para desactivar esta posibilidad, hay que editar el archivo de configuración de phpMyAdmin (`/etc/phpmyadmin/config.inc.php`) y añadir las siguientes líneas:

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

Lo quinto es actualizar phpMyAdmin regularmente. Seriously though, es como instalar actualizaciones en el teléfono. Cuanto más nueva sea la versión, menos vulnerabilidades tendrá.

El archivo de configuración `/etc/phpmyadmin/config.inc.php` es el sancta sanctorum de phpMyAdmin. Aquí se guardan todas las configuraciones, incluyendo contraseñas y rutas. Por lo tanto, hay que protegerlo como la niña de los ojos.

<?php
/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['user'] = 'phpmyadmin';
$cfg['Servers'][$i]['password'] = 'YOUR_PASSWORD';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

/* Directories for saving/uploading files */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

/* Other settings */
$cfg['blowfish_secret'] = 'YOUR_BLOWFISH_SECRET';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['LoginCookieValidity'] = 1440;

/**
 * phpMyAdmin configuration storage settings.
 */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/**
 * End of servers configuration
 */

/**
 * Disallow insecure transport
 */
$cfg['ForceSSL'] = true;

/**
 * Allow only local connections
 */
$cfg['AllowArbitraryServer'] = false;

?>

Reemplaza `YOUR_PASSWORD` por la contraseña del usuario `phpmyadmin`, y `YOUR_BLOWFISH_SECRET` por una cadena aleatoria. No joke, esta cadena tiene que ser realmente aleatoria. Utiliza algún generador de cadenas aleatorias. Por ejemplo, `openssl rand -base64 32`.

«La seguridad no es un producto, sino un proceso.»

Bruce Schneier

Y, por supuesto, ¡no te olvides de las copias de seguridad! Haz copias de seguridad regularmente de la base de datos y de los archivos de configuración. Plot twist: si algo va mal, las copias de seguridad te salvarán la vida (y tu VPS).

Verificación y pruebas: Comprobamos que todo está bien

Bien, ahora hay que asegurarse de que todo funciona como debe. Accedemos a phpMyAdmin a través del navegador (en la dirección que configuraste en la sección anterior) e intentamos iniciar sesión. Utiliza el nombre de usuario y la contraseña que definiste para el usuario `phpmyadmin` en MySQL. ¡Boom! That’s it!

Si ves la página de phpMyAdmin – ¡genial! Si no – revisa los logs del servidor web. Seguramente habrá alguna información útil. Yeah, this error message sucks, but at least оно есть.

Comprueba que puedes conectarte a las bases de datos, crear tablas, añadir datos, etc. Don’t be shy, ¡experimenta! Pero no rompas nada valioso.

Puedes crear una base de datos y una tabla de prueba:

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255)
);
INSERT INTO testtable (name) VALUES ('Test data');
SELECT * FROM testtable;

Si todo funciona – ¡enhorabuena! Has instalado y configurado phpMyAdmin correctamente. This setup is fire!

Pero esto no es todo. Hay que comprobar que phpMyAdmin funciona de forma estable y no se cae con errores. Para ello, puedes utilizar los siguientes comandos:

sudo systemctl status php7.4-fpm  # Замените на вашу версию PHP
sudo journalctl -u php7.4-fpm
sudo nginx -t  # Или sudo apachectl -t

Estos comandos te mostrarán el estado de PHP-FPM, los logs de PHP-FPM y la sintaxis de los archivos de configuración del servidor web. Si ves errores – busca en Google. Sound familiar?

ComprobaciónComandoResultado esperado
Estado de PHP-FPMsudo systemctl status php7.4-fpmactive (running)
Logs de PHP-FPMsudo journalctl -u php7.4-fpmSin errores
Sintaxis de Nginxsudo nginx -tsyntax is ok
Sintaxis de Apachesudo apachectl -tSyntax OK

Y, por último – comprueba que phpMyAdmin solo está accesible desde las direcciones IP que has permitido en el firewall. ¡Esto es importante! No cap, esto es realmente importante.

Solución de problemas típicos: Analizamos los errores

Bien, incluso a los desarrolladores más experimentados a veces algo sale mal. Y phpMyAdmin no es una excepción. Ahora analizaremos los problemas más típicos y las formas de solucionarlos. Ugh, this part always trips people up.

Problema 1: 404 Not Found

Este es el problema más común. Significa que el servidor web no puede encontrar phpMyAdmin. Las causas pueden ser diferentes:

  • El servidor web está configurado incorrectamente. Comprueba los archivos de configuración de Nginx o Apache.
  • La URL es incorrecta. Asegúrate de que estás introduciendo la URL correcta en el navegador.
  • No se ha creado un enlace simbólico al archivo de configuración de phpMyAdmin (para Nginx).

Solución:

  • Vuelve a comprobar los archivos de configuración del servidor web. Asegúrate de que no contienen errores.
  • Asegúrate de que estás introduciendo la URL correcta en el navegador.
  • Comprueba que el enlace simbólico al archivo de configuración de phpMyAdmin existe (para Nginx).
  • Reinicia el servidor web.

Problema 2: Access denied for user ‘phpmyadmin’@’localhost’

Este problema significa que phpMyAdmin no puede conectarse a la base de datos MySQL. Causas:

  • La contraseña para el usuario `phpmyadmin` en MySQL es incorrecta.
  • No se ha creado el usuario `phpmyadmin` en MySQL.
  • El usuario `phpmyadmin` no tiene permisos para la base de datos `phpmyadmin`.

Solución:

  • Comprueba la contraseña para el usuario `phpmyadmin` en el archivo de configuración de phpMyAdmin (`/etc/phpmyadmin/config.inc.php`).
  • Asegúrate de que el usuario `phpmyadmin` existe en MySQL y tiene permisos para la base de datos `phpmyadmin`.
  • Reinicia el servidor web.

Problema 3: Fatal error: The mbstring extension is missing. Please check your PHP configuration.

Este problema significa que la biblioteca `mbstring` no está instalada en PHP. Causas:

  • No se ha instalado la biblioteca `mbstring`.

Solución:

  • Instala la biblioteca `mbstring`: sudo apt install php-mbstring.
  • Reinicia el servidor web.

Problema 4: Cannot connect: invalid settings.

Este error indica problemas con la configuración de la conexión a la base de datos.

Solución:

  • Asegúrate de que el servidor de base de datos (MySQL) está en funcionamiento: sudo systemctl status mysql.
  • Verifica que el nombre de host, el puerto, el nombre de usuario y la contraseña en el archivo /etc/phpmyadmin/config.inc.php sean correctos.
sudo systemctl status mysql
sudo nano /etc/phpmyadmin/config.inc.php
ProblemaSolución
404 Not FoundComprobar la configuración del servidor web, la URL, el enlace simbólico
Access deniedComprobar la contraseña, el usuario, los permisos en MySQL
mbstring missingInstalar php-mbstring, reiniciar el servidor web
Cannot connect: invalid settingsComprobar el estado de MySQL, el nombre de host, el puerto, el usuario, la contraseña

Si te encuentras con otro problema – ¡no te desesperes! Busca el error en Google. Honestly, Google – es tu mejor amigo. Y Stack Overflow también.

«Siempre codifica como si el tipo que vaya a mantener tu código sea un psicópata violento que sabe dónde vives.»

John Woods

Y recuerda: es mejor prevenir el problema que solucionarlo. Por lo tanto, haz copias de seguridad, configura la seguridad y actualiza phpMyAdmin regularmente. Word of warning: lo barato sale caro. En este caso – tu tiempo y tus nervios.

¡Eso es todo! Espero que esta guía te haya sido útil. ¡Mucha suerte con la instalación y configuración de phpMyAdmin! If you have any questions, feel free to ask in the comments.

Enlaces externos:

«`

Contenido

Preparación para la instalación: Actualizamos e instalamos lo necesario

Как установить phpMyAdmin на VPS? - A screenshot of the terminal showing package update commands being executed successfully.

Bien, lo primero que hay que hacer es asegurarse de que tenemos todo actualizado y listo para funcionar. Es como lavarse los dientes antes de una reunión importante, pero para tu VPS. ¡Sin esto no hay nada que hacer! Empezaremos actualizando la lista de paquetes e instalando las dependencias necesarias. Wanna make sure everything is up to date, right? Usaremos `apt` (o `yum`, si tienes CentOS/RHEL, pero yo mostraré el ejemplo con Debian/Ubuntu, porque estoy acostumbrado). Real talk, sin esto no se puede avanzar. Comprobado por experiencia personal.

sudo apt update
sudo apt upgrade -y
sudo apt install -y php php-mysql php-common php-mbstring php-gd php-xml php-pear mysql-server

Esto es el santo grial para que phpMyAdmin funcione. Sin `php-mysql` simplemente no podrá comunicarse con la base de datos, y sin `php-mbstring` tendrás problemas con la codificación. Been there, done that. Trust me on this one.

Y también necesitaremos un servidor web. Si ya tienes instalado Nginx o Apache – ¡genial! Si no, es el momento de solucionarlo. Yo personalmente prefiero Nginx, es como más rápido y ligero. Pero eso es cuestión de gustos. Bottom line, ambos sirven.

sudo apt install -y nginx

O, si eres fan de Apache:

sudo apt install -y apache2

Después de instalar el servidor web, asegúrate de que está funcionando. ¡Esto es importante!

sudo systemctl status nginx  # Или sudo systemctl status apache2

Si ves «active (running)» – todo está bien. Si no – busca el error en Google. No joke, ¡busca en Google! Stack Overflow te ayudará.

Y lo último en esta etapa – la configuración de MySQL. Hay que establecer una contraseña para el usuario `root` y crear una base de datos para phpMyAdmin. Aquí *atención*: si acabas de instalar MySQL, es posible que no se haya establecido la contraseña para `root`. En este caso, tendrás que utilizar el comando `mysql_secure_installation`. Te ayudará a establecer la contraseña y a realizar otras configuraciones de seguridad importantes.

sudo mysql_secure_installation

Responde a las preguntas con atención. Normalmente recomiendo responder «Y» a todas las preguntas, excepto a la pregunta sobre el cambio de contraseña (si ya tienes una contraseña segura).

Después de esto, nos conectamos a MySQL y creamos la base de datos:

sudo mysql -u root -p
CREATE DATABASE phpmyadmin;
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
exit;

Reemplaza `YOUR_PASSWORD` por una contraseña segura. ¡No uses «password» o «123456», te lo suplico! Seriously though, esta es la base de la seguridad.

Uf, la primera etapa está superada. Ahora tenemos todo lo necesario para instalar phpMyAdmin. Let’s move on!

Instalación de phpMyAdmin: El camino más sencillo

Как установить phpMyAdmin на VPS? - A terminal window showcasing the phpMyAdmin installation process using apt or another package manager.

Bien, ahora viene la etapa más sencilla. Instalamos phpMyAdmin desde el repositorio. Honestly, esta es la forma más indolora. No hay que descargar archivos, descomprimirlos y configurarlos manualmente. Simplemente introduces el comando y esperas. Easy peasy!

sudo apt install -y phpmyadmin

Durante la instalación te harán varias preguntas. *Atención*: elige «apache2» o «nginx» (dependiendo del servidor web que estés usando) y responde «Yes» cuando te pregunten si quieres configurar la base de datos para phpMyAdmin. Además, cuando te pregunten por la contraseña de administrador de MySQL, introduce la que has definido para el usuario `root`.

Si te equivocas en algo durante la instalación, ¡no te preocupes! Todo se puede arreglar. Simplemente reinstala phpMyAdmin:

sudo dpkg-reconfigure phpmyadmin

Este comando reiniciará el proceso de configuración. Responde a las preguntas con atención. I’ve spent hours debugging this, so trust me, mejor revisar dos veces.

Después de la instalación, hay que configurar el servidor web para que phpMyAdmin esté accesible desde el navegador. De esto hablaremos en la siguiente sección.

Configuración del servidor web (Nginx/Apache): Hacemos que funcione

Aquí empieza lo más interesante. Hay que configurar el servidor web para que sepa dónde buscar phpMyAdmin y cómo procesarlo. Aquí tenemos dos opciones: Nginx o Apache. Mostraré ambas, pero con Nginx seré un poco más detallado, porque, bueno, me gusta más. Deal? Don’t you hate when you have to configure web servers?

Configuración de Nginx

Creamos un enlace simbólico al archivo de configuración de phpMyAdmin en el directorio de Nginx:

sudo ln -s /etc/phpmyadmin/nginx.conf /etc/nginx/conf.d/phpmyadmin.conf

Luego, hay que reiniciar Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

Si ya tienes configurado un virtual host para tu sitio web, entonces tendrás que añadir el siguiente bloque al archivo de configuración de este virtual host (por ejemplo, `/etc/nginx/sites-available/default`):

location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /phpmyadmin/index.php?$args;

    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Замените на вашу версию PHP
    }
}

Presta atención a la línea `fastcgi_pass unix:/run/php/php7.4-fpm.sock;`. Aquí tienes que indicar la ruta al socket PHP-FPM. Pro tip: la versión de PHP puede ser diferente, así que compruébala antes de copiar este código.

Y, por supuesto, reiniciamos Nginx:

sudo systemctl restart nginx

Configuración de Apache

En Apache todo es un poco más sencillo. Después de instalar phpMyAdmin, se crea automáticamente un archivo de configuración para Apache. Lo único que hay que hacer es habilitarlo:

sudo a2enconf phpmyadmin

Y reiniciar Apache:

sudo systemctl restart apache2

¡Eso es todo! Ahora phpMyAdmin debería estar accesible en `http://tu_dirección_ip/phpmyadmin` o `http://tu_dominio/phpmyadmin`. Time for the moment of truth! If you get a 404 error, double-check your configuration files. I’ll be straight with you, este es el error más común.

Configuración de seguridad: Protegemos contra ataques

Bien, esta es una sección *muy* importante. ¡La seguridad no es un juego! phpMyAdmin es un bocado jugoso para los hackers, así que hay que tomar todas las medidas para protegerlo. Seriously though, es como ponerle un candado a tu casa.

Lo primero y más sencillo es cambiar la URL predeterminada. Don’t use `/phpmyadmin`. ¡Es demasiado obvio! Cámbiala por algo más complicado, por ejemplo, `/mysecretadminpanel`. Para ello, hay que editar el archivo de configuración de Nginx o Apache.

Para Nginx, esto se hace en el archivo `/etc/nginx/conf.d/phpmyadmin.conf` (o en el archivo de configuración de tu virtual host):

location /mysecretadminpanel {
    root /usr/share/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /mysecretadminpanel/index.php?$args;

    location ~ ^/mysecretadminpanel/(.+\.php)$ {
        try_files $uri =404;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Замените на вашу версию PHP
    }
}

Para Apache, hay que editar el archivo `/etc/phpmyadmin/apache.conf` (o `/etc/phpmyadmin/apache2.conf`) y reemplazar `/phpmyadmin` por `/mysecretadminpanel` en todas las líneas.

Después de esto, por supuesto, reiniciamos el servidor web.

Lo segundo es configurar la autenticación y autorización. Por defecto, phpMyAdmin utiliza la autenticación de MySQL. No es la forma más segura. Es mejor utilizar HTTP Basic Authentication o HTTP Digest Authentication. Pero esto requiere configuraciones adicionales del servidor web.

Lo tercero es configurar el firewall. Permite el acceso a phpMyAdmin solo desde determinadas direcciones IP. Word of warning: esto puede ser incómodo si cambias de dirección IP con frecuencia, pero aumenta significativamente la seguridad.

Para ello, puedes utilizar `iptables` o `ufw`. Por ejemplo, para permitir el acceso solo desde la dirección IP `192.168.1.100`, utiliza los siguientes comandos:

sudo ufw allow from 192.168.1.100 to any port 80,443
sudo ufw enable

Lo cuarto es desactivar la posibilidad de cargar archivos. phpMyAdmin permite cargar archivos al servidor. Esto puede ser peligroso si un atacante puede cargar un archivo malicioso. Para desactivar esta posibilidad, hay que editar el archivo de configuración de phpMyAdmin (`/etc/phpmyadmin/config.inc.php`) y añadir las siguientes líneas:

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

Lo quinto es actualizar phpMyAdmin regularmente. Seriously though, es como instalar actualizaciones en el teléfono. Cuanto más nueva sea la versión, menos vulnerabilidades tendrá.

El archivo de configuración `/etc/phpmyadmin/config.inc.php` es el sancta sanctorum de phpMyAdmin. Aquí se guardan todas las configuraciones, incluyendo contraseñas y rutas. Por lo tanto, hay que protegerlo como la niña de los ojos.

<?php
/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['user'] = 'phpmyadmin';
$cfg['Servers'][$i]['password'] = 'YOUR_PASSWORD';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

/* Directories for saving/uploading files */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

/* Other settings */
$cfg['blowfish_secret'] = 'YOUR_BLOWFISH_SECRET';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['LoginCookieValidity'] = 1440;

/**
 * phpMyAdmin configuration storage settings.
 */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/**
 * End of servers configuration
 */

/**
 * Disallow insecure transport
 */
$cfg['ForceSSL'] = true;

/**
 * Allow only local connections
 */
$cfg['AllowArbitraryServer'] = false;

?>

Reemplaza `YOUR_PASSWORD` por la contraseña del usuario `phpmyadmin`, y `YOUR_BLOWFISH_SECRET` por una cadena aleatoria. No joke, esta cadena tiene que ser realmente aleatoria. Utiliza algún generador de cadenas aleatorias. Por ejemplo, `openssl rand -base64 32`.

«La seguridad no es un producto, sino un proceso.»

Bruce Schneier

Y, por supuesto, ¡no te olvides de las copias de seguridad! Haz copias de seguridad regularmente de la base de datos y de los archivos de configuración. Plot twist: si algo va mal, las copias de seguridad te salvarán la vida (y tu VPS).

Verificación y pruebas: Comprobamos que todo está bien

Bien, ahora hay que asegurarse de que todo funciona como debe. Accedemos a phpMyAdmin a través del navegador (en la dirección que configuraste en la sección anterior) e intentamos iniciar sesión. Utiliza el nombre de usuario y la contraseña que definiste para el usuario `phpmyadmin` en MySQL. ¡Boom! That’s it!

Si ves la página de phpMyAdmin – ¡genial! Si no – revisa los logs del servidor web. Seguramente habrá alguna información útil. Yeah, this error message sucks, but at least оно есть.

Comprueba que puedes conectarte a las bases de datos, crear tablas, añadir datos, etc. Don’t be shy, ¡experimenta! Pero no rompas nada valioso.

Puedes crear una base de datos y una tabla de prueba:

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255)
);
INSERT INTO testtable (name) VALUES ('Test data');
SELECT * FROM testtable;

Si todo funciona – ¡enhorabuena! Has instalado y configurado phpMyAdmin correctamente. This setup is fire!

Pero esto no es todo. Hay que comprobar que phpMyAdmin funciona de forma estable y no se cae con errores. Para ello, puedes utilizar los siguientes comandos:

sudo systemctl status php7.4-fpm  # Замените на вашу версию PHP
sudo journalctl -u php7.4-fpm
sudo nginx -t  # Или sudo apachectl -t

Estos comandos te mostrarán el estado de PHP-FPM, los logs de PHP-FPM y la sintaxis de los archivos de configuración del servidor web. Si ves errores – busca en Google. Sound familiar?

ComprobaciónComandoResultado esperado
Estado de PHP-FPMsudo systemctl status php7.4-fpmactive (running)
Logs de PHP-FPMsudo journalctl -u php7.4-fpmSin errores
Sintaxis de Nginxsudo nginx -tsyntax is ok
Sintaxis de Apachesudo apachectl -tSyntax OK

Y, por último – comprueba que phpMyAdmin solo está accesible desde las direcciones IP que has permitido en el firewall. ¡Esto es importante! No cap, esto es realmente importante.

Solución de problemas típicos: Analizamos los errores

Bien, incluso a los desarrolladores más experimentados a veces algo sale mal. Y phpMyAdmin no es una excepción. Ahora analizaremos los problemas más típicos y las formas de solucionarlos. Ugh, this part always trips people up.

Problema 1: 404 Not Found

Este es el problema más común. Significa que el servidor web no puede encontrar phpMyAdmin. Las causas pueden ser diferentes:

  • El servidor web está configurado incorrectamente. Comprueba los archivos de configuración de Nginx o Apache.
  • La URL es incorrecta. Asegúrate de que estás introduciendo la URL correcta en el navegador.
  • No se ha creado un enlace simbólico al archivo de configuración de phpMyAdmin (para Nginx).

Solución:

  • Vuelve a comprobar los archivos de configuración del servidor web. Asegúrate de que no contienen errores.
  • Asegúrate de que estás introduciendo la URL correcta en el navegador.
  • Comprueba que el enlace simbólico al archivo de configuración de phpMyAdmin existe (para Nginx).
  • Reinicia el servidor web.

Problema 2: Access denied for user ‘phpmyadmin’@’localhost’

Este problema significa que phpMyAdmin no puede conectarse a la base de datos MySQL. Causas:

  • La contraseña para el usuario `phpmyadmin` en MySQL es incorrecta.
  • No se ha creado el usuario `phpmyadmin` en MySQL.
  • El usuario `phpmyadmin` no tiene permisos para la base de datos `phpmyadmin`.

Solución:

  • Comprueba la contraseña para el usuario `phpmyadmin` en el archivo de configuración de phpMyAdmin (`/etc/phpmyadmin/config.inc.php`).
  • Asegúrate de que el usuario `phpmyadmin` existe en MySQL y tiene permisos para la base de datos `phpmyadmin`.
  • Reinicia el servidor web.

Problema 3: Fatal error: The mbstring extension is missing. Please check your PHP configuration.

Este problema significa que la biblioteca `mbstring` no está instalada en PHP. Causas:

  • No se ha instalado la biblioteca `mbstring`.

Solución:

  • Instala la biblioteca `mbstring`: sudo apt install php-mbstring.
  • Reinicia el servidor web.

Problema 4: Cannot connect: invalid settings.

Este error indica problemas con la configuración de la conexión a la base de datos.

Solución:

  • Asegúrate de que el servidor de base de datos (MySQL) está en funcionamiento: sudo systemctl status mysql.
  • Verifica que el nombre de host, el puerto, el nombre de usuario y la contraseña en el archivo /etc/phpmyadmin/config.inc.php sean correctos.
sudo systemctl status mysql
sudo nano /etc/phpmyadmin/config.inc.php
ProblemaSolución
404 Not FoundComprobar la configuración del servidor web, la URL, el enlace simbólico
Access deniedComprobar la contraseña, el usuario, los permisos en MySQL
mbstring missingInstalar php-mbstring, reiniciar el servidor web
Cannot connect: invalid settingsComprobar el estado de MySQL, el nombre de host, el puerto, el usuario, la contraseña

Si te encuentras con otro problema – ¡no te desesperes! Busca el error en Google. Honestly, Google – es tu mejor amigo. Y Stack Overflow también.

«Siempre codifica como si el tipo que vaya a mantener tu código sea un psicópata violento que sabe dónde vives.»

John Woods

Y recuerda: es mejor prevenir el problema que solucionarlo. Por lo tanto, haz copias de seguridad, configura la seguridad y actualiza phpMyAdmin regularmente. Word of warning: lo barato sale caro. En este caso – tu tiempo y tus nervios.

¡Eso es todo! Espero que esta guía te haya sido útil. ¡Mucha suerte con la instalación y configuración de phpMyAdmin! If you have any questions, feel free to ask in the comments.

Enlaces externos:

«`«`html

¿Cómo instalar phpMyAdmin en un VPS? ¡Guía paso a paso para principiantes y no tan principiantes!

¡Hola, colegas! ¿Cansado de lidiar con MySQL a través de la línea de comandos? ¿Quieres una interfaz gráfica intuitiva para administrar tus bases de datos en tu VPS? ¡Entonces has llegado al lugar correcto! En esta guía, yo, como desarrollador experimentado que ha pasado por las duras (y toneladas de errores en phpMyAdmin), te contaré cómo instalar y configurar phpMyAdmin en tu servidor virtual. ¡Prepárate, que se va a poner interesante! Pasaremos por todas las etapas: desde la actualización de paquetes hasta la configuración de seguridad. Y sí, hablaré en un lenguaje sencillo, sin términos complicados, porque, en serio, ¿quién los entiende a la primera? ¡Let’s go!

En esta guía aprenderás:

  • Cómo actualizar los paquetes e instalar las dependencias necesarias.
  • Cómo instalar phpMyAdmin y configurar el servidor web (Nginx o Apache).
  • Cómo configurar la autenticación y autorización.
  • Cómo mejorar la seguridad de phpMyAdmin (¡esto es *muy* importante!).
  • Cómo verificar la funcionalidad y solucionar problemas típicos.

No te preocupes si eres principiante. Intentaré explicar todo lo más detalladamente posible. Y sí, usaré muchos ejemplos y comandos reales. ¿Listo?

Contenido

Preparación para la instalación: Actualizamos e instalamos lo necesario

Как установить phpMyAdmin на VPS? - A screenshot of the terminal showing package update commands being executed successfully.

Bien, lo primero que hay que hacer es asegurarse de que tenemos todo actualizado y listo para funcionar. Es como lavarse los dientes antes de una reunión importante, pero para tu VPS. ¡Sin esto no hay nada que hacer! Empezaremos actualizando la lista de paquetes e instalando las dependencias necesarias. Wanna make sure everything is up to date, right? Usaremos `apt` (o `yum`, si tienes CentOS/RHEL, pero yo mostraré el ejemplo con Debian/Ubuntu, porque estoy acostumbrado). Real talk, sin esto no se puede avanzar. Comprobado por experiencia personal.

sudo apt update
sudo apt upgrade -y
sudo apt install -y php php-mysql php-common php-mbstring php-gd php-xml php-pear mysql-server

Esto es el santo grial para que phpMyAdmin funcione. Sin `php-mysql` simplemente no podrá comunicarse con la base de datos, y sin `php-mbstring` tendrás problemas con la codificación. Been there, done that. Trust me on this one.

Y también necesitaremos un servidor web. Si ya tienes instalado Nginx o Apache – ¡genial! Si no, es el momento de solucionarlo. Yo personalmente prefiero Nginx, es como más rápido y ligero. Pero eso es cuestión de gustos. Bottom line, ambos sirven.

sudo apt install -y nginx

O, si eres fan de Apache:

sudo apt install -y apache2

Después de instalar el servidor web, asegúrate de que está funcionando. ¡Esto es importante!

sudo systemctl status nginx  # Или sudo systemctl status apache2

Si ves «active (running)» – todo está bien. Si no – busca el error en Google. No joke, ¡busca en Google! Stack Overflow te ayudará.

Y lo último en esta etapa – la configuración de MySQL. Hay que establecer una contraseña para el usuario `root` y crear una base de datos para phpMyAdmin. Aquí *atención*: si acabas de instalar MySQL, es posible que no se haya establecido la contraseña para `root`. En este caso, tendrás que utilizar el comando `mysql_secure_installation`. Te ayudará a establecer la contraseña y a realizar otras configuraciones de seguridad importantes.

sudo mysql_secure_installation

Responde a las preguntas con atención. Normalmente recomiendo responder «Y» a todas las preguntas, excepto a la pregunta sobre el cambio de contraseña (si ya tienes una contraseña segura).

Después de esto, nos conectamos a MySQL y creamos la base de datos:

sudo mysql -u root -p
CREATE DATABASE phpmyadmin;
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
FLUSH PRIVILEGES;
exit;

Reemplaza `YOUR_PASSWORD` por una contraseña segura. ¡No uses «password» o «123456», te lo suplico! Seriously though, esta es la base de la seguridad.

Uf, la primera etapa está superada. Ahora tenemos todo lo necesario para instalar phpMyAdmin. Let’s move on!

Instalación de phpMyAdmin: El camino más sencillo

Как установить phpMyAdmin на VPS? - A terminal window showcasing the phpMyAdmin installation process using apt or another package manager.

Bien, ahora viene la etapa más sencilla. Instalamos phpMyAdmin desde el repositorio. Honestly, esta es la forma más indolora. No hay que descargar archivos, descomprimirlos y configurarlos manualmente. Simplemente introduces el comando y esperas. Easy peasy!

sudo apt install -y phpmyadmin

Durante la instalación te harán varias preguntas. *Atención*: elige «apache2» o «nginx» (dependiendo del servidor web que estés usando) y responde «Yes» cuando te pregunten si quieres configurar la base de datos para phpMyAdmin. Además, cuando te pregunten por la contraseña de administrador de MySQL, introduce la que has definido para el usuario `root`.

Si te equivocas en algo durante la instalación, ¡no te preocupes! Todo se puede arreglar. Simplemente reinstala phpMyAdmin:

sudo dpkg-reconfigure phpmyadmin

Este comando reiniciará el proceso de configuración. Responde a las preguntas con atención. I’ve spent hours debugging this, so trust me, mejor revisar dos veces.

Después de la instalación, hay que configurar el servidor web para que phpMyAdmin esté accesible desde el navegador. De esto hablaremos en la siguiente sección.

Configuración del servidor web (Nginx/Apache): Hacemos que funcione

Aquí empieza lo más interesante. Hay que configurar el servidor web para que sepa dónde buscar phpMyAdmin y cómo procesarlo. Aquí tenemos dos opciones: Nginx o Apache. Mostraré ambas, pero con Nginx seré un poco más detallado, porque, bueno, me gusta más. Deal? Don’t you hate when you have to configure web servers?

Configuración de Nginx

Creamos un enlace simbólico al archivo de configuración de phpMyAdmin en el directorio de Nginx:

sudo ln -s /etc/phpmyadmin/nginx.conf /etc/nginx/conf.d/phpmyadmin.conf

Luego, hay que reiniciar Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

Si ya tienes configurado un virtual host para tu sitio web, entonces tendrás que añadir el siguiente bloque al archivo de configuración de este virtual host (por ejemplo, `/etc/nginx/sites-available/default`):

location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /phpmyadmin/index.php?$args;

    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Замените на вашу версию PHP
    }
}

Presta atención a la línea `fastcgi_pass unix:/run/php/php7.4-fpm.sock;`. Aquí tienes que indicar la ruta al socket PHP-FPM. Pro tip: la versión de PHP puede ser diferente, así que compruébala antes de copiar este código.

Y, por supuesto, reiniciamos Nginx:

sudo systemctl restart nginx

Configuración de Apache

En Apache todo es un poco más sencillo. Después de instalar phpMyAdmin, se crea automáticamente un archivo de configuración para Apache. Lo único que hay que hacer es habilitarlo:

sudo a2enconf phpmyadmin

Y reiniciar Apache:

sudo systemctl restart apache2

¡Eso es todo! Ahora phpMyAdmin debería estar accesible en `http://tu_dirección_ip/phpmyadmin` o `http://tu_dominio/phpmyadmin`. Time for the moment of truth! If you get a 404 error, double-check your configuration files. I’ll be straight with you, este es el error más común.

Configuración de seguridad: Protegemos contra ataques

Bien, esta es una sección *muy* importante. ¡La seguridad no es un juego! phpMyAdmin es un bocado jugoso para los hackers, así que hay que tomar todas las medidas para protegerlo. Seriously though, es como ponerle un candado a tu casa.

Lo primero y más sencillo es cambiar la URL predeterminada. Don’t use `/phpmyadmin`. ¡Es demasiado obvio! Cámbiala por algo más complicado, por ejemplo, `/mysecretadminpanel`. Para ello, hay que editar el archivo de configuración de Nginx o Apache.

Para Nginx, esto se hace en el archivo `/etc/nginx/conf.d/phpmyadmin.conf` (o en el archivo de configuración de tu virtual host):

location /mysecretadminpanel {
    root /usr/share/;
    index index.php index.html index.htm;
    try_files $uri $uri/ /mysecretadminpanel/index.php?$args;

    location ~ ^/mysecretadminpanel/(.+\.php)$ {
        try_files $uri =404;
        include /etc/nginx/snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # Замените на вашу версию PHP
    }
}

Para Apache, hay que editar el archivo `/etc/phpmyadmin/apache.conf` (o `/etc/phpmyadmin/apache2.conf`) y reemplazar `/phpmyadmin` por `/mysecretadminpanel` en todas las líneas.

Después de esto, por supuesto, reiniciamos el servidor web.

Lo segundo es configurar la autenticación y autorización. Por defecto, phpMyAdmin utiliza la autenticación de MySQL. No es la forma más segura. Es mejor utilizar HTTP Basic Authentication o HTTP Digest Authentication. Pero esto requiere configuraciones adicionales del servidor web.

Lo tercero es configurar el firewall. Permite el acceso a phpMyAdmin solo desde determinadas direcciones IP. Word of warning: esto puede ser incómodo si cambias de dirección IP con frecuencia, pero aumenta significativamente la seguridad.

Para ello, puedes utilizar `iptables` o `ufw`. Por ejemplo, para permitir el acceso solo desde la dirección IP `192.168.1.100`, utiliza los siguientes comandos:

sudo ufw allow from 192.168.1.100 to any port 80,443
sudo ufw enable

Lo cuarto es desactivar la posibilidad de cargar archivos. phpMyAdmin permite cargar archivos al servidor. Esto puede ser peligroso si un atacante puede cargar un archivo malicioso. Para desactivar esta posibilidad, hay que editar el archivo de configuración de phpMyAdmin (`/etc/phpmyadmin/config.inc.php`) y añadir las siguientes líneas:

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

Lo quinto es actualizar phpMyAdmin regularmente. Seriously though, es como instalar actualizaciones en el teléfono. Cuanto más nueva sea la versión, menos vulnerabilidades tendrá.

El archivo de configuración `/etc/phpmyadmin/config.inc.php` es el sancta sanctorum de phpMyAdmin. Aquí se guardan todas las configuraciones, incluyendo contraseñas y rutas. Por lo tanto, hay que protegerlo como la niña de los ojos.

<?php
/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3306;
$cfg['Servers'][$i]['user'] = 'phpmyadmin';
$cfg['Servers'][$i]['password'] = 'YOUR_PASSWORD';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

/* Directories for saving/uploading files */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

/* Other settings */
$cfg['blowfish_secret'] = 'YOUR_BLOWFISH_SECRET';
$cfg['DefaultLang'] = 'ru';
$cfg['ServerDefault'] = 1;
$cfg['LoginCookieValidity'] = 1440;

/**
 * phpMyAdmin configuration storage settings.
 */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/**
 * End of servers configuration
 */

/**
 * Disallow insecure transport
 */
$cfg['ForceSSL'] = true;

/**
 * Allow only local connections
 */
$cfg['AllowArbitraryServer'] = false;

?>

Reemplaza `YOUR_PASSWORD` por la contraseña del usuario `phpmyadmin`, y `YOUR_BLOWFISH_SECRET` por una cadena aleatoria. No joke, esta cadena tiene que ser realmente aleatoria. Utiliza algún generador de cadenas aleatorias. Por ejemplo, `openssl rand -base64 32`.

«La seguridad no es un producto, sino un proceso.»

Bruce Schneier

Y, por supuesto, ¡no te olvides de las copias de seguridad! Haz copias de seguridad regularmente de la base de datos y de los archivos de configuración. Plot twist: si algo va mal, las copias de seguridad te salvarán la vida (y tu VPS).

Verificación y pruebas: Comprobamos que todo está bien

Bien, ahora hay que asegurarse de que todo funciona como debe. Accedemos a phpMyAdmin a través del navegador (en la dirección que configuraste en la sección anterior) e intentamos iniciar sesión. Utiliza el nombre de usuario y la contraseña que definiste para el usuario `phpmyadmin` en MySQL. ¡Boom! That’s it!

Si ves la página de phpMyAdmin – ¡genial! Si no – revisa los logs del servidor web. Seguramente habrá alguna información útil. Yeah, this error message sucks, but at least оно есть.

Comprueba que puedes conectarte a las bases de datos, crear tablas, añadir datos, etc. Don’t be shy, ¡experimenta! Pero no rompas nada valioso.

Puedes crear una base de datos y una tabla de prueba:

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255)
);
INSERT INTO testtable (name) VALUES ('Test data');
SELECT * FROM testtable;

Si todo funciona – ¡enhorabuena! Has instalado y configurado phpMyAdmin correctamente. This setup is fire!

Pero esto no es todo. Hay que comprobar que phpMyAdmin funciona de forma estable y no se cae con errores. Para ello, puedes utilizar los siguientes comandos:

sudo systemctl status php7.4-fpm  # Замените на вашу версию PHP
sudo journalctl -u php7.4-fpm
sudo nginx -t  # Или sudo apachectl -t

Estos comandos te mostrarán el estado de PHP-FPM, los logs de PHP-FPM y la sintaxis de los archivos de configuración del servidor web. Si ves errores – busca en Google. Sound familiar?

ComprobaciónComandoResultado esperado
Estado de PHP-FPMsudo systemctl status php7.4-fpmactive (running)
Logs de PHP-FPMsudo journalctl -u php7.4-fpmSin errores
Sintaxis de Nginxsudo nginx -tsyntax is ok
Sintaxis de Apachesudo apachectl -tSyntax OK

Y, por último – comprueba que phpMyAdmin solo está accesible desde las direcciones IP que has permitido en el firewall. ¡Esto es importante! No cap, esto es realmente importante.

Solución de problemas típicos: Analizamos los errores

Bien, incluso a los desarrolladores más experimentados a veces algo sale mal. Y phpMyAdmin no es una excepción. Ahora analizaremos los problemas más típicos y las formas de solucionarlos. Ugh, this part always trips people up.

Problema 1: 404 Not Found

Este es el problema más común. Significa que el servidor web no puede encontrar phpMyAdmin. Las causas pueden ser diferentes:

  • El servidor web está configurado incorrectamente. Comprueba los archivos de configuración de Nginx o Apache.
  • La URL es incorrecta. Asegúrate de que estás introduciendo la URL correcta en el navegador.
  • No se ha creado un enlace simbólico al archivo de configuración de phpMyAdmin (para Nginx).

Solución:

  • Vuelve a comprobar los archivos de configuración del servidor web. Asegúrate de que no contienen errores.
  • Asegúrate de que estás introduciendo la URL correcta en el navegador.
  • Comprueba que el enlace simbólico al archivo de configuración de phpMyAdmin existe (para Nginx).
  • Reinicia el servidor web.

Problema 2: Access denied for user ‘phpmyadmin’@’localhost’

Este problema significa que phpMyAdmin no puede conectarse a la base de datos MySQL. Causas:

  • La contraseña para el usuario `phpmyadmin` en MySQL es incorrecta.
  • No se ha creado el usuario `phpmyadmin` en MySQL.
  • El usuario `phpmyadmin` no tiene permisos para la base de datos `phpmyadmin`.

Solución:

  • Comprueba la contraseña para el usuario `phpmyadmin` en el archivo de configuración de phpMyAdmin (`/etc/phpmyadmin/config.inc.php`).
  • Asegúrate de que el usuario `phpmyadmin` existe en MySQL y tiene permisos para la base de datos `phpmyadmin`.
  • Reinicia el servidor web.

Problema 3: Fatal error: The mbstring extension is missing. Please check your PHP configuration.

Este problema significa que la biblioteca `mbstring` no está instalada en PHP. Causas:

  • No se ha instalado la biblioteca `mbstring`.

Solución:

  • Instala la biblioteca `mbstring`: sudo apt install php-mbstring.
  • Reinicia el servidor web.

Problema 4: Cannot connect: invalid settings.

Este error indica problemas con la configuración de la conexión a la base de datos.

Solución:

  • Asegúrate de que el servidor de base de datos (MySQL) está en funcionamiento: sudo systemctl status mysql.
  • Verifica que el nombre de host, el puerto, el nombre de usuario y la contraseña en el archivo /etc/phpmyadmin/config.inc.php sean correctos.
sudo systemctl status mysql
sudo nano /etc/phpmyadmin/config.inc.php
ProblemaSolución
404 Not FoundComprobar la configuración del servidor web, la URL, el enlace simbólico
Access deniedComprobar la contraseña, el usuario, los permisos en MySQL
mbstring missingInstalar php-mbstring, reiniciar el servidor web
Cannot connect: invalid settingsComprobar el estado de MySQL, el nombre de host, el puerto, el usuario, la contraseña

Si te encuentras con otro problema – ¡no te desesperes! Busca el error en Google. Honestly, Google – es tu mejor amigo. Y Stack Overflow también.

«Siempre codifica como si el tipo que vaya a mantener tu código sea un psicópata violento que sabe dónde vives.»

John Woods

Y recuerda: es mejor prevenir el problema que solucionarlo. Por lo tanto, haz copias de seguridad, configura la seguridad y actualiza phpMyAdmin regularmente. Word of warning: lo barato sale caro. En este caso – tu tiempo y tus nervios.

¡Eso es todo! Espero que esta guía te haya sido útil. ¡Mucha suerte con la instalación y configuración de phpMyAdmin! If you have any questions, feel free to ask in the comments.

Enlaces externos:

«`