42 votes

Comment mettre à jour PHPmyAdmin [revisited]

Cette question a été posée précédemment, Comment mettre à jour PHPmyAdmin

La réponse donnée était

sudo apt-get update
sudo apt-get install phpmyadmin

ou

sudo apt-get update
sudo apt-get upgrade

La version de phpmyadmin incluse dans apt-get est 4.5.4, qui a été publiée le 28 janvier 2016.

En réponse à cette question, une réponse était d'utiliser l'archive phpMyAdmin qui propose les commandes suivantes.

sudo add-apt-repository ppa:phpmyadmin/ppa
sudo apt-get update

Dans mon cas, cela a mis à jour beaucoup de choses, mais pas spécifiquement phpmyadmin, j'ai eu besoin de la commande supplémentaire

sudo apt-get install phpmyadmin

Cela a réussi à passer à la version 4.9.0.1 qui a été publiée en 2019.

À l'heure actuelle, il semble effectivement que le téléchargement manuel et la copie en utilisant les instructions vagues de docs.phpmyadmin.net soient nécessaires.

Y a-t-il un dépôt plus récent pour phpmyadmin que le PPA ou une installation manuelle est-elle nécessaire ?

63voto

RatherLogical Points 738

@Photo Larry a vraiment touché dans le mille! Je vais donner une réponse basée sur la sienne qui sera facile à comprendre et à suivre.

  • Votre première étape est d'installer PMA (phpMyAdmin) depuis le dépôt officiel d'Ubuntu: apt-get install phpmyadmin.
  • Ensuite, cd dans le répertoire usr/share: cd /usr/share.
  • Troisièmement, supprimez le répertoire phpmyadmin: rm -rf phpmyadmin.
  • Maintenant, nous devons télécharger la dernière version de PMA sur notre système (Notez que vous avez besoin de wget: apt-get install wget): wget -P /usr/share/ "https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-english.zip" Permettez-moi d'expliquer les arguments de cette commande, -P définit le chemin et "le lien.zip" est actuellement (17/07/18) la dernière version de PMA. Vous pouvez trouver ces liens ICI.
  • Pour cette prochaine étape, vous avez besoin de unzip (apt-get install unzip): unzip phpMyAdmin-4.8.2-english.zip. Nous venons de dézipper PMA, maintenant nous allons le déplacer dans son emplacement final.
  • Utilisons la commande cp (copier) pour déplacer nos fichiers! Notez que nous devons ajouter l'argument -r car il s'agit d'un dossier. cp -r phpMyAdmin-4.8.2-english phpmyadmin.
  • Il est maintenant temps de nettoyer: rm -rf phpMyAdmin-4.8.2-english.

Continuez à lire!

Vous pourriez maintenant remarquer deux erreurs après vous être connecté à PMA.

le fichier de configuration a besoin d'une passphrase secrète (blowfish_secret). phpmyadmin
Le $cfg['TempDir'] (./tmp/) n'est pas accessible. phpMyAdmin n'est pas en mesure de mettre en cache les modèles et donc sera lent à cause de cela.

Cependant, ces problèmes sont relativement faciles à résoudre. Pour le premier problème, il vous suffit de prendre votre éditeur de choix et de modifier /usr/share/phpmyadmin/config.inc.php mais il y a un problème, nous l'avons supprimé! Pas de souci, tout ce que vous avez à faire est: cd /usr/share/phpmyadmin & cp config.sample.inc.php config.inc.php.

Exemple d'entrée de variable secrète Blowfish de phpMyAdmin:

/*
 * Ceci est nécessaire pour l'authentification basée sur les cookies pour crypter le mot de passe dans
 * cookie
 */
$cfg['blowfish_secret'] = '{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V'; 
/* VOUS DEVEZ REMPLIR CECI POUR L'AUTHENTIFICATION DES COOKIES! */

Enregistrez maintenant et fermez le fichier.

  • Nous allons maintenant créer un répertoire tmp pour PMA: mkdir tmp & chown -R www-data:www-data /usr/share/phpmyadmin/tmp. La dernière commande permet au serveur web Apache de posséder le répertoire tmp et de modifier son contenu.

MODIFICATION 12 décembre 2018

Vous ne voulez pas que quelqu'un vole vos cookies, n'est-ce pas?

On m'a signalé que https://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator génère des erreurs sur les anciennes versions de PMA. Cependant, la principale raison pour laquelle je vous déconseille d'utiliser des sites Web comme celui-ci est que vous ne savez pas s'ils utilisent un PRNG faible (Générateur de nombres pseudo-aléatoires) (par exemple rand(), mt_rand(), et lcg_value()) ou l'une des fonctions de "mélange" (par exemple str_shuffle(), shuffle(), array_rand()). J'ai donc créé mon propre outil à cette fin. Il génère une chaîne de 32 caractères cryptographiquement sécurisée que vous pouvez utiliser sans crainte de sécurité ou d'erreurs! Page man de PHP pour la fonction que j'utilise pour générer l'aléatoire http://php.net/manual/en/function.random-int.php. J'ai remplacé l'ancien lien par celui-ci: https://www.motorsportdiesel.com/tools/blowfish-salt/pma/.

MODIFICATION 11 septembre 2020

J'ai changé le lien du générateur de blowfish car l'ancien n'est plus accessible.

12voto

Jason Houle Points 237

Je devais juste faire ça à cause de problèmes avec php7.2 et de recevoir l'erreur count(): Parameter must be an array or an object that implements Countable.

La version de apt était 4.5.4 et le ppa n'a pas les correctifs pour php7.2. Ma solution a été de télécharger la dernière version depuis https://www.phpmyadmin.net/ et de copier les fichiers dans /usr/share/phpmyadmin.

4voto

Photo Larry Points 69

Comme indiqué ci-dessus, vous devez mettre à jour manuellement les fichiers, mais j'ai cherché pendant une heure pour savoir où ils se trouvaient (/usr/share) et j'ai continué à voir qu'ils allaient être placés dans /var/www/html ce qui est incorrect. Si vous avez installé le logiciel avec apt-get install phpmyadmin après avoir ajouté le dépôt ci-dessus qui prétend être à jour, alors vous obtenez au moins les libs php7.2 nécessaires. Ensuite, vous devez installer la NOUVELLE version (4.8) dans /usr/share/phpmyadmin en allant dans /usr/share et en clonant le git : git clone https://github.com/phpmyadmin/phpmyadmin.git (J'ai d'abord fait un rm -rf phpmyadmin) juste pour être sûr qu'aucun ancien code n'était laissé. Ensuite, en allant dans l'interface web... vous verrez que la dernière version est maintenant utilisée. Assurez-vous ensuite de cd vers phpmyadmin et exécutez : composer update --no-dev Cela installe la version 4.9.0-dev qui fonctionne très bien et je suis sous Ubuntu 16.04.4. Merci j'espère que cela aidera quelqu'un à gagner du temps

4voto

Džuris Points 143

La réponse actuelle du haut est très bonne mais un peu trop complexe. Ici, je réécris la procédure de manière plus concise. Cela suppose que vous travaillez dans un répertoire sûr comme le répertoire personnel.

  1. Sauvegardez la configuration existante :

    cp /usr/share/phpmyadmin/config.inc.php .

  2. Téléchargez la dernière version de phpMyAdmin (ou une autre version) :

    wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-english.tar.xz

  3. Supprimez l'installation actuelle :

    find /usr/share/phpmyadmin -mindepth 1 -delete

  4. Extrayez l'archive téléchargée à la place de l'ancienne installation :

    tar xf phpMyAdmin-latest-english.tar.xz --strip 1 -C /usr/share/phpmyadmin

  5. Remplacez la configuration :

    cp config.inc.php /usr/share/phpmyadmin

  6. [optionnel] Nettoyez votre répertoire de travail :

    rm config.inc.php phpMyAdmin-latest-english.tar.xz

Modifié en 2020 : réalisé que nous pouvons facilement préserver la configuration.

3voto

garsax Points 41

Suivant les instructions trouvées ici, j'ai créé ce script simple pour mettre à jour PHPMyAdmin vers la dernière version stable:

echo
echo "Sauvegarde en cours"
mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak

echo "Récupération de la dernière version de PHPMyAdmin..."
mkdir -p /usr/share/phpmyadmin/
cd /usr/share/phpmyadmin/
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
tar xzf phpMyAdmin-latest-all-languages.tar.gz
mv phpMyAdmin-*/* /usr/share/phpmyadmin

echo "Mise à jour du vendor_config"
sed -i -r "s/('TEMP_DIR'\s*,)[^\)]*/\1 '\/var\/lib\/phpmyadmin\/tmp\/'/" /usr/share/phpmyadmin/libraries/vendor_config.php
sed -i -r "s/('CONFIG_DIR'\s*,)[^\)]*/\1 '\/etc\/phpmyadmin\/'/" /usr/share/phpmyadmin/libraries/vendor_config.php

echo "Nettoyage en cours..."
rm /usr/share/phpmyadmin/phpMyAdmin-latest-all-languages.tar.gz
rm -rf /usr/share/phpmyadmin/phpMyAdmin-*
rm -rf /usr/share/phpmyadmin.bak

echo "Terminé!"
echo

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X