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?
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.
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.
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';
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.
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.
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.
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 :)
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.
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.
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) 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
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.
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.
Ich habe gerade meine vendor_config.php
-Datei in define('TEMP_DIR', '/tmp/');
statt define('TEMP_DIR', './tmp/');
geändert.
Das scheint zu funktionieren.
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/