Ich habe kürzlich eine Site von einem lokalen Host auf einen VPS verschoben. Ich habe es geschafft, die öffentlichen und privaten Dateien beschreibbar zu machen. Ich bin mir jedoch nicht sicher, wo sich der temporäre Ordner befindet und wie ich die Berechtigungen ändere. Ich bekomme immer diese Nachricht:
Die angegebene Datei temporary: // file3Hl91E konnte nicht kopiert werden, da das Zielverzeichnis nicht richtig konfiguriert ist. Dies kann durch ein Problem mit Datei- oder Verzeichnisberechtigungen verursacht werden. Weitere Informationen finden Sie im Systemprotokoll.
Ich benutze Virtualmin, Drupal 7 und einen Debian-Server. Mein aktuelles temporäres Verzeichnis ist /tmp
.
In deiner settings.php
Dies funktioniert auf Unix-Systemen in 99% der Fälle.
In der Regel ist das Verzeichnis / tmp auf UNIX-Systemen mit offenen Berechtigungen vorhanden. Es ist speziell für temporäre Dateien vorhanden und wird häufig zur Verbesserung der Leistung eingerichtet.
Sie können Berechtigungen überprüfen, indem Sie in
ls -al /tmp
der Befehlszeile ausführen.Wenn Sie diesbezüglich weiterlesen möchten, lesen Sie https://en.wikipedia.org/wiki/Temporary_folder
quelle
/tmp
nicht die richtigen Berechtigungen vorhanden sind. Es widerspricht sogar der akzeptierten Antwort (die für sich genommen auch nicht großartig ist).Es ist wichtig zu verstehen, dass ein Berechtigungsproblem sowohl in Ihrem angegebenen temporären Verzeichnis (das unter admin / config / media / file-system definiert ist) als auch in dem Ordner bestehen kann, in den diese temporäre Datei kopiert werden soll. Ich habe diesen Fehler einige Male gesehen und es ist normalerweise kein Problem mit dem temporären Ordner, sondern dem endgültigen Ordner, in den diese Datei kopiert wird, nachdem sie im temporären Ordner gespeichert wurde .
Stellen Sie außerdem sicher, dass der Pfad des öffentlichen Dateisystems korrekt festgelegt ist.
quelle
Ich hatte genau dieses Problem und stellte sicher, dass der relative Pfad (sites / default / files / tmp) für den Speicherort meines tmp-Ordners wie vorgeschlagen verwendet wurde. Außerdem habe ich die Berechtigungen für den tmp-Ordner geändert, um sicherzustellen, dass er von Apache beschreibbar ist, aber mein Problem bestand weiterhin . Deshalb habe ich mich entschlossen, die Protokollnachrichten (Berichte >> Letzte Protokollnachrichten) zu überprüfen, um festzustellen, ob ich ein besseres Verständnis für das Problem habe. Auf diese Weise erhielt ich eine spezifischere Nachricht:
Dies veranlasste mich, die Berechtigungen für den Ordner js in sites / default / files zu überprüfen, und wie sich herausstellte, konnte Apache nicht darauf schreiben. Durch Ändern der Berechtigungen für diesen Ordner auf 775 wurde meine Fehlermeldung entfernt. Daher würde ich vorschlagen, dass Sie die Berechtigungen für alle Unterordner in sites / default / files und nicht nur für den tmp-Ordner überprüfen, wenn Sie Ihr Problem noch nicht gelöst haben. Ich dachte nur, ich würde diese Informationen teilen.
quelle
sudo chgrp -R www-data /var/www/mysite
mit "Ändern der Berechtigungen auf 775" . Dies wird NICHT benötigt. Drupal muss nicht in jeden Ordner schreiben . Nur Ihre öffentlichen, privaten und tmp-Dateiordner.Sie finden die Dateisystemeinstellungen in
admin/config/media/file-system
change it to / tmpSie können auch admin / reports / status auf Einstellungsprobleme überprüfen
Über / tmp Erlaubnis können Sie es 755 geben und Sie finden es in / public_html
quelle
Die Fehlermeldung kann manchmal irreführend sein
Wenn das Problem mit dem Zielverzeichnis zusammenhängt, hat der Apache wahrscheinlich nicht die Berechtigung, in den Unterordner sites / default / files zu schreiben, in dem Drupal die Datei ablegen möchte.
Eine gute Lösung ist, den Apache-Benutzer zum Eigentümer aller Dateien und Verzeichnisse unter sites / default / files zu machen
Oder ähnliches sollte Probleme mit dem Zielverzeichnis beheben. Stellen Sie sicher, dass der Eigentümer über Schreib- und Ausführungsberechtigungen für alle Unterverzeichnisse verfügt.
quelle
chown -R www-data:www-data /var/www/html/sites/default/files/
Das Dateiverzeichnis: Fehlerbehebung bei Apache-basierten Webservern
Wenn sich die Verzeichnisdateien nicht im Besitz des Webservers befinden, gibt es zwei Möglichkeiten, um fortzufahren. In diesen Anweisungen wird davon ausgegangen, dass Sie über Shell-Zugriff auf den Webserver verfügen. Wenn Sie keinen Shell-Zugriff haben, wenden Sie sich an Ihren Hosting-Anbieter, um weitere Unterstützung zu erhalten.
Im Idealfall können Sie den "Eigentümer" der Verzeichnisdateien so ändern, dass er dem Namen des Webservers entspricht. Auf einem Unix- oder Linux-basierten Server können Sie überprüfen, "wen" der Webserver ausführt, indem Sie die folgenden Befehle eingeben:
Abhängig von Ihrem Webserver gibt einer dieser Befehle eine Reihe von Zeilen wie folgt zurück:
Die erste Spalte im zurückgegebenen Text ist der "Benutzer", unter dem Ihr Webserver ausgeführt wird. In diesem Fall handelt es sich bei dem Benutzer um WWW-Daten. Um Ihr Dateiverzeichnis für den Webserver beschreibbar zu machen, müssen Sie seinen Besitz mit dem folgenden Befehl neu zuweisen:
Wenn Sie nicht über ausreichende Berechtigungen auf Ihrem Server verfügen, um den Eigentümer des Ordners zu ändern, können Sie mit dem folgenden Befehl Gruppenschreibzugriff auf den Ordner gewähren:
Sie sollten auch in der Lage sein, die Berechtigungen des Verzeichnisses mit einem FTP-Programm wie oben beschrieben anzupassen.
Nachdem Sie diese Schritte ausgeführt haben, bestätigen Sie, dass die entsprechenden Berechtigungen zugewiesen wurden, indem Sie zu Verwalten -> Berichte -> Statusbericht navigieren. Scrollen Sie zum Abschnitt "Dateisystem" und bestätigen Sie, dass Ihre Einstellungen jetzt korrekt sind.
Quelle: Das Dateiverzeichnis
quelle
Eine weitere Fehlerquelle ist, dass in den Ordner files nicht geschrieben werden kann. In meinem Fall habe ich es gelöst mit:
quelle
In einigen Situationen kann dies leicht behoben werden, indem die Ordner 'ctools' und 'js' in default / files gelöscht werden. Diese Ordner werden vom System bei Bedarf neu erstellt. Wenn Sie eine vorhandene Site neu installieren, können diese Ordner bereits Probleme verursachen. Wenn Ihr CSS nach der Neuinstallation einer vorhandenen Site nicht funktioniert, können Sie dies auch beheben, indem Sie diese Dateien löschen und von Drupal neu erstellen lassen.
quelle
Meine alte und problematische Konfiguration
Meine neue und funktionierende Konfiguration
quelle
Die richtigen Berechtigungen für den temporären Ordner hängen von Ihrer Webserverkonfiguration ab.
Wenn Sie Drupal mit PHP als Modul des Webservers ausführen, beispielsweise Apache, sollte der Benutzer, der in der Konfigurationsdatei des Hauptservers mit der Anweisung User definiert ist, Schreibzugriff darauf haben.
% grep -i "user" /etc/httpd/conf/httpd.conf
Benutzer Apache
quelle
Ich hatte das gleiche Problem, nachdem ich von einem Server auf einen anderen umgezogen bin.
Ich habe alles Mögliche ausprobiert, Ordner auf 755 gesetzt und so weiter.
Mein temporärer Ordner wurde auf "" tmp7zXhVVCO "gesetzt und kopierte die Installationsdateien wirklich gut, nach jedem erneuten Versuch sah ich, dass die temporäre Datei dort kopiert wurde, aber die Installation schlug weiterhin fehl.
Das Problem ist jedoch, dass der Eigentümer nicht die Rechte besitzt, weshalb 777 diesen Fehler beseitigt, aber wir alle wissen, dass dies kein Weg ist, auf Produktionsstandorten voranzukommen.
quelle
The directory ../temp2 does not exist and could not be created.
Ich mag keine der vorhandenen Antworten wirklich, deshalb beginne ich selbst eine, die ich wahrscheinlich im Laufe der Zeit aktualisieren werde. Hauptsächlich mit Shell-Befehlen.
Führen Sie dies vorerst aus
sites/example.com
:quelle
Unter Konfiguration -> Medien -> Dateisystem habe ich den / temp-Katalog entfernt. Danach hatte ich keine Probleme mehr.
quelle
Ich hatte das gleiche Problem bei einer Migration. Ich habe chmod 777 alle Sites / Standard / Dateien, aber der Fehler tritt immer noch auf. Ich ändere die Berechtigung 775 auf Sites / default / files und die Nachricht ist verschwunden. Ich war kein privates Pfadproblem, mein ist / var / tmp, aber die 775-Erlaubnis.
quelle
Wenn Sie mit Pantheon auf dieses Problem stoßen und die Fehlermeldung weiterhin erhalten, nachdem Sie die (temporären) Dateiverzeichnispfade festgelegt haben, müssen Sie möglicherweise auch den Verbindungsmodus auf Ihrem Entwicklungsinstanz-Dashboard von Git auf SFTP umschalten.
Ihre Drupal-Site versucht möglicherweise, Dateien in einem von Git verwalteten Verzeichnis zu speichern (z. B. wenn Sie Layouteinstellungen und Ähnliches in einem Design für adaptive Themen ändern). Wechseln Sie dazu zu SFTP. Sobald die Dateien gespeichert wurden, können Sie wieder zu Git wechseln. Das Dashboard fordert Sie auf, die auf dem Server vorgenommenen Änderungen zu bestätigen.
quelle
Ich hatte das gleiche problem
Ich habe IIS unter Windows verwendet. Schließlich bestand das Problem bei den Berechtigungen in den Ordnern sites / default / files und offensichtlich in sites / default / files / tmp.
Endlich habe ich den Ordnern wieder "Vollzugriff" gegeben und es hat funktioniert.
Grüße
quelle