WordPress Berechtigungen korrekt setzen (Problem mit FTP-Serverdaten Aufforderungen beheben)

Das Problem: WordPress möchte FTP-Serverdaten

Ich habe vor kurzem diesen WordPress Blog auf einen neuen Server umgezogen. Wie üblich gibt es alle paar Tage Aktualisierungen von Plugins und Templates, die ich auch selbstverständlich immer brav einspiele.

Anstatt die Updates – wie gewohnt – durchzuführen wurde mir nun jedoch plötzlich diese Maske angezeigt, die mich mit folgender Meldung zur Eingabe meiner FTP-Server-Zugangsdaten aufforderte:

Um diese Aktion durchführen zu können, benötigt WordPress Zugriff auf deinen Webserver. Bitte gib die FTP-Serverdaten ein, um fortzufahren. Falls du deine Zugangsdaten vergessen hast, so solltest du bei deinem Webhoster nachfragen.

Die Seite dürfte dann in etwa so aussehen:

WordPress FTP-Serverdaten Aufforderung

Diese Meldung wollen wir wieder abstellen (Screenshot: WordPress)


Die Lösung: Inhaber und Rechte der Dateien anpassen

Am einfachsten ist es, einfach alle Dateien auf den gleichen Eigentümer zu setzen, den auch der Webserver nutzt. Wenn Ihr als Webserver Apache im Einsatz habt, dann wird WordPress in der Regel über den User www-data ausgeführt.  Hierzu wechselt Ihr in das Hauptverzeichnis (in dem WordPress installiert wurde) und gebt folgenden Befehl ein:

Das sollte es auch schon gewesen sein. Nun sollten sich Plugins und Templates wieder normal aktualisieren lassen.

Falls es noch immer zu Problemen kommt, kann es sein, dass mit den Ordner- und Dateiberechtigungen auch was nicht stimmt. In diesem Fall einfach diese beiden Befehle noch zusätzlich mit ausführen:

Nun kam in meinem Fall auch grad noch WordPress 4.0 ganz frisch raus, also wollte ich das auch noch „mal eben schnell“ aktualisieren. Doch plötzlich tauchte trotz meiner Änderungen wieder die Maske auf, die nach meinen FTP-Zugangsdaten gefragt hat. Ein wenig bei WordPress recherchiert bin ich auf die Seite Editing wp-config.php gestoßen. Dort gibt es einen Unterpunkt WordPress Upgrade Constants, der dann zur Lösung meines Problems geführt hat.

Einfach in die Datei wp-config.php (liegt im Hauptverzeichnis der WordPress Installation) gehen:

Und in der Datei irgendwo diese Zeile einfügen:

Nun klappt es auch (wieder) mit dem Update von WordPress selbst.


UPDATE (29.03.2015): Den chown Befehl oben habe ich von chown -R www-data:www-data * in find . -exec chown www-data:www-data {} \; geändert, damit auch die Dateien im Hauptverzeichnis mit angepasst werden, die mit einem Punkt beginnen (wie die .htacess Datei).

Ähnliche Beiträge

8 Antworten

  1. Christian sagt:

    Danke für diesen Tipp! Ich hatte nach einer neuen Installation (WordPress 4.0.1) genau dieses Problem und dank deiner Info, bin ich doch sehr schnell dahinter gekommen…

    DANKE!

  2. Unzi sagt:

    Hallo Ansas,
    ich bin etwas neu in dem Metier und habe deinen Befehl find . -exec chown www-data:www-data {} \; im Installtationsverzeichnis als root ausgeführt und habe mir damit nun irgendwie meine Installation zerschossen, ich erhalte bei meiner Seite nun eine leere weiße Seite mit dem Fehler „No input file specified.“
    Was kann ich tun um das rückgängig zu machen?
    Gruß unzi

    • Ansas sagt:

      Hi Unzi,

      bei mir läuft ein Apache, der Standardmäßig unter User „www-data“ läuft.

      Kann es denn sein, dass Du einen anderen Webserver im Einsatz hast oder der Apache so eingestellt ist, dass dieser unter einem anderen Usernamen (bzw. Gruppe) läuft?

      Das ist beispielsweise sehr oft bei Webspace Paketen diverser Hostinganbieter der Fall. Da Du aber sogar root Zugriff hast, scheint das eher nicht der Fall zu sein, oder?

      Rückgängig machen lässt sich das natürlich durch Einspielen eines Backups ;) Ansonsten mal schauen, unter welchen Usernamen:Usergruppen andere Webprojekte laufen und dann entsprechend den Befehl anpassen und nochmal ausführen. Ein „Rückgängig machen“ geht so nicht mehr.

      VG Ansas

  3. Dieter sagt:

    Erst mal danke. Hat mir auch geholfen! :)
    Nun habe ich Buddypress installiert. Die Installation hat auch funktioniert, aber es lassen sich weder Profile noch Aktivitäten anzeigen. Also alles was mit Buddypress zu tun hat funktioniert nicht im Frontend. Im Backend schon. Also alle Einstellungen sind möglich. Dann habe mal für alle möglichen Dateien 755 erteilt, aber keine Besserung. An was könnte es noch liegen? Installiert ist WordPress auf einem Root-Server mit Linux Ubuntu. Vielen Dank für eine Antwort, falls es noch jemand liest. :)

    • Ansas sagt:

      Ja, das liest hier noch jemand ;)

      Also, die Dateien sollten wenn möglich 644 oder weniger Berechtigungen erhalten, die Ordner 755 (oder auch weniger).

      Ich kann mir vorstellen, dass Buddypress ggf. wg. falscher Berechtigungen nicht sauber installiert wurde, jedoch keine sauberen Fehlermeldungen geworfen hat.

      Einfach mal versuchen sowohl die „chown“ als auch „chmod“ Befehle nochmal auszuführen. Sollte das nicht helfen danach das Plugin einmal deinstallieren und nochmal installieren.

      Sollte das auch nicht helfen einfach nochmal Google & Co. befragen, da ich Buddypress nicht nutze.

      VG und viel Erfolg ;)

  4. Ananas sagt:

    Hat auch mein System zerschossen, obwohl Apache als www-data läuft. Bitte Warnhinweis angeben, suche schon seit Stunden seit einer Lösung………………..

    • Ansas sagt:

      Ist das System erst seit der Anpassung der Userberechtigungen (chmod & chown) zerschossen? Komisch, denn bei mir gab es bislang keine Probleme. Ein kurzed Feedback hierzu wäre super!

      Einfach mal schauen, was denn nun das tatsächliche Problem ist:

      1. ins Installationsverzeichnis wechseln und die wp-config.php öffnen (siehe oben).
      2. das Debugging aktivieren: define(‚WP_DEBUG‘, true); define(‚WP_DEBUG_LOG‘, true);
      3. die WordPress Seite im Browser aufrufen
      4. in den Logs schauen: tail wp-content/debug.log
      5. Problem(e) beheben
      6. Debugging wieder deaktivieren

  1. 14. Januar 2015

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.