web-dev-qa-db-fra.com

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

phpMyAdmin a bien fonctionné avec v4.7.9. Maintenant, après avoir mis à jour v4.8.0 aujourd'hui (en 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 capable pour mettre en cache des modèles et sera lent à cause de cela.

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

phpMyAdmin est sur: /usr/share/phpmyadmin

Cela n'a rien changé.

Qui sait cette erreur? Que puis-je faire?

22
David

La solution consistait à créer un dossier appelé tmp comme ceci: /usr/share/phpmyadmin/tmp.

Assurez-vous également que l'utilisateur (ou le groupe) exécutant le serveur Web (Apache, par exemple) dispose d'un accès en écriture au dossier tmp récemment créé. Par conséquent, modifiez la propriété de cet utilisateur ou ajoutez un accès en écriture à tous les utilisateurs. Ce dernier pourrait ne pas être vraiment souhaitable.

38
David

J'ai eu le même problème sur Ubuntu 18.04 lorsque j'ai remplacé la version de phpMyAdmin du référentiel 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 aidera (ou aidera d’autres) à faire face à quelque chose de similaire.

Je mets la nouvelle version à l'emplacement standard, /usr/share/phpmyadmin/, mais l'installation du paquet PMA par Ubuntu place certains paramètres de configuration à d'autres endroits (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 bien sûr, ce répertoire a été créé et dispose des autorisations appropriées. Désirant rester aussi proche que possible des paramètres d'installation du paquet, j'ai apporté cette modification à /usr/share/phpmyadmin/libraries/vendor_config.php et pointé directement vers ce dossier:

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

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

11
wevrem

Dans mon cas j'ai ajouté

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

au 

config.inc.php Fichier dans le dossier phpmyadmin

J'espère que ça va aider quelqu'un

solution simple consiste à créer un répertoire tmp dans votre répertoire phpmyadmin et à définir l’autorisation sur 777 

mkdir tmp && chmod 777 tmp

puis

mettez à jour votre fichier config.inc.php ajoutez cette ligne

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

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 accessible en écriture à l'utilisateur sous lequel PHP s'exécute.

5
jormaster3k

Dans mon cas [MacOs El Capitán/portugais], le message était le suivant:

The $cfg['TempDir'] (./temp/) is not accessible

Ma solution, dans xamppfiles/phpmyadmin/config.inc.php:

$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';

C’est-à-dire que j’ai juste ajouté un point au sentier… le travail va bien.

1
Carlos Freire

Créez un répertoire temporaire appartenant à l'utilisateur du serveur Web et limité à celui-ci. Do not placez-le à l'intérieur de la racine Web phpMyAdmin. (Dans cet exemple, le serveur Web s'exécute en tant que Apache):

mkdir -p /var/tmp/phpMyAdmin
chown Apache:apache /var/tmp/phpMyAdmin
chmod 700 /var/tmp/phpMyAdmin

Ensuite, définissez TempDir à l'intérieur du config.inc.php de phpMyAdmin:

$cfg['TempDir'] = '/var/tmp/phpMyAdmin';

Toute réponse suggérant que vous créez /usr/share/phpmyadmin/tmp prône une mauvaise pratique de sécurité. Ceci est généralement vrai pour les répertoires temporaires, et explicitement indiqué dans la documentation officielle de phpMyAdmin :

Pour des raisons de sécurité, tous les répertoires doivent être en dehors de l'arborescence publié par serveur web.

1
rsanden

J'ai eu un problème similaire, avec le répertoire "temp". La solution consistait à changer le propriétaire et le groupe du répertoire "twig" (à l'intérieur de "temp") en "Apache" (le propriétaire et le groupe)

1
Ari

eh bien, dans mon cas, cette erreur s’est produite lorsque j’utilisais Ubuntu 18.04 . Tout ce dont vous avez besoin est d’accéder au répertoire d’installation (sous ubuntu - opt/lampp/phpmyadmin). autorisations de lecture/écriture appropriées.

Suivez ces étapes en cas d'ubuntu-

1. Allez au répertoire d’installation de PMA en tapant les commandes suivantes dans cmd- 

cd opt/lampp/phpmyadmin

2.Alors tapez la commande suivante 

Sudo mkdir tmp && chmod 777 tmp

et puis vous avez terminé ... !! J'espère que cela vous aidera ...

1
Nakshtra Pradhan

Depuis la documentation phpMyAdmin:

$cfg['TempDir']
    Type:   string
    Default value:  './tmp/'

Le nom du répertoire où les fichiers temporaires peuvent être stockés . Il est utilisé à plusieurs fins, actuellement:

Les templates cachent ce qui accélère le chargement de la page . Importation de fichiers de forme ESRI, voir 6.30 Importation: comment importer des fichiers de forme ESRI?.

Pour contourner les limitations d’open_basedir pour les fichiers téléchargés, voir 1.11. Je reçois une «restriction open_basedir» lors du téléchargement d’un fichier à partir de l’onglet Importation.

Ce répertoire doit avoir des autorisations aussi strictes que possible car le seul utilisateur requis pour accéder à ce répertoire est celui qui exécute le serveur Web. Si vous avez des privilèges root, il suffit de rendre cet utilisateur propriétaire de ce répertoire et de le rendre accessible uniquement par lui:

chown www-data:www-data tmp
chmod 700 tmp

Si vous ne pouvez pas changer le propriétaire du répertoire, vous pouvez effectuer une configuration similaire à l'aide de ACL:

chmod 700 tmp
setfacl -m "g:www-data:rwx" tmp
setfacl -d -m "g:www-data:rwx" tmp

Si aucune des solutions ci-dessus ne fonctionne pour vous, vous pouvez toujours créer le répertoire chmod 777, mais cela pourrait imposer aux autres utilisateurs le risque que le système lise et écrit des données dans ce répertoire.

1
Geraldo Freitas

1) créer le dossier tmp

mkdir /usr/share/phpmyadmin/tmp

2) trouvez votre utilisateur php

<?php echo `whoami`; ?>

3) Changez la propriété du dossier tmp en utilisateur php trouvé à l'étape 2

Sudo chown -R step2phpuser:step2phpuser /usr/share/phpmyadmin/tmp

4) Déconnexion de phpmyadmin et reconnectez-vous

1
Kareem

il suffit d'aller dans le dossier phpmyadmin et de mettre ce code 

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

puis vérifiez que le dossier tmp existe ou non dans phpmyadmin s'il n'existe pas, puis créez un dossier tmp et accordez-lui les droits de lecture et d'accès.

0
pawan kumar

Je viens de changer mon fichier vendor_config.php en define('TEMP_DIR', '/tmp/'); au lieu de define('TEMP_DIR', './tmp/');

Cela semble fonctionner. 

0
smack7s

J'ai eu le même message d'erreur. J'utilise Ubuntu16.04 avec lampp. Vous devriez aller dans le répertoire 'phpmyadmin', dans mon cas '/ opt/lampp/phpmyadmin /', créez un nouveau dossier 'tmp'. Ouvrez une fenêtre de terminal et:

cd YOUR_PATH_TO_PHPMYADMIN
Sudo mkdir tmp

Maintenant, vous devez changer le groupe du dossier 'tmp' pour donner accès à l'utilisateur php. Pour le trouver, vous pouvez créer un fichier php dans votre répertoire localhost, dans mon cas 'htdocs'

Sudo touch user.php
Sudo nano user.php

Dans l'éditeur nano, tapez:

<?php echo `whoami`; ?>

Appuyez ensuite sur CTRL + O et CTRL + X pour enregistrer et quitter . Ouvrez le navigateur et tapez votre barre d'adresse.

localhost/user.php

Il montre votre utilisateur php.

Après cela, allez au terminal et accédez au répertoire 'tmp' récemment créé dans le répertoire phpmyadmin et tapez:

Sudo chgrp YOUR_PHP_USER tmp -R

Et changez l’autorisation dans le répertoire 'tmp':

Sudo chmod 775 tmp -R

Je recommande de ne jamais donner l'autorisation 777 à aucun fichier.

J'espère que ça aide!

0

Ma réponse va à centos 7 utilisateurs de Sentora, tmp le dossier doit être créé sous phpMyadmin de Sentora comme indiqué ci-dessous

cd /etc/sentora/panel/etc/apps/phpmyadmin/
Sudo mkdir tmp

Après avoir créé le dossier, assurez-vous de donner les autorisations d’accès à Apache pour le dossier tmp.

chown -R Apache /etc/sentora/panel/etc/apps/phpmyadmin/tmp/

0
gumisirizab1