Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
phpmyadmin [Le 09/08/2018, 19:52] krodelabestiole + Incompatibilité avec PHP 7.2 |
phpmyadmin [Le 25/07/2024, 17:17] (Version actuelle) 78.114.49.174 erreur apache2 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Bionic Xenial sgbd mysql serveur réseau}} | + | {{tag>Jammy sgbd mysql serveur réseau}} |
---- | ---- | ||
Ligne 5: | Ligne 5: | ||
====== phpMyAdmin ====== | ====== phpMyAdmin ====== | ||
- | **[[http://www.phpmyadmin.net/|phpMyAdmin]]** est une interface web en PHP pour administrer à distance les [[:SGBD]] [[:MySQL]] et [[:MariaDB]]. | + | **[[https://www.phpmyadmin.net/|phpMyAdmin]]** est une interface web en PHP pour administrer à distance les [[:SGBD]] [[:MySQL]] et [[:MariaDB]]. |
Il permet d'administrer les éléments suivants : | Il permet d'administrer les éléments suivants : | ||
Ligne 28: | Ligne 28: | ||
Il est recommandé d'installer phpMyAdmin depuis les dépôts officiels afin d'avoir une installation immédiatement fonctionnelle et de bénéficier des mises à jour de sécurité. | Il est recommandé d'installer phpMyAdmin depuis les dépôts officiels afin d'avoir une installation immédiatement fonctionnelle et de bénéficier des mises à jour de sécurité. | ||
- | [[:tutoriel:comment_installer_un_paquet#paquet_present_dans_les_depots|Installer le paquet]] **[[apt>phpmyadmin]]**. | + | [[:tutoriel:comment_installer_un_paquet#paquet_present_dans_les_depots|Installer le paquet]] **[[apt>phpmyadmin]]**.\\ |
+ | Soit en ligne de commande : | ||
+ | <code>sudo apt install phpmyadmin</code> | ||
Lors de l'installation, il vous sera posé quelques questions auxquelles il faut répondre avec soin : | Lors de l'installation, il vous sera posé quelques questions auxquelles il faut répondre avec soin : | ||
- | + | * Choisir le serveur web à configurer automatiquement (utiliser les flèches du clavier ou la touche //tab// pour se déplacer et la barre d'espace pour sélectionner/désélectionner) : | |
- | * Créer la base de données phpmyadmin : **oui** | + | <note important>Le surlignage rouge n'est pas une sélection, il faut que ça affiche une étoile * entre les crochets, en utilisant la barre d'espace</note> |
+ | {{:screenshot_20171028_125829.png|}} | ||
+ | * Créer la base de données phpmyadmin : **oui** | ||
{{::screenshot_20171028_112911.png|}} | {{::screenshot_20171028_112911.png|}} | ||
* Définir un mot de passe pour l'utilisateur MySQL phpmyadmin : | * Définir un mot de passe pour l'utilisateur MySQL phpmyadmin : | ||
{{:screenshot_20171028_112939.png|}} | {{:screenshot_20171028_112939.png|}} | ||
- | * L'écran suivant demandera la confirmation de ce mot de passe. | ||
* Indiquer le mot de passe de l'utilisateur MySQL « root » tel que défini à l'installation de mysql-server : | * Indiquer le mot de passe de l'utilisateur MySQL « root » tel que défini à l'installation de mysql-server : | ||
{{:screenshot_20171028_113015.png|}} | {{:screenshot_20171028_113015.png|}} | ||
- | * Choisir le serveur web à configurer automatiquement (utiliser les flèches du clavier ou la touche //tab// pour se déplacer et la barre d'espace pour sélectionner/désélectionner) : | + | |
- | <note important>Le surlignage rouge n'est pas une sélection, il faut que ça affiche une étoile * entre les crochets</note> | + | |
- | {{:screenshot_20171028_125829.png|}} | + | |
phpMyAdmin devrait être accessible à l'adresse http://localhost/phpmyadmin | phpMyAdmin devrait être accessible à l'adresse http://localhost/phpmyadmin | ||
- | ===== Utilisation ===== | + | root |
- | phpMyAdmin est accessible à l'adresse [[http://localhost/phpmyadmin]] (il est nécessaire d'activer le javascript de votre navigateur internet). | + | ==== Sécurisation === |
+ | La configuration par défaut (faite ci-dessus) lors de l'installation crée un alias qui donne accès à phpMyAdmin par un url du type : **mon-site.fr/phpmyadmin** et les robots des hackers le savent !\\ | ||
+ | Si votre phpMyAdmin est en ligne, il peut être judicieux de renommer cet alias.\\ | ||
+ | Pour le faire, il suffit : | ||
+ | d'éditer avec les [[:sudo|droits d'administration]] le fichier /etc/phpmyadmin/apache.conf\\ | ||
+ | et de remplacer | ||
+ | <code> | ||
+ | Alias /phpmyadmin /usr/share/phpmyadmin | ||
+ | # par quelque chose comme ci-dessous (avec accents ou pas? !) | ||
+ | Alias /nom-accès-personnalisé /usr/share/phpmyadmin | ||
+ | </code> | ||
- | Pour vous connecter, utilisez votre login / mot de passe utilisé avec [[mysql|MySQL]]. Si aucun nouvel utilisateur n'est créé, vous pouvez utiliser le compte ''root'' pour les créer : | + | [[:apache2#autres_commandes_utiles|Recharger la conf d'apache (reload)]] |
- | * Utilisateur : root | + | |
- | * Mot de passe : celui que vous avez défini à l'installation de MySQL | + | |
+ | ==== Ajouter des thèmes graphiques ==== | ||
+ | Il est possible de changer de thème graphique, notamment avec les versions récentes, pour cela, rendez-vous sur | ||
+ | [[https://www.phpmyadmin.net/themes|thèmes]] | ||
===== Problèmes courants ===== | ===== Problèmes courants ===== | ||
- | |||
- | ==== Incompatibilité avec PHP 7.2 ==== | ||
- | |||
- | Sur [[:bionic|Bionic 18.04]], si vous rencontrez une erreur du type : | ||
- | <code>Warning in ./libraries/sql.lib.php#613 | ||
- | count(): Parameter must be an array or an object that implements Countable</code> | ||
- | ceci est dû au fait que la version de phpMyAdmin fournie dans les dépôts officiels n'est pas pleinement compatible avec PHP 7.2. | ||
- | |||
- | Il s'agit donc d'un bug d'Ubuntu. | ||
- | |||
- | La [[https://stackoverflow.com/a/49483740/3175946|solution]] est de remplacer la ligne 613 du fichier ''/usr/share/phpmyadmin/libraries/sql.lib.php'' : | ||
- | <file>(count($analyzed_sql_results['select_expr'] == 1)</file> | ||
- | par | ||
- | <file>(count($analyzed_sql_results['select_expr']) == 1</file> | ||
- | |||
==== Erreur 404 avec Apache ==== | ==== Erreur 404 avec Apache ==== | ||
Ligne 76: | Ligne 73: | ||
l'interface n'est pas très claire à ce niveau et l'option //Apache// peut sembler sélectionnée alors qu'elle ne l'est pas. Il faut appuyer sur la barre d'espace et s'assurer d'avoir une astérisque ** * ** au niveau d'//Apache//. | l'interface n'est pas très claire à ce niveau et l'option //Apache// peut sembler sélectionnée alors qu'elle ne l'est pas. Il faut appuyer sur la barre d'espace et s'assurer d'avoir une astérisque ** * ** au niveau d'//Apache//. | ||
- | Utilisez la commande suivante pour pouvoir répondre à nouveau aux questions : | + | Utilisez la commande suivante pour pouvoir répondre à nouveau aux questions : |
<code>sudo dpkg-reconfigure phpmyadmin</code> | <code>sudo dpkg-reconfigure phpmyadmin</code> | ||
Ligne 85: | Ligne 82: | ||
==== Accès root ==== | ==== Accès root ==== | ||
- | Avec [[:MySQL]] depuis [[:bionic|Bionic 18.04]], et [[:MariaDB]] depuis [[:xenial|Xenial 16.04]], l'authentification de l'utilisateur //root// de MySQL se fait au moyen du //[[:mysql#authentification|plugin auth_socket]]//, donc avec [[:sudo]].\\ | + | Avec [[:MySQL]] et [[:MariaDB]], l'authentification de l'utilisateur //root// de MySQL se fait au moyen du //[[:mysql#authentification|plugin auth_socket]]//, donc avec [[:sudo]].\\ |
Cette méthode ne permet pas de se connecter avec phpMyAdmin, mais il est [[:mysql#ajouter_ou_changer_le_mot_de_passe_de_root|vivement déconseillé]] de modifier ce comportement. | Cette méthode ne permet pas de se connecter avec phpMyAdmin, mais il est [[:mysql#ajouter_ou_changer_le_mot_de_passe_de_root|vivement déconseillé]] de modifier ce comportement. | ||
- | Si vous avez besoin d'un accès global à vos bases de données depuis un même compte, la solution conseillée est donc de créer un nouvel utilisateur et de lui attribuer tous les privilèges : | + | Si vous avez besoin d'un accès total à vos bases de données depuis un même compte, la solution conseillée est donc de créer un nouvel utilisateur et de lui attribuer tous les privilèges : |
<code> | <code> | ||
sudo mysql | sudo mysql | ||
Ligne 94: | Ligne 91: | ||
Puis dans la console MySQL : | Puis dans la console MySQL : | ||
<code mysql> | <code mysql> | ||
- | GRANT ALL ON *.* TO 'nom_utilisateur_choisi'@'localhost' IDENTIFIED BY 'mot_de_passe_solide' WITH GRANT OPTION; | + | CREATE USER 'nom_utilisateur_choisi'@'localhost' IDENTIFIED BY 'mot_de_passe_solide'; |
+ | GRANT ALL ON *.* TO 'nom_utilisateur_choisi'@'localhost' WITH GRANT OPTION; | ||
FLUSH PRIVILEGES; | FLUSH PRIVILEGES; | ||
QUIT; | QUIT; | ||
Ligne 101: | Ligne 99: | ||
En remplaçant évidemment //nom_utilisateur_choisi// et //mot_de_passe_solide// dans cette requête. | En remplaçant évidemment //nom_utilisateur_choisi// et //mot_de_passe_solide// dans cette requête. | ||
- | <note warning>Cette solution peut être utile sur un serveur de développement mais elle rend plus dangereuse une [[wpfr>attaque par force brute]] sur la page de connexion de phpMyAdmin. En production il est indispensable de protéger l'accès à phpMyAdmin grâce à l'outil [[:fail2ban]], ou/et à des mesures de restriction d'accès par IP, par ex.</note> | + | <note warning>Cette solution peut être utile sur un serveur de développement mais elle rend plus dangereuse une [[wpfr>attaque par force brute]] sur la page de connexion de phpMyAdmin. En production il est indispensable de protéger l'accès avec HTTPS et un mot de passe extrêmement solide et/ou une authentification à deux facteurs, et/ou des mesures de restriction d'accès par IP. |
+ | Et veillez à utiliser un couple identifiant / mot de passe différent pour chacun de vos sites ou applications web.</note> | ||
+ | ==== accès impossible à localhost ==== | ||
+ | juillet 2024 : une erreur de configuration du fichier etc/apache2/mods-enabled/php8.2.load empêche le démarrage d'apache2 et donc l'accès à localhost et à phpmyadmin. Ouvrez ce fichier et lisez la 3e ligne qui renvoie sur le fichier /usr/lib/apache2/modules/libphp8.2.so En fait (chez moi), ce fichier s'appelle désormais libphp8.3.so. Il faut donc corriger la ligne de ce premier fichier avec [[sudo|Droits de super utilisateur]] avec le nom correct. L'accès est rétabli. | ||
==== autres ==== | ==== autres ==== | ||
Si des erreurs apparaissent en fin de configuration, le plus simple est de [[:tutoriel:comment_supprimer_un_paquet| supprimer complètement (purger)]] phpMyAdmin et de le réinstaller. | Si des erreurs apparaissent en fin de configuration, le plus simple est de [[:tutoriel:comment_supprimer_un_paquet| supprimer complètement (purger)]] phpMyAdmin et de le réinstaller. | ||
- | Si le problème persiste, [[http://forum.ubuntu-fr.org/|le forum]] est à votre disposition. | + | Si le problème persiste, [[https://forum.ubuntu-fr.org/|le forum]] est à votre disposition. |
+ | |||
+ | Vous pouvez essayer de mettre phpmyadmin en login ( sans majuscule ) , ça a marché pour moi même avec php 7.2 ! | ||
===== Désinstallation ===== | ===== Désinstallation ===== | ||
Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez. | Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez. | ||
+ | |||
+ | ===== Alternative ===== | ||
+ | [[https://www.adminer.org/|Adminer]] | ||
===== Voir aussi ===== | ===== Voir aussi ===== | ||
Ligne 116: | Ligne 122: | ||
Vous pouvez consulter les sites suivants pour obtenir un complément d'information... | Vous pouvez consulter les sites suivants pour obtenir un complément d'information... | ||
- | * [[https://docs.phpmyadmin.net/fr/latest/|Documentation complète en français]] **(fr)** ; | + | * [[https://docs.phpmyadmin.net/fr/latest/|Documentation complète en français]] **(fr)** |
- | * [[https://www.phpmyadmin.net|Site officiel du projet]] **(en)** ; | + | * [[https://www.phpmyadmin.net|Site officiel du projet]] **(en)** |
+ | * [[https://help.ubuntu.com/community/phpMyAdmin|page phpMyAdmin sur help.ubuntu.com]] **(en)** | ||
---- | ---- | ||
//Contributeurs : [[utilisateurs:guigouz|Guigouz]], [[utilisateurs:mcpeter|McPeter]], [[utilisateurs:krodelabestiole]]// | //Contributeurs : [[utilisateurs:guigouz|Guigouz]], [[utilisateurs:mcpeter|McPeter]], [[utilisateurs:krodelabestiole]]// |