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 04/03/2021, 18:37] krodelabestiole [Incompatibilité avec PHP 7.2] lien mort |
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 33: | Ligne 33: | ||
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 (a priori cette étape n'existe plus depuis [[bionic|Bionic 18.04]], voir paragraphe 3.3 plus bas). | ||
* 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, en utilisant la barre d'espace</note> | + | |
- | {{:screenshot_20171028_125829.png|}} | + | |
Ligne 49: | Ligne 48: | ||
root | root | ||
+ | |||
+ | ==== 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> | ||
+ | |||
+ | [[:apache2#autres_commandes_utiles|Recharger la conf d'apache (reload)]] | ||
==== Ajouter des thèmes graphiques ==== | ==== Ajouter des thèmes graphiques ==== | ||
Ligne 54: | Ligne 67: | ||
[[https://www.phpmyadmin.net/themes|thèmes]] | [[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>\\ | ||
- | |||
- | Néanmoins, une erreur du même type peut persister lorsque l'on veut utiliser les fonction Import / Export. Il faut alors remplacer la ligne 551 du fichier ''/usr/share/phpmyadmin/libraries/plugin_interface.lib.php'' | ||
- | <file> if ($options != null && count($options) > 0) {</file> | ||
- | par | ||
- | <file> if ($options != null && count((array)$options) > 0) {</file> | ||
- | |||
- | |||
- | |||
- | Une meilleure solution consiste à installer manuellement une version plus récente de phpMyAdmin à télécharger depuis le [[https://www.phpmyadmin.net/downloads/|site officiel]]. | ||
==== Erreur 404 avec Apache ==== | ==== Erreur 404 avec Apache ==== | ||
Ligne 83: | 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 92: | 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 109: | 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 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> | 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. |
Ligne 130: | 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]]// |