phpMyAdmin® est un outil d'administration gratuit et open source pour MySQL® et MariaDB®. En tant qu'application Web portable écrite principalement en PHP, phpMyAdmin est devenu l'un des outils d'administration MySQL les plus populaires, en particulier pour les services d'hébergement Web.
Cet article décrit comment installer et configurer phpMyAdmin sur votre serveur Web pour CentOS® 7, Red Hat® Enterprise Linux® (RHEL) 7 et Ubuntu® 16.04 LTS.
Prérequis
Avant de pouvoir installer phpMyAdmin, vous devez avoir les éléments suivants installés sur votre serveur :
- Un serveur Web, tel qu'Apache® ou NGINX®
- PHP
Vérifier si un serveur Web est installé
Utilisez les commandes du tableau suivant pour vérifier si un serveur Web est installé :
Système d'exploitation | Serveur Web | Commande |
---|---|---|
CentOS et RHEL | Apache | rpm -qa | grep httpd |
CentOS et RHEL | NGINX | rpm -qa | grep nginx |
Système d'exploitation Ubuntu | Apache | dpkg -l | grep apache |
Système d'exploitation Ubuntu | NGINX | dpkg -l | grep nginx |
Vérifier si PHP est installé
Utilisez la commande suivante pour vérifier si PHP est installé sur CentOS ou RHEL :
rpm -qa | grep php
Utilisez la commande suivante pour vérifier si PHP est installé sur le système d'exploitation Ubuntu :
dpkg -l | grep php
Installer phpMyAdmin
Suivez les instructions des sections suivantes pour installer phpMyAdmin.
CentOS et RHEL
Installez phpMyAdmin en utilisant la commande suivante :
yum install phpmyadmin
Le résultat doit ressembler à l'exemple suivant :
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
Le système d'exploitation Ubuntu
Installez phpMyAdmin en utilisant la commande suivante :
apt-get install php phpmyadmin
Le résultat doit ressembler à l'exemple suivant :
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]
Appuyez sur Y puis appuyez sur Entrée pour continuer le processus de configuration. Voir Configurer phpMyAdmin sur le système d'exploitation Ubuntu section pour plus d'instructions.
Configurer phpMyAdmin sur CentOS et RHEL
Après avoir installé phpMyAdmin sur votre serveur Web, suivez les instructions des sections suivantes pour configurer phpMyAdmin.
Serveur Web Apache
Vous devez d'abord ajouter l'adresse IP (Internet Protocol) que vous souhaitez utiliser pour accéder à phpMyAdmin dans /etc/phpMyAdmin/config.inc.php fichier de configuration.
-
Ouvrez le /etc/phpMyAdmin/config.inc.php fichier dans un éditeur de texte.
-
Dans la section commençant par la ligne
<IfModule !mod_authz_core.c>
, ajoutez l'adresse IP comme indiqué dans l'exemple suivant :<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>
-
Enregistrez et fermez le fichier.
Définir un alias d'URL (facultatif)
L'URL standard pour une installation de phpMyAdmin est https://ipaddress/phpMyAdmin , où adresse IP est l'adresse IP que vous avez ajoutée au fichier de configuration dans la section précédente. Si vous souhaitez modifier l'URL, vous pouvez définir un alias.
-
Ouvrez le fichier /etc/httpd/conf.d/phpMyAdmin.conf fichier dans un éditeur de texte.
-
Trouvez les lignes commençant par
Alias
et changez/phpMyAdmin
à l'alias de votre choix, comme illustré dans l'exemple suivant :Alias /NewName /usr/share/phpMyAdmin Alias /newname /usr/share/phpMyAdmin
-
Enregistrez et quittez le fichier.
Fichier de configuration de la base de données
Si le serveur de base de données MySQL ou MariaDB que vous souhaitez utiliser avec phpMyAdminis n'est pas situé sur le même serveur que votre serveur Web, vous devez modifier le fichier de configuration de la base de données pour définir l'emplacement du serveur de base de données.
Il existe deux options de configuration :
- Hôte MySQL ou adresse IP
- Port MySQL/MariaDB
Utilisez les étapes suivantes pour définir l'emplacement de votre serveur de base de données :
-
Ouvrez le /etc/phpMyAdmin/config.inc.php fichier dans un éditeur de texte.
-
Modifiez le fichier comme indiqué dans l'exemple suivant :
$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).
-
Enregistrez et quittez le fichier.
Pour appliquer les modifications, vous devez vérifier la syntaxe du démon du moteur Web, puis le redémarrer ou le recharger correctement.
Vérifiez la syntaxe en utilisant la commande suivante :
apachectl configtest
S'il n'y a pas d'erreurs dans le fichier de configuration, vous devriez voir Syntax OK
dans la sortie.
Rechargez le serveur Web Apache à l'aide de la commande suivante :
CentOS et RHEL 6
service httpd graceful
CentOS et RHEL 7
systemctl status httpd
Vérifiez l'état du service httpd pour vous assurer qu'il fonctionne comme prévu à l'aide de la commande suivante :
CentOS et RHEL 6
service httpd status
CentOS et RHEL 7
systemctl status httpd
Vous devriez maintenant pouvoir afficher phpMyAdmin via un navigateur Web, comme illustré dans l'image suivante :
serveur Web NGINX
Sur NGINX, le package phpMyAdmin n'est pas fourni avec un fichier de configuration, vous devez donc créer un bloc serveur pour pointer vers le fichier de configuration phpMyAdmin.
-
Ouvrez un éditeur de texte et créez le fichier /etc/nginx/conf.d/phpMyAdmin.conf .
-
Saisissez les paramètres de configuration suivants :
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; } }
-
Enregistrez et quittez le fichier.
Pour appliquer les modifications, vous devez vérifier la syntaxe du démon du moteur Web, puis le redémarrer ou le recharger correctement.
Utilisez la commande suivante pour vérifier la syntaxe :
nginx -t
S'il n'y a pas d'erreurs dans le fichier de configuration, vous devriez voir Syntax OK
dans la sortie.
Rechargez le serveur Web NGINX à l'aide de la commande suivante :
CentOS et RHEL 6
service nginx graceful
CentOS et RHEL 7
systemctl reload nginx
Vérifiez l'état du service NGINX pour vous assurer qu'il fonctionne comme prévu à l'aide de la commande suivante :
CentOS et RHEL 6
service nginx status
CentOS et RHEL 7
systemctl status nginx
Vous devriez maintenant pouvoir afficher phpMyAdmin via un navigateur Web, comme illustré dans l'image suivante :
Configurer phpMyAdmin sur le système d'exploitation Ubuntu
Suivez les étapes des sections suivantes pour configurer phpMyAdmin sur le système d'exploitation Ubuntu.
Serveur Web Apache
Le processus d'installation ajoute le fichier de configuration Apache phpMyAdmin au dossier /etc/apache2/conf-enabled/ répertoire, où il est lu automatiquement. La seule chose que vous devez faire est d'activer le mbstring
PHP, que vous pouvez faire en exécutant la commande suivante :
sudo phpenmod mbstring
Après avoir installé phpMyAdmin, l'écran de configuration du package s'affiche, comme illustré dans l'image suivante.
Utilisez la barre d'espace pour sélectionner apache2 , appuyez sur Tab pour sélectionner Ok , puis appuyez sur Entrée .
Le processus d'installation se poursuit jusqu'à ce qu'un autre écran de configuration s'affiche, vous invitant à confirmer si vous souhaitez configurer votre base de données pour phpMyAdmin en utilisant dbconfig-common
.
Sélectionnez Oui , puis appuyez sur Entrée .
Vous êtes invité à entrer votre mot de passe d'administrateur de base de données. Entrez votre mot de passe, appuyez sur Tab pour sélectionner Ok , puis appuyez sur Entrée .
Ensuite, entrez un mot de passe pour l'application phpMyAdmin elle-même, appuyez sur Tab pour sélectionner Ok , puis appuyez sur Entrée .
Confirmez le mot de passe en sélectionnant Ok , puis appuyez sur Entrée .
Une fois le processus d'installation terminé, le fichier de configuration de phpMyAdmin est ajouté à /etc/apache2/conf-enabled/phpmyadmin.conf .
Si ce fichier n'existe pas une fois l'installation terminée, vous pouvez le copier depuis /etc/phpmyadmin/apache.conf vers /etc/apache2/conf-enabled . Si ce fichier n'existe pas, vous devez créer un hôte virtuel pour phpMyAdmin avec les paramètres suivants :
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 à tout moment vous avez besoin de reconfigurer phpMyAdmin, vous pouvez utiliser la commande suivante :
dpkg-reconfigure phpmyadmin
Configuration de la base de données distante
Si le serveur de base de données que vous souhaitez gérer avec phpMyAdmin est distant, vous devez configurer phpMyAdmin différemment. Les fichiers de configuration se trouvent dans /etc/phpmyadmin annuaire. Le fichier de configuration principal est /etc/phpmyadmin/config.inc.php , qui contient les options de configuration qui s'appliquent globalement à phpMyAdmin.
Pour utiliser phpMyAdmin pour administrer une base de données MySQL hébergée sur un autre serveur, ouvrez /etc/phpmyadmin/config.inc.php dans un éditeur de texte puis modifiez la ligne suivante :
Ancienne ligne | Nouvelle ligne |
---|---|
$cfg['Servers'][$i]['host'] = '$dbserver'; | $cfg['Servers'][$i]['host'] = '192.168.71.21'; |
Remarque : Remplacez $dbserver
avec le nom réel du serveur de base de données distant ou l'adresse IP. Assurez-vous également que l'hôte phpMyAdmin dispose des autorisations nécessaires pour accéder à la base de données distante.
L'autre fichier de configuration que vous devez modifier est /etc/phpmyadmin/apache.conf . Ce fichier est lié symboliquement à /etc/apache2/conf-available/phpmyadmin.conf . Une fois activé, il est utilisé pour configurer Apache2 pour servir le site phpMyAdmin. Le fichier contient des directives pour le chargement de PHP, les autorisations de répertoire, etc.
Exécutez la commande suivante pour activer le fichier de configuration, puis rechargez le service :
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin.conf sudo systemctl reload apache2.service
Maintenant que phpMyAdmin est installé sur l'ordinateur client, connectez-vous au serveur distant sur lequel la base de données MySQL ou MariaDB est installée. Ouvrez le fichier /etc/mysql/mysql.conf.d/mysql.cnf et modifiez la ligne suivante :
bind-address = 0.0.0.0
Remplacer 0.0.0.0
avec l'adresse IP du serveur distant, puis enregistrez et quittez le fichier.
Exécutez la commande suivante pour permettre à l'utilisateur root d'accéder au serveur à partir de l'ordinateur client :
sudo mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.71.20' IDENTIFIED BY 'root_password_here' WITH GRANT OPTION;
Remplacez l'adresse IP par l'adresse du serveur distant, et root_password_here
avec le mot de passe de l'utilisateur root.
Après avoir modifié les paramètres de configuration, ouvrez un navigateur et accédez à https://clientPC/phpmyadmin , en utilisant l'adresse IP de l'ordinateur client ou le nom d'hôte. Vous devriez pouvoir vous connecter à distance au serveur depuis le portail web client phpMyAdmin.
Recharger le serveur Web
Pour apporter les modifications aux fichiers de configuration en direct, vous devez d'abord vérifier la syntaxe du fichier, puis redémarrer ou recharger correctement le serveur Web.
Utilisez la commande suivante pour vérifier la syntaxe des fichiers de configuration :
apache2ctl configtest
Rechargez ensuite le serveur Web Apache en exécutant la commande suivante :
systemctl reload apache2
Vérifiez l'état du service pour vous assurer qu'il fonctionne comme prévu en exécutant la commande suivante :
system status apache2
Vous devriez maintenant pouvoir afficher phpMyAdmin via un navigateur Web, comme illustré dans l'image suivante :
serveur Web NGINX
Après avoir installé phpMyAdmin, l'écran de configuration du package s'affiche, comme illustré dans l'image suivante :
Utilisez la barre d'espace pour sélectionner apache2 , appuyez sur Tab pour sélectionner Ok , puis appuyez sur Entrée .
Le processus d'installation se poursuit jusqu'à ce qu'un autre écran de configuration s'affiche, vous invitant à confirmer si vous souhaitez configurer votre base de données pour phpMyAdmin en utilisant dbconfig-common
.
Sélectionnez Oui , puis appuyez sur Entrée .
Vous êtes invité à entrer votre mot de passe d'administrateur de base de données. Entrez votre mot de passe, appuyez sur Tab pour sélectionner Ok , puis appuyez sur Entrée .
Ensuite, entrez un mot de passe pour l'application phpMyAdmin elle-même, appuyez sur Tab pour sélectionner Ok , puis appuyez sur Entrée .
Confirmez le mot de passe en sélectionnant Ok , puis appuyez sur Entrée .
Une fois le processus d'installation terminé, vous devez créer le fichier de configuration phpMyAdmin ici :/etc/nginx/sites-enabled/phpmyadmin.conf .
Saisissez les informations suivantes dans le fichier puis enregistrez-le :
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;
}
}
}
Vos fichiers phpMyAdmin se trouvent dans le répertoire /usr/share/phpmyadmin/ répertoire. La configuration ci-dessus indique à NGINX que si les visiteurs saisissent https://ip_address/phpmyadmin dans la barre d'adresse du navigateur, il doit trouver le index.php fichier dans /usr/share/phpmyadmin/ répertoire et l'afficher.
Recharger le serveur Web
Pour apporter les modifications aux fichiers de configuration en direct, vous devez d'abord vérifier la syntaxe du fichier, puis redémarrer ou recharger correctement le serveur Web.
Utilisez la commande suivante pour vérifier la syntaxe des fichiers de configuration :
nginx -t
Rechargez ensuite le serveur Web Apache en exécutant la commande suivante :
RHEL et CentOS 6
service nginx graceful
RHEl et CentOS 7
systemctl reload nginx
Vérifiez l'état du service pour vous assurer qu'il fonctionne comme prévu en exécutant la commande suivante :
RHEL et CentOS 6
service nginx status
RHEL et CentOS 7
systemctl status nginx
Vous devriez maintenant pouvoir afficher phpMyAdmin via un navigateur Web, comme illustré dans l'image suivante :
Configurer une sécurité supplémentaire (facultatif)
htpasswd
est utilisé pour créer et mettre à jour les fichiers plats qui stockent les noms d'utilisateur et les mots de passe pour l'authentification de base des utilisateurs HTTP. Sihtpasswd
ne peut pas accéder à un fichier (ne peut pas écrire dans le fichier de sortie ou lire le fichier afin de le mettre à jour), il renvoie un statut d'erreur et n'apporte aucune modification.
Suivez les étapes des sections suivantes pour configurer l'authentification de base sur un serveur Web exécutant phpMyAdmin.
Serveur Web Apache
Par défaut, Apache n'autorise pas l'utilisation de .htaccess
. Vous devez configurer Apache pour autoriser .htaccess
- authentification basée sur.
Ouvrez le fichier de configuration Apache dans un éditeur de texte et recherchez la section qui commence par <Directory "/var/www/html">
.
Pour RHEL et CentOS, le fichier de configuration est /etc/httpd/conf/httpd.conf .
Pour le système d'exploitation Ubuntu, le fichier de configuration est /etc/apache2/conf/httpd.conf .
Changez la ligne de AllowOverride none
à AllowOverride AuthConfig
.
Remarque :Si cette ligne lit AllowOverride All
, aucune modification n'est requise.
Enregistrez et fermez le fichier.
Le htpasswd
La commande est utilisée pour créer et mettre à jour les fichiers qui stockent les noms d'utilisateur et les mots de passe pour l'authentification de base des utilisateurs Apache. Utilisez la commande suivante pour créer un fichier caché pour stocker le nom d'utilisateur et le mot de passe crypté pour chaque utilisateur :
htpasswd -c /etc/phpMyAdmin/.phpmyadmin-htpasswd username
Après avoir créé un utilisateur, exécutez la commande suivante pour voir le nom d'utilisateur et le mot de passe dans /etc/phpMyAdmin/.phpmyadmin-htpasswd fichier :
cat /etc/phpMyAdmin/.phpmyadmin-htpasswd
Le résultat doit ressembler à l'exemple suivant :
user1:$apr1$0r/2zNGG$jopiWY3DEJd2FvZxTnugJ/
user2:$apr1$07FYIyjx$7Zy1qcBd.B8cKqu0wN/MH1
Vous devez maintenant autoriser apache
utilisateur de lire le .htpasswd
fichier en exécutant les commandes suivantes :
chown apache:apache /etc/phpMyAdmin/.phpmyadmin-htpasswd
chmod 0660 /etc/phpMyAdmin/.phpmyadmin-htpasswd
Enfin, vous devez décommenter les lignes suivantes des fichiers de configuration 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
serveur Web NGINX
Le htpasswd
La commande est utilisée pour créer et mettre à jour les fichiers qui stockent les noms d'utilisateur et les mots de passe pour l'authentification de base des utilisateurs Apache. Utilisez la commande suivante pour créer un fichier caché pour stocker le nom d'utilisateur et le mot de passe crypté pour chaque utilisateur :
htpasswd -c /etc/nginx/.pma_pass username
Après avoir créé un utilisateur, exécutez la commande suivante pour voir le nom d'utilisateur et le mot de passe dans /etc/nginx/.pma_pass fichier :
cat /etc/nginx/.pma_pass
Le résultat doit ressembler à l'exemple suivant :
user1:$apr1$0r/2zNGG$jopiWY3DEJd2FvZxTnugJ/
user2:$apr1$07FYIyjx$7Zy1qcBd.B8cKqu0wN/MH1
Vous devez maintenant autoriser apache
utilisateur de lire le .htpasswd
fichier en exécutant les commandes suivantes :
chown nginx:nginx /etc/nginx/.pma_pass
chmod 0660 /etc/nginx/.pma_pass
Enfin, vous devez décommenter les lignes suivantes des fichiers de configuration 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