phpMyAdmin® es una herramienta de administración gratuita y de código abierto para MySQL® y MariaDB®. Como aplicación web portátil escrita principalmente en PHP, phpMyAdmin se ha convertido en una de las herramientas de administración de MySQL más populares, especialmente para servicios de alojamiento web.
Este artículo describe cómo instalar y configurar phpMyAdmin en su servidor web para CentOS® 7, Red Hat® Enterprise Linux® (RHEL) 7 y Ubuntu® 16.04 LTS.
Requisitos
Antes de poder instalar phpMyAdmin, debe tener instalado lo siguiente en su servidor:
- Un servidor web, como Apache® o NGINX®
- PHP
Verificar si un servidor web está instalado
Utilice los comandos de la siguiente tabla para comprobar si hay un servidor web instalado:
Sistema operativo | Servidor web | Comando |
---|---|---|
CentOS y RHEL | Apache | rpm -qa | grep httpd |
CentOS y RHEL | NGINX | rpm -qa | grep nginx |
Sistema operativo Ubuntu | Apache | dpkg -l | grep apache |
Sistema operativo Ubuntu | NGINX | dpkg -l | grep nginx |
Verificar si PHP está instalado
Use el siguiente comando para verificar si PHP está instalado en CentOS o RHEL:
rpm -qa | grep php
Use el siguiente comando para verificar si PHP está instalado en el sistema operativo Ubuntu:
dpkg -l | grep php
Instalar phpMyAdmin
Use las instrucciones en las siguientes secciones para instalar phpMyAdmin.
CentOS y RHEL
Instale phpMyAdmin usando el siguiente comando:
yum install phpmyadmin
El resultado debe ser similar al siguiente ejemplo:
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.mhd.uk.as44574.net
* epel: mirror.freethought-internet.co.uk
* extras: mirror.mhd.uk.as44574.net
* updates: mirror.mhd.uk.as44574.net
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.4.15.10-3.el7 will be installed
--> Processing Dependency: php-mysqli >= 5.3.7 for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-mbstring >= 5.3.7 for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-gd >= 5.3.7 for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-xmlwriter for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-tcpdf-dejavu-sans-fonts for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-tcpdf for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Processing Dependency: php-php-gettext for package: phpMyAdmin-4.4.15.10-3.el7.noarch
--> Running transaction check
El sistema operativo Ubuntu
Instale phpMyAdmin usando el siguiente comando:
apt-get install php phpmyadmin
El resultado debe ser similar al siguiente ejemplo:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
dbconfig-common dbconfig-mysql fontconfig-config fonts-dejavu-core javascript-common libfontconfig1 libgh3 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc libjs-underscore libtiff5 libvpx3 libxpm4 libxslt1.1 php-gd php-gettext php-mbstring php-pear php-phpseclib php-tcpdf php-xml php7.0-gd php7.0-mbstring php7.0-xml
Suggested packages:
libgd-tools php-libsodium php-gmp php-imagick www-browser
The following NEW packages will be installed:
dbconfig-common dbconfig-mysql fontconfig-config fonts-devaju-core javascript-common libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc libjs-underscore libtiff5 libvpx3 libxpm4 libxslt1.1 php-gd php-gettext php-mbstring php-pear php-phpseclib php-tcpdf php-xml php7.0-gd php7.0-mbstring php7.0-xml phpmyadmin
0 upgraded, 28 newly installed, 0 to remove and 6 not upgraded.
Need to get 16.3 MB of archives.
After this operation, 61.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Presiona Y y luego presione Entrar para continuar con el proceso de configuración. Consulte Configurar phpMyAdmin en el sistema operativo Ubuntu sección para más instrucciones.
Configurar phpMyAdmin en CentOS y RHEL
Después de haber instalado phpMyAdmin en su servidor web, utilice las instrucciones de las siguientes secciones para configurar phpMyAdmin.
servidor web Apache
Primero debe agregar la dirección de Protocolo de Internet (IP) que desea usar para acceder a phpMyAdmin en /etc/phpMyAdmin/config.inc.php archivo de configuración.
-
Abra el /etc/phpMyAdmin/config.inc.php archivo en un editor de texto.
-
En la sección que comienza con la línea
<IfModule !mod_authz_core.c>
, agregue la dirección IP como se muestra en el siguiente ejemplo:<IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 Allow from Require ip 94.236.7.190 </IfModule> </Directory>
-
Guarde y cierre el archivo.
Establecer un alias de URL (opcional)
La URL estándar para una instalación de phpMyAdmin es https://ipaddress/phpMyAdmin , donde dirección IP es la dirección IP que agregó al archivo de configuración en la sección anterior. Si desea cambiar la URL, puede establecer un alias.
-
Abra el /etc/httpd/conf.d/phpMyAdmin.conf archivo en un editor de texto.
-
Encuentra las líneas que comienzan con
Alias
y cambie/phpMyAdmin
al alias de su elección, como se muestra en el siguiente ejemplo:Alias /NewName /usr/share/phpMyAdmin Alias /newname /usr/share/phpMyAdmin
-
Guarde y salga del archivo.
Archivo de configuración de la base de datos
Si el servidor de base de datos MySQL o MariaDB que desea usar con phpMyAdminis no se encuentra en el mismo servidor que su servidor web, debe editar el archivo de configuración de la base de datos para definir la ubicación del servidor de la base de datos.
Hay dos opciones de configuración:
- Host MySQL o dirección IP
- Puerto MySQL/MariaDB
Use los siguientes pasos para definir la ubicación de su servidor de base de datos:
-
Abra el /etc/phpMyAdmin/config.inc.php archivo en un editor de texto.
-
Edite el archivo como se muestra en el siguiente ejemplo:
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address $cfg['Servers'][$i]['port'] = ''; // MySQL port - leave blank for default port $cfg['Servers'][$i]['socket'] = ''; // Path to the socket - leave blank for default socket $cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket') $cfg['Servers'][$i]['extension'] = 'mysqli'; // The php MySQL extension to use ('mysql' or 'mysqli') $cfg['Servers'][$i]['compress'] = FALSE; // Use compressed protocol for the MySQL connection // (requires PHP >= 4.3.0) $cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings // (this user must have read-only $cfg['Servers'][$i]['controlpass'] = ''; // access to the "mysql/user" // and "mysql/db" tables).
-
Guarde y salga del archivo.
Para realizar los cambios en vivo, debe verificar la sintaxis del demonio del motor web y luego reiniciarlo correctamente o volver a cargarlo.
Verifique la sintaxis usando el siguiente comando:
apachectl configtest
Si no hay errores en el archivo de configuración, debería ver Syntax OK
en la salida.
Vuelva a cargar el servidor web Apache usando el siguiente comando:
CentOS y RHEL 6
service httpd graceful
CentOS y RHEL 7
systemctl status httpd
Verifique el estado del servicio httpd para asegurarse de que funciona como se espera mediante el siguiente comando:
CentOS y RHEL 6
service httpd status
CentOS y RHEL 7
systemctl status httpd
Ahora debería poder ver phpMyAdmin a través de un navegador web, como se muestra en la siguiente imagen:
servidor web NGINX
En NGINX, el paquete phpMyAdmin no viene con un archivo de configuración, por lo que debe crear un bloque de servidor para apuntar al archivo de configuración de phpMyAdmin.
-
Abra un editor de texto y cree el archivo /etc/nginx/conf.d/phpMyAdmin.conf .
-
Introduzca los siguientes ajustes de configuración:
server { listen 80; server_name 95.138.162.233; root /var/www; location /phpMyAdmin { root /usr/share/; index index.php; # auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security # auth_basic_user_file /etc/nginx/.pma_pass; # uncomment if using .htaccess & .htpasswd security location ~\.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpmyadmin { rewrite ^/* /phpMyAdmin last; } }
-
Guarde y salga del archivo.
Para realizar los cambios en vivo, debe verificar la sintaxis del demonio del motor web y luego reiniciarlo correctamente o volver a cargarlo.
Utilice el siguiente comando para comprobar la sintaxis:
nginx -t
Si no hay errores en el archivo de configuración, debería ver Syntax OK
en la salida.
Vuelva a cargar el servidor web NGINX usando el siguiente comando:
CentOS y RHEL 6
service nginx graceful
CentOS y RHEL 7
systemctl reload nginx
Verifique el estado del servicio NGINX para asegurarse de que funciona como se espera mediante el siguiente comando:
CentOS y RHEL 6
service nginx status
CentOS y RHEL 7
systemctl status nginx
Ahora debería poder ver phpMyAdmin a través de un navegador web, como se muestra en la siguiente imagen:
Configure phpMyAdmin en el sistema operativo Ubuntu
Utilice los pasos de las siguientes secciones para configurar phpMyAdmin en el sistema operativo Ubuntu.
Servidor web Apache
El proceso de instalación agrega el archivo de configuración de phpMyAdmin Apache a /etc/apache2/conf-enabled/ directorio, donde se lee automáticamente. Lo único que debe hacer es habilitar mbstring
Extensión de PHP, que puede hacer ejecutando el siguiente comando:
sudo phpenmod mbstring
Después de instalar phpMyAdmin, aparece la pantalla de configuración del paquete, como se muestra en la siguiente imagen.
Usa la barra espaciadora para seleccionar apache2 , presiona Tab para seleccionar Aceptar y luego presione Intro .
El proceso de instalación continúa hasta que aparece otra pantalla de configuración que le pide que confirme si desea configurar su base de datos para phpMyAdmin usando dbconfig-common
.
Seleccione Sí y luego presione Intro .
Se le solicitará su contraseña de administrador de la base de datos. Ingrese su contraseña, presione Tab para seleccionar Aceptar y luego presione Intro .
Luego, ingrese una contraseña para la aplicación phpMyAdmin, presione Tab para seleccionar Aceptar y luego presione Intro .
Confirme la contraseña seleccionando Ok y luego presione Intro .
Una vez que se completa el proceso de instalación, el archivo de configuración de phpMyAdmin se agrega a /etc/apache2/conf-enabled/phpmyadmin.conf .
Si este archivo no existe después de completar la instalación, puede copiarlo desde /etc/phpmyadmin/apache.conf a /etc/apache2/conf-enabled . Si ese archivo no existe, debe crear un host virtual para phpMyAdmin con la siguiente configuración:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/vhosts/example.com;
..
location /phpMyAdmin {
root /usr/share/;
index index.php;
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/phpMyAdmin/.phpmyadmin-htpasswd; # uncomment if using .htaccess & .htpasswd security
location ~\.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
...
}
Si en algún momento necesita reconfigurar phpMyAdmin, puede usar el siguiente comando:
dpkg-reconfigure phpmyadmin
Configuración de base de datos remota
Si el servidor de base de datos que desea administrar con phpMyAdmin es remoto, debe configurar phpMyAdmin de manera diferente. Los archivos de configuración se encuentran en /etc/phpmyadmin directorio. El archivo de configuración principal es /etc/phpmyadmin/config.inc.php , que contiene las opciones de configuración que se aplican globalmente a phpMyAdmin.
Para usar phpMyAdmin para administrar una base de datos MySQL alojada en otro servidor, abra /etc/phpmyadmin/config.inc.php en un editor de texto y luego edite la siguiente línea:
Línea anterior | Nueva línea |
---|---|
$cfg['Servers'][$i]['host'] = '$dbserver'; | $cfg['Servers'][$i]['host'] = '192.168.71.21'; |
$dbserver
con el nombre real del servidor de la base de datos remota o la dirección IP. Además, asegúrese de que el host phpMyAdmin tenga permisos para acceder a la base de datos remota.
El otro archivo de configuración que debe editar es /etc/phpmyadmin/apache.conf . Este archivo está vinculado simbólicamente a /etc/apache2/conf-disponible/phpmyadmin.conf . Una vez habilitado, se usa para configurar Apache2 para servir al sitio phpMyAdmin. El archivo contiene directivas para cargar PHP, permisos de directorio, etc.
Ejecute el siguiente comando para habilitar el archivo de configuración y luego vuelva a cargar el servicio:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin.conf sudo systemctl reload apache2.service
Ahora que phpMyAdmin está instalado en la computadora cliente, conéctese al servidor remoto donde está instalada la base de datos MySQL o MariaDB. Abra el archivo /etc/mysql/mysql.conf.d/mysql.cnf y edite la siguiente línea:
bind-address = 0.0.0.0
Reemplazar 0.0.0.0
con la dirección IP del servidor remoto y luego guarde y salga del archivo.
Ejecute el siguiente comando para permitir que el usuario raíz acceda al servidor desde la computadora cliente:
sudo mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.71.20' IDENTIFIED BY 'root_password_here' WITH GRANT OPTION;
Reemplace la dirección IP con la dirección del servidor remoto y root_password_here
con la contraseña de usuario root.
Después de editar los ajustes de configuración, abra un navegador y vaya a https://clientPC/phpmyadmin , utilizando la dirección IP o el nombre de host del equipo cliente. Debería poder iniciar sesión de forma remota en el servidor desde el portal web del cliente phpMyAdmin.
Recargar el servidor web
Para realizar los cambios en los archivos de configuración en vivo, primero debe verificar la sintaxis del archivo y luego reiniciar o recargar correctamente el servidor web.
Use el siguiente comando para verificar la sintaxis de los archivos de configuración:
apache2ctl configtest
Luego, vuelva a cargar el servidor web Apache ejecutando el siguiente comando:
systemctl reload apache2
Compruebe el estado del servicio para asegurarse de que funciona como se espera ejecutando el siguiente comando:
system status apache2
Ahora debería poder ver phpMyAdmin a través de un navegador web, como se muestra en la siguiente imagen:
servidor web NGINX
Después de instalar phpMyAdmin, aparece la pantalla de configuración del paquete, como se muestra en la siguiente imagen:
Usa la barra espaciadora para seleccionar apache2 , presiona Tab para seleccionar Aceptar y luego presione Intro .
El proceso de instalación continúa hasta que aparece otra pantalla de configuración que le pide que confirme si desea configurar su base de datos para phpMyAdmin usando dbconfig-common
.
Seleccione Sí y luego presione Intro .
Se le solicitará su contraseña de administrador de la base de datos. Ingrese su contraseña, presione Tab para seleccionar Aceptar y luego presione Intro .
Luego, ingrese una contraseña para la aplicación phpMyAdmin, presione Tab para seleccionar Aceptar y luego presione Intro .
Confirme la contraseña seleccionando Ok y luego presione Intro .
Una vez finalizado el proceso de instalación, debe crear el archivo de configuración de phpMyAdmin aquí:/etc/nginx/sites-enabled/phpmyadmin.conf .
Ingrese la siguiente información en el archivo y luego guárdelo:
server {
listen 80;
server_name 95.138.162.233;
root /var/www;
location /phpmyadmin {
root /usr/share/;
index index.php;
try_files $uri $uri/ =404;
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/nginx/.pma_pass; # uncomment if using .htaccess & .htpasswd security
location ~ ^/phpmyadmin/(doc|sql|setup)/ {
deny all;
}
location ~ /phpmyadmin/(.+\.php)$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; include snippets/fastcgi-php.conf;
}
}
}
Sus archivos de phpMyAdmin se encuentran en /usr/share/phpmyadmin/ directorio. La configuración anterior le dice a NGINX que si los visitantes ingresan https://ip_address/phpmyadmin en la barra de direcciones del navegador, debería encontrar el index.php archivo en el /usr/share/phpmyadmin/ directorio y mostrarlo.
Recargar el servidor web
Para realizar los cambios en los archivos de configuración en vivo, primero debe verificar la sintaxis del archivo y luego reiniciar o recargar correctamente el servidor web.
Use el siguiente comando para verificar la sintaxis de los archivos de configuración:
nginx -t
Luego, vuelva a cargar el servidor web Apache ejecutando el siguiente comando:
RHEL y CentOS 6
service nginx graceful
RHEl y CentOS 7
systemctl reload nginx
Compruebe el estado del servicio para asegurarse de que funciona como se espera ejecutando el siguiente comando:
RHEL y CentOS 6
service nginx status
RHEL y CentOS 7
systemctl status nginx
Ahora debería poder ver phpMyAdmin a través de un navegador web, como se muestra en la siguiente imagen:
Configurar seguridad adicional (opcional)
htpasswd
se utiliza para crear y actualizar archivos planos que almacenan nombres de usuario y contraseñas para la autenticación básica de usuarios HTTP. Si htpasswd
no puede acceder a un archivo (no puede escribir en el archivo de salida ni leer el archivo para actualizarlo), devuelve un estado de error y no realiza cambios.
Utilice los pasos de las siguientes secciones para configurar la autenticación básica en un servidor web que ejecute phpMyAdmin.
Servidor web Apache
Por defecto, Apache no permite el uso de .htaccess
. Debe configurar Apache para permitir .htaccess
-autenticación basada.
Abra el archivo de configuración de Apache en un editor de texto y busque la sección que comienza con <Directory "/var/www/html">
.
Para RHEL y CentOS, el archivo de configuración es /etc/httpd/conf/httpd.conf .
Para el sistema operativo Ubuntu, el archivo de configuración es /etc/apache2/conf/httpd.conf .
Cambie la línea de AllowOverride none
para AllowOverride AuthConfig
.
Nota :Si esta línea dice AllowOverride All
, entonces no se requiere ningún cambio.
Guarde y cierre el archivo.
El htpasswd
El comando se utiliza para crear y actualizar los archivos que almacenan nombres de usuario y contraseñas para la autenticación básica de los usuarios de Apache. Use el siguiente comando para crear un archivo oculto para almacenar el nombre de usuario y la contraseña cifrada para cada usuario:
htpasswd -c /etc/phpMyAdmin/.phpmyadmin-htpasswd username
Después de crear un usuario, ejecute el siguiente comando para ver el nombre de usuario y la contraseña en /etc/phpMyAdmin/.phpmyadmin-htpasswd archivo:
cat /etc/phpMyAdmin/.phpmyadmin-htpasswd
El resultado debe ser similar al siguiente ejemplo:
user1:$apr1$0r/2zNGG$jopiWY3DEJd2FvZxTnugJ/
user2:$apr1$07FYIyjx$7Zy1qcBd.B8cKqu0wN/MH1
Ahora necesitas permitir el apache
usuario para leer el .htpasswd
archivo ejecutando los siguientes comandos:
chown apache:apache /etc/phpMyAdmin/.phpmyadmin-htpasswd
chmod 0660 /etc/phpMyAdmin/.phpmyadmin-htpasswd
Finalmente, debe descomentar las siguientes líneas de los archivos de configuración de phpMyAdmin:
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/phpMyAdmin/.phpmyadmin-htpasswd; # uncomment if using .htaccess & .htpasswd security
servidor web NGINX
El htpasswd
El comando se utiliza para crear y actualizar los archivos que almacenan nombres de usuario y contraseñas para la autenticación básica de los usuarios de Apache. Use el siguiente comando para crear un archivo oculto para almacenar el nombre de usuario y la contraseña cifrada para cada usuario:
htpasswd -c /etc/nginx/.pma_pass username
Después de crear un usuario, ejecute el siguiente comando para ver el nombre de usuario y la contraseña en /etc/nginx/.pma_pass archivo:
cat /etc/nginx/.pma_pass
El resultado debe ser similar al siguiente ejemplo:
user1:$apr1$0r/2zNGG$jopiWY3DEJd2FvZxTnugJ/
user2:$apr1$07FYIyjx$7Zy1qcBd.B8cKqu0wN/MH1
Ahora necesitas permitir el apache
usuario para leer el .htpasswd
archivo ejecutando los siguientes comandos:
chown nginx:nginx /etc/nginx/.pma_pass
chmod 0660 /etc/nginx/.pma_pass
Finalmente, debe descomentar las siguientes líneas de los archivos de configuración de phpMyAdmin:
# auth_basic "phpMyAdmin Login"; # uncomment if using .htaccess & .htpasswd security
# auth_basic_user_file /etc/phpMyAdmin/.phpmyadmin-htpasswd; # uncomment if using .htaccess & .htpasswd security