PhpMyAdmin est une application web php qui permet de gérer une base de données MariaDB/MySQL à partir d'une interface graphique intuitive. L'application n'est pas fournie dans les référentiels officiels RHEL 8 / CentOS 8 et est généralement installée à partir de sources tierces comme EPEL. Epel-8 n'est cependant pas encore disponible, donc dans ce tutoriel nous verrons comment récupérer le code phpMyAdmin en amont et l'installer sur notre système "manuellement".
Dans ce didacticiel, vous apprendrez :
- Comment télécharger et installer phpMyAdmin depuis la source
- Comment vérifier l'archive téléchargée
- Comment accéder à l'assistant de configuration de phpMyAdmin
La page de connexion de phpMyAdmin
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Une pile de lampes fonctionnelle. |
Autre | Autorisation d'exécuter la commande avec les privilèges root. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Présentation de phpmyadmin
PhpMyAdmin est un logiciel libre et open source développé en PHP sous la GPL2
Licence. Son but est de permettre de gérer un ou plusieurs serveurs MariaDB/MySQL depuis une interface web agréable et intuitive. Le logiciel nous permet d'effectuer les opérations de base de données les plus courantes et nous permet également d'exécuter directement des instructions SQL. Dans ce tutoriel, je supposerai l'existence d'un LAMP
déjà configuré et fonctionnel . Si vous souhaitez en savoir plus sur la configuration d'un tel environnement, vous pouvez consulter cet article sur la configuration de la pile LAMP sur le système Linux RHEL 8 / CentOS 8.
Installation
De nombreuses distributions Linux ont phpMyAdmin empaqueté dans leurs référentiels; Red Hat Enterprise Linux, cependant, ne le fait pas. L'application est généralement installée à partir de sources tierces, comme epel
. Depuis au moment d'écrire le epel-8
référentiel n'est pas encore disponible, nous allons voir comment installer manuellement phpMyadmin.
Télécharger l'archive
La première étape consiste à télécharger l'archive contenant les fichiers phpMyAdmin depuis la page de téléchargement de phpMyAdmin. Ici, nous pouvons choisir entre la version de phpmyadmin packagée avec toutes les langues disponibles et celle qui ne comprend que l'anglais. Nous avons également la possibilité de sélectionner notre format d'archive préféré. Nous voulons également télécharger le .asc
fichier et le fichier contenant la somme de hachage de l'archive, pour vérifier l'authenticité et l'intégrité du paquet. Dans ce didacticiel, nous utiliserons la version uniquement en anglais, fournie dans le fichier tar.xz
formater.
La page de téléchargement officielle de phpMyAdmin
Lorsque vous travaillez à partir de l'interface de ligne de commande, nous pouvons télécharger les fichiers en utilisant curl
:
$ curl --remote-name-all \ https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-english.tar.xz \ https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-english.tar.xz.asc \ https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-english.tar.xz.sha256
Vérification des archives
Nous avons maintenant tout ce dont nous avons besoin pour vérifier nos archives. La première chose que nous voulons faire est de vérifier sa signature. Il doit correspondre à 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
, qui est le PGP
empreinte digitale d'Isaac Bennetch, le responsable de la publication de phpMyAdmin à l'époque. Pour vérifier la signature, nous devons d'abord importer sa clé publique. Nous pouvons télécharger la clé, ainsi que celles des autres développeurs phpMyAdmin, depuis le serveur phpMyAdmin :
curl -O https://files.phpmyadmin.net/phpmyadmin.keyring
Pour importer la clé que nous exécutons :
$ gpg --import phpmyadmin.keyring gpg: key 9C27B31342B7511D: public key "Michal Čihař <[email protected]>" imported gpg: key FEFC65D181AF644A: public key "Marc Delisle <[email protected]>" imported gpg: key CE752F178259BD92: public key "Isaac Bennetch <[email protected]>" imported gpg: key DA68AB39218AB947: public key "phpMyAdmin Security Team <[email protected]>" imported gpg: Total number processed: 4 gpg: imported: 4 </[email protected]></[email protected]></[email protected]></[email protected]>
Enfin, pour vérifier la signature du package, nous exécutons :
$ gpg --verify phpMyAdmin-4.8.5-english.tar.xz.asc gpg: assuming signed data in 'phpMyAdmin-4.8.5-english.tar.xz' gpg: Signature made Fri 25 Jan 2019 10:07:15 PM EST gpg: using RSA key 3D06A59ECE730EB71B511C17CE752F178259BD92 gpg: Good signature from "Isaac Bennetch <[email protected]>" [unknown] gpg: aka "Isaac Bennetch <[email protected]>" [unknown] gpg: gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92 </[email protected]></[email protected]>
Comme vous pouvez le voir, la signature est signalée comme bonne, mais gpg se plaint toujours car il n'y a aucun moyen de vérifier que la signature appartient au propriétaire. Dans des cas comme celui-ci, nous pouvons compter sur le réseau de confiance, dit en bref, sur le fait que la clé a été signée par d'autres utilisateurs de gpg en qui nous avons confiance. Comme indiqué dans la documentation de phpMyAdmin, par exemple, nous pouvons voir le chemin de la clé de Linus Torvalds à la clé d'Isaac Bennetch sur cette page. Une fois que nous avons vérifié que la signature est bonne, nous pouvons également vérifier que la somme de hachage de l'archive est la même que celle rapportée dans le fichier que nous avons téléchargé :
$ sha256sum -c phpMyAdmin-4.8.5-english.tar.xz.sha256 phpMyAdmin-4.8.5-english.tar.xz: OK
Extraction d'archives
L'étape suivante consiste à extraire le contenu de l'archive. Où l'extraire est notre choix :le moyen le plus rapide d'avoir phpMyAdmin opérationnel est d'extraire le contenu de l'archive dans la racine du document de notre serveur Web, qui dans ce cas, est /var/www/html
.
Alternativement, nous pouvons vouloir placer les fichiers dans un autre répertoire sur notre système de fichiers local, comme, par exemple, /usr/share
, qui est celui utilisé lorsque phpMyAdmin est installé via un package (pour cette raison, soyez prudent si vous utilisez ce répertoire, car si vous décidez d'installer le rpm phpMyAdmin lorsqu'il est disponible, cela pourrait tout gâcher). Dans ce cas, nous devons également ajouter un nouveau fichier de configuration de virtualhost dans /etc/httpd/conf.d. Voici le contenu de celui fourni habituellement :
Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> # These directories do not require access over HTTP - taken from the original # phpMyAdmin upstream tarball # <Directory /usr/share/phpMyAdmin/libraries/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/lib/> Order Deny,Allow Deny from All Allow from None </Directory> <Directory /usr/share/phpMyAdmin/setup/frames/> Order Deny,Allow Deny from All Allow from None </Directory>
Nous pouvons adapter la configuration ci-dessus à nos besoins, et nous devons changer les chemins pour ceux que nous prévoyons d'utiliser sur notre système. Une chose très importante à noter est le Alias
directive :c'est ce qui permet de stocker des documents dans le système de fichiers local autrement que sous le DocumentRoot. Dans ce cas, par exemple, en accédant à http://<ServerName-or-ip>/phpMyAdmin
, accédera en fait aux fichiers placés dans /usr/share/phpMyAdmin
. Les autres directives appliquent uniquement des mesures de sécurité. Par exemple le Require ip 127.0.0.1
ou Require ip ::1
ceux sont utilisés pour autoriser l'accès uniquement à partir de localhost.
Dans ce tutoriel, par souci de simplicité, nous allons installer phpMyAdmin à la racine du document du serveur Web. Nous décompressons d'abord le contenu de l'archive :
$ sudo tar -C /var/www/html -xvpJf phpMyAdmin-4.8.5-english.tar.xz
Ensuite, nous renommons le répertoire de destination de phpMyAdmin-4.8.5-english en simplement "phpmyadmin":
$ sudo mv /var/www/html/phpMyAdmin-4.8.5-english /var/www/html/phpmyadmin
À ce stade, il devrait déjà être possible d'atteindre phpMyAdmin en naviguant vers "http://localhost/phpmyadmin" à partir de la même machine sur laquelle nous avons installé phpMyAdmin, ou en utilisant son identifiant complet ou un nom de serveur hôte virtuel (par exemple :http:/ /192.168.122.50/phpmyadmin), si vous accédez depuis une autre machine et que la configuration le permet :
La page de connexion de phpMyAdmin
Configuration de PhpMyAdmin
Avant de commencer à utiliser phpMyAdmin, nous devons le configurer. Dans les versions récentes du logiciel, il est possible d'exécuter un assistant qui nous guidera dans la procédure et générera un fichier de configuration. Dans le cas où nous avons une configuration déjà existante, nous pouvons simplement copier notre config.inc.php
fichier à la racine de phpmyadmin. PhpMyAdmin fournit également un exemple de configuration que nous pouvons lire pour avoir une idée des options disponibles dans le config.sample.inc.php
dossier. Si vous configurez le fichier manuellement, n'oubliez pas de définir le cfg['blowfish_secret']
. Vous devez fournir une phrase de passe générée aléatoirement qui doit comporter au moins 32 caractères :elle sera utilisée en interne par l'algorithme AES pour chiffrer le mot de passe de connexion enregistré dans les cookies lors de l'utilisation du type d'authentification "cookie".
Pour une connaissance plus approfondie des options disponibles et de leur signification, on peut aussi lire la documentation de phpMyAdmin (commodément, dans l'interface de l'assistant d'installation, chaque option a un lien vers sa section dédiée dans la doc, accessible en cliquant sur le bouton bleu "info" correspondant.
Pour lancer l'assistant de configuration, nous naviguons vers http://localhost/phpmyadmin/setup
:
L'assistant d'installation de phpMyAdmin
Pour configurer le serveur principal, cliquez simplement sur le bouton "nouveau serveur" ; pour ajouter d'autres serveurs, répétez simplement la procédure (vous aurez la possibilité de sélectionner le serveur lors de la connexion). Pour modifier d'autres paramètres globaux, utilisez simplement les options de la barre de gauche. Allez-y et configurez phpMyAdmin comme vous le souhaitez. Une fois que vous avez terminé, cliquez sur le bouton "télécharger" de la page principale, et téléchargez le fichier généré :il doit être copié manuellement à la racine du répertoire phpMyAdmin.
Maintenant que phpMyAdmin est installé et configuré, tout ce que nous avons à faire pour l'utiliser, c'est d'aller sur la page principale et de nous connecter avec les bons identifiants !
Conclusion
PhpMyAdmin n'est pas fourni dans les référentiels par défaut de Red Hat Enterprise Linux 8, et comme epel n'est pas encore prêt au moment de la rédaction, nous avons vu comment installer l'application Web "depuis la source", en quelques étapes simples. Veuillez noter que s'il n'est pas configuré correctement, phpMyAdmin représente une faille de sécurité. Utilisez toujours SSL et assurez-vous de savoir ce que vous faites si vous l'installez sur une machine de production.