it-swarm.com.de

Fehler in phpMyAdmin nach dem Update auf v4.8.0: Auf $ cfg ['TempDir'] (./tmp/) kann nicht zugegriffen werden

phpMyAdmin hat mit v4.7.9 gut funktioniert. Nach dem heutigen Update auf v4.8.0 (Ersetzen des alten phpmyadmin-Ordners durch den neuen) erhalte ich diese Nachricht in phpMyAdmin

Auf $ cfg ['TempDir'] (./tmp/) kann nicht zugegriffen werden. phpMyAdmin ist nicht in der Lage Templates zwischenspeichern und wird deshalb langsam.

Ich habe den Ordner ./tmp/ wie folgt hinzugefügt: /usr/share/tmp

phpMyAdmin ist eingeschaltet: /usr/share/phpmyadmin

Das hat nichts geändert.

Wer kennt diesen Fehler? Was kann ich machen?

22
David

Die Lösung bestand darin, einen Ordner mit dem Namen tmp wie folgt zu erstellen: /usr/share/phpmyadmin/tmp.

Stellen Sie außerdem sicher, dass der Benutzer (oder die Gruppe), auf dem der Webserver ausgeführt wird (z. B. Apache), Schreibzugriff auf den neu erstellten Ordner tmp hat. Ändern Sie daher den Eigentümer für diesen Benutzer oder fügen Sie allen Benutzern Schreibzugriff hinzu. Letzteres ist vielleicht nicht wirklich ratsam.

38
David

Ich hatte das gleiche Problem auf Ubuntu 18.04, als ich die phpMyAdmin-Version aus dem Paket-Repository (v4.6.6) durch die neueste Version (4.8.0) ersetzte. Ich weiß nicht, ob Sie auf Ubuntu laufen, aber vielleicht ist meine Antwort hilfreich für Sie (oder andere), die auf etwas Ähnliches stoßen.

Ich habe die neue Version an der Standardposition /usr/share/phpmyadmin/ abgelegt, aber bei der PMA-Installation von Ubuntu werden an anderen Stellen Konfigurationseinstellungen vorgenommen (siehe /etc/phpmyadmin/ und /var/lib/phpmyadmin/). Ich habe diese Einstellung in /etc/phpmyadmin/Apache.conf gefunden:

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

und das Verzeichnis wurde erstellt und hatte die richtigen Berechtigungen. Um möglichst nahe an den Paketinstallationseinstellungen zu bleiben, habe ich diese Änderung in /usr/share/phpmyadmin/libraries/vendor_config.php vorgenommen und direkt auf diesen Ordner gezeigt:

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

Diese Einstellung wird von /usr/share/phpmyadmin/libraries/config.default.php (die Sie nicht bearbeiten sollen) abgerufen, um $cfg['TempDir'] einzustellen.

11
wevrem

In meinem Fall habe ich hinzugefügt

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

zum 

config.inc.php Datei im phpmyadmin-Ordner

Ich hoffe es hilft jemandem

eine einfache Lösung besteht darin, das tmp-Verzeichnis in Ihrem phpmyadmin-Verzeichnis zu erstellen und die Berechtigung auf 777 festzulegen 

mkdir tmp && chmod 777 tmp

dann

aktualisieren Sie Ihre config.inc.php-Datei und fügen Sie diese Zeile hinzu

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

Erstellen Sie einen tmp-Ordner im Basisverzeichnis der phpMyAdmin-Installation (z. B. /usr/share/phpmyadmin/tmp), und stellen Sie sicher, dass der Benutzer, unter dem PHP ausgeführt wird, schreibbar ist.

5
jormaster3k

Erstellen Sie ein temporäres Verzeichnis, das dem Webserver-Benutzer gehört und auf diesen beschränkt ist. Platzieren Sie es nicht in der phpMyAdmin-Webroot. (In diesem Beispiel wird der Webserver als Apache ausgeführt.):

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

Als nächstes setze TempDir in phpMyAdmins config.inc.php:

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

Jede Antwort, die darauf hindeutet, dass Sie /usr/share/phpmyadmin/tmp Erstellen, spricht für eine schlechte Sicherheitspraxis. Dies gilt im Allgemeinen für temporäre Verzeichnisse und wird explizit angegeben in der offiziellen phpMyAdmin-Dokumentation :

Aus Sicherheitsgründen sollten sich alle Verzeichnisse außerhalb des vom Webserver veröffentlichten Baums befinden.

4
rsanden

In meinem Fall [MacOs El Capitán/Portugiesisch] lautete die Nachricht:

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

Meine Lösung in xamppfiles/phpmyadmin/config.inc.php:

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

Das heißt, ich habe nur einen Punkt zu dem Pfad hinzugefügt ... die Arbeit ist gut.

1
Carlos Freire

Für Benutzer von Arch und Manjaro:

Erstelle einen Ordner tmp unter /etc/webapps/phpmyadmin/ - mkdir /etc/webapps/phpmyadmin/tmp

Berechtigung auf 777 setzen - chmod 777 /etc/webapps/phpmyadmin/tmp

Fügen Sie diese Zeile der Konfigurationsdatei unter /etc/webapps/phpmyadmin/config.inc.php - $cfg['TempDir'] = '/tmp'; Hinzu.

Prost :)

1
Albin

Ich hatte ein ähnliches Problem, mit dem "Temp" -Verzeichnis. Die Lösung bestand darin, den Besitzer und die Gruppe des "twig" -Verzeichnisses (in "temp") in "Apache" (sowohl Besitzer als auch Gruppe) zu ändern.

1
Ari

nun, in meinem Fall ist dieser Fehler aufgetreten, als ich ubuntu 18.04 ..__ verwendet habe. Alles was Sie brauchen, ist das Installationsverzeichnis (in ubuntu - opt/lampp/phpmyadmin) geeignete Lese-/Schreibberechtigungen.

Befolgen Sie diese Schritte im Fall von Ubuntu-

1. Wechseln Sie zum PMA-Installationsverzeichnis, indem Sie die folgenden Befehle in cmd- eingeben. 

cd opt/lampp/phpmyadmin

2. Geben Sie dann den folgenden Befehl ein: 

Sudo mkdir tmp && chmod 777 tmp

und dann bist du fertig .. !! Ich hoffe es hilft.

1

Aus der phpMyAdmin-Dokumentation:

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

Der Name des Verzeichnisses, in dem temporäre Dateien gespeichert werden können . Es wird derzeit für verschiedene Zwecke verwendet:

Der Vorlagen-Cache, der das Laden von Seiten beschleunigt. ESRI Shapefiles-Import, siehe 6.30 Importieren: Wie kann ich ESRI Shapefiles importieren ?.

Informationen zu den Einschränkungen von open_basedir für hochgeladene Dateien finden Sie unter 1.11 Beim Hochladen einer Datei über die Registerkarte "Import" wird eine Einschränkung von "open_basedir" angezeigt.

Dieses Verzeichnis sollte so strenge Berechtigungen wie möglich haben, da der einzige Benutzer, der für den Zugriff auf dieses Verzeichnis erforderlich ist, derjenige ist, der den Webserver betreibt. Wenn Sie über Root-Berechtigungen verfügen, machen Sie diesen Benutzer einfach zum Eigentümer dieses Verzeichnisses und machen Sie es nur für dieses Verzeichnis zugänglich:

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

Wenn Sie den Besitzer des Verzeichnisses nicht ändern können, können Sie mit ACL ein ähnliches Setup erstellen:

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

Wenn keine der oben genannten Methoden für Sie geeignet ist, können Sie das Verzeichnis chmod 777 erstellen. Es besteht jedoch die Gefahr, dass andere Benutzer Daten in diesem Verzeichnis lesen und schreiben.

1
Geraldo Freitas

1) Erstellen Sie den Ordner tmp

mkdir /usr/share/phpmyadmin/tmp

2) finde deinen PHP-Benutzer heraus

<?php echo `whoami`; ?>

3) Ändern Sie den Besitzer des tmp-Ordners in den in Schritt 2 gefundenen PHP-Benutzer

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

4) Melden Sie sich von phpmyadmin ab und melden Sie sich wieder an

1
Kareem

Erstellen Sie den Ordner tmp im Stammverzeichnis von phpmyadmin-Dateien

Darüber hinaus müssen Sie alle Berechtigungen für diesen Ordner bereitstellen. Das habe ich in Windows gemacht.

1
Pishang Ujeniya

gehen Sie einfach in den Ordner phpmyadmin und geben Sie diesen Code ein 

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

und dann prüfen, ob der tmp-Ordner vorhanden ist oder nicht in phpmyadmin ist. Wenn er nicht vorhanden ist, erstellen Sie den tmp-Ordner, und geben Sie ihm die Berechtigung Lesen und Recht.

0
pawan kumar

Ich habe gerade meine vendor_config.php-Datei in define('TEMP_DIR', '/tmp/'); statt define('TEMP_DIR', './tmp/'); geändert.

Das scheint zu funktionieren. 

0
smack7s

Ich hatte die gleiche Fehlermeldung. Ich benutze Ubuntu16.04 mit Lampp. Gehen Sie in das Verzeichnis 'phpmyadmin'. In meinem Fall '/ opt/lampp/phpmyadmin /' sollten Sie einen neuen 'tmp'-Ordner erstellen. Öffnen Sie ein Terminalfenster und:

cd YOUR_PATH_TO_PHPMYADMIN
Sudo mkdir tmp

Jetzt müssen Sie die Gruppe des 'tmp'-Ordners ändern, um Zugriff auf den PHP-Benutzer zu erhalten. Um es zu finden, können Sie eine PHP-Datei in Ihrem localhost-Verzeichnis erstellen, in meinem Fall 'htdocs'.

Sudo touch user.php
Sudo nano user.php

Geben Sie im Nano-Editor Folgendes ein:

<?php echo `whoami`; ?>

Drücken Sie dann STRG + O und STRG + X, um die Einstellungen zu speichern und zu beenden. Öffnen Sie den Browser und geben Sie Ihre Adressleiste ein

localhost/user.php

Es zeigt Ihren PHP-Benutzer.

Gehen Sie danach zum Terminal und navigieren Sie zu Ihrem kürzlich erstellten 'tmp'-Verzeichnis im phpmyadmin-Verzeichnis. Geben Sie Folgendes ein:

Sudo chgrp YOUR_PHP_USER tmp -R

Und ändern Sie die Berechtigung in das Verzeichnis 'tmp':

Sudo chmod 775 tmp -R

Ich empfehle, keiner Datei die Berechtigung 777 zu geben.

Ich hoffe, es hilft!

Meine Antwort geht an centos 7 Sentora-Benutzer. Der Ordner tmp muss unter phpMyadmin von Sentora erstellt werden (siehe unten)

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

Stellen Sie nach dem Erstellen des Ordners sicher, dass Sie Apache-Zugriffsberechtigungen für den Ordner tmp erteilen

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

0
gumisirizab1