73 votes

Erreur dans phpMyAdmin après la mise à jour vers v4.8.0 : Le $cfg['TempDir'] (./tmp/) n'est pas accessible

phpMyAdmin fonctionnait bien avec la version 4.7.9. Maintenant, après avoir mis à jour vers la version 4.8.0 aujourd'hui (remplaçant l'ancien dossier phpmyadmin par le nouveau), je reçois ce message dans phpMyAdmin :

Le $cfg['TempDir'] (./tmp/) n'est pas accessible. phpMyAdmin n'est pas en mesure de mettre en cache les modèles et sera lent à cause de cela.

J'ai ajouté le dossier ./tmp/ comme ceci : /usr/share/tmp

phpMyAdmin se trouve sur : /usr/share/phpmyadmin

Cela n'a rien changé.

Qui connait cette erreur ? Que puis-je faire ?

0 votes

Exécutez la commande composer install à l'intérieur du nouveau dossier phpmyadmin créé

95voto

David Points 1231

La solution a été de créer un dossier appelé tmp comme ceci : /usr/share/phpmyadmin/tmp.

Assurez-vous également que l'utilisateur (ou groupe) exécutant le serveur Web (par exemple Apache) ait un accès en écriture au dossier tmp nouvellement créé. Par conséquent, changez la propriété à cet utilisateur ou ajoutez un accès en écriture pour tous les utilisateurs. Cette dernière option pourrait ne pas être vraiment conseillée.

13 votes

Cela ne semble pas fonctionner sur l'instance Amazon EC2 exécutant AMI Linux avec phpMyAdmin installé manuellement. J'ai essayé de donner le dossier entier /usr/share/phpmyadmin, les sous-dossiers et les fichiers chown et setfacl au groupe apache et même chmod 777 à /usr/share/phpmyadmin/tmp mais j'obtiens toujours une erreur. La seule façon de le faire fonctionner est de définir $cfg['TempDir'] = '/tmp'; dans config.inc.php mais je ne suis pas sûr que ce soit la meilleure façon de le gérer.

0 votes

Je ne suis pas sûr que ce soit la meilleure façon de le gérer; Je ne pense pas que cela ait de l'importance. C'est correct de le faire de cette façon.

0 votes

Je ne trouve pas config.inc.php. Je ne vois que l'exemple de celui-ci.

53voto

user889030 Points 909

La solution simple consiste à créer un dossier tmp dans votre répertoire phpmyadmin et à définir les permissions sur 777

mkdir tmp && chmod 777 tmp

puis

mettez à jour votre fichier config.inc.php en ajoutant cette ligne

$cfg['TempDir'] = 'tmp';

14 votes

J'ai fait cela, mais j'ai ajouté $cfg['TempDir'] = '/tmp'; au fichier de configuration.

4 votes

Selon la suggestion de @skolind, la ligne pour moi était $cfg['TempDir'] = '/tmp';. Le problème a maintenant été résolu. Merci!

3 votes

Pour les problèmes de permissions sur les répertoires, 777 donne à chaque utilisateur un accès complet au répertoire. Tout ce que vous avez vraiment besoin de faire est chown -R user:user ~/phpMyAdminuser est le nom de l'utilisateur du serveur web servant PMA ; c'est-à-dire www-data/nginx/apache. Cela résoudra tous les conflits de propriété dans l'installation totale y compris le répertoire tmp, sans donner des permissions à tout le monde.

17voto

wevrem Points 151

J'ai rencontré le même problème sous Ubuntu 18.04 lorsque j'ai remplacé la version de phpMyAdmin du dépôt de paquets (v4.6.6) par la dernière version (4.8.0). Je ne sais pas si vous utilisez Ubuntu, mais peut-être que ma réponse vous sera utile (ou à d'autres) qui rencontrent quelque chose de similaire.

J'ai mis la nouvelle version à l'emplacement standard, /usr/share/phpmyadmin/, mais l'installation du paquet de PMA d'Ubuntu place certains paramètres de configuration ailleurs (voir /etc/phpmyadmin/ et /var/lib/phpmyadmin/). J'ai trouvé ce paramètre dans /etc/phpmyadmin/apache.conf:

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

et effectivement ce répertoire avait été créé et avait les autorisations adéquates. Voulant rester le plus proche possible des paramètres d'installation du paquet, j'ai fait ce changement dans /usr/share/phpmyadmin/libraries/vendor_config.php et j'ai pointé directement vers ce dossier:

//define('TEMP_DIR', './tmp/');
define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

Ce paramètre est pris en compte par /usr/share/phpmyadmin/libraries/config.default.php (que vous n'êtes pas censé modifier) pour définir $cfg['TempDir'].

0 votes

Confirmer, cela a également fonctionné pour moi sur Ubuntu 18.04 - une mise à niveau de 4.6.6 à 4.8.0

0 votes

Ahhhh. bien. A fonctionné comme un champion.

0 votes

Aussi changer define('CONFIG_DIR', ROOT_PATH); à define('CONFIG_DIR', '/etc/phpmyadmin/'); dans le fichier vendor_config.php pour se débarrasser de l'erreur de mot de passe secret (blowfish_secret)

16voto

Dans mon cas, j'ai ajouté

$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';

au fichier

config.inc.php dans le dossier phpmyadmin

J'espère que cela aidera quelqu'un

3 votes

N'oubliez pas d'ajouter les autorisations nécessaires si besoin.

1 votes

/usr/share/phpmyadmin/tmp (pas temp) sauf si vous avez ajouté le dossier de cette manière

0 votes

Le dossier a été ajouté de cette manière

7voto

jormaster3k Points 80

Créez un dossier tmp dans le répertoire de base de l'installation de phpMyAdmin (par exemple, /usr/share/phpmyadmin/tmp), et assurez-vous qu'il est inscriptible par l'utilisateur sous lequel PHP est en cours d'exécution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X