WordPress benötigt Zugriff per FTP auf deinen Webserver – Fehlermeldung
Nach einer frischen WordPress Installation will man ja meist gleich loslegen. Zum Beispiel indem man benötigte Plugins oder Themes installiert. Das funktioniert bei WordPress normalerweise schnell und elegant per „on-click“ Installation im WordPress Backend. Hierbei kann es jedoch vorkommen das man auf diese Fehlermeldung stößt:
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.
Das dürfte dann in etwa so aussehen:
Stößt man auf diese Fehlermeldung liegt dies eigentlich immer an einem „Problem“ mit den Rechten des Datei-Besitzers. Läd man beispielsweise alle WordPress Dateien vor der Installation mit seinem eigenen FTP Account hoch, „gehören“ auch alle Dateien diesem FTP User. In der Regel wird WordPress aber bei einem Apache Server über den User www-data
ausgeführt. Dieser hat nun aber nicht das Recht in einem Verzeichnis, dass ja eurem FTP User gehört, neue Dateien und Ordner anzulegen. Aus sicherheitstechnischer Sicht ist diese Teilung sogar gut: Jemand der WordPress hackt, kann icht ohne weiteres den Rest des Servers kapern und umgekehrt.
Dennoch kann es Gründe geben dies zu umgehen.
Die Lösung(en)
Um das Problem zu beheben gibt es ein paar einfache Mittelchen.
Per SSH
Achtung! Diese Lösung funktioniert nur bei einem Apache Server.
Das einfachste ist es wenn ihr euch per SSH mit eurem Server verbindet. Und mit:
cd /pfad/zu/wordpress
in euer WordPress Root Verzeichnis wechselt. Der Pfad /pfad/zu/wordpress muss natürlich von euch angepaßt werden.
Gebt dann folgendes ein:
find . -exec chown www-data:www-data {} \;
Damit ist der User „www-data“ wieder der Besitzer und die Installation von Plugins und Themes sollte wieder wie gewohnt funktionieren.
Per wp-config.php
Öffne die Datei „wp-config.php“ in deinem WordPress Root Verzeichnis und füge folgende Zeile (am besten unten an das Ende der Datei) hinzu:
define('FS_METHOD', 'direct');
Speichere sie wieder. Wenn du die Datei nicht direkt auf dem Server bearbeitet hast, lade sie wieder hoch und ersetze die alte Datei damit.
Achtung! Diese Methode zwingt WordPress dazu Dateiänderungen auch von anderen PHP Usern zuzulassen. Dies kann ein Sicherheitsrisiko darstellen. Daher solltet ihr immer die erste Methode (per SSH) bevorzugen.
Hallo Holger,
erst vor kurzem stand ich vor diesem Problem, dass ich beim merhmaligen Installieren von Plugins und Themes immer wieder meine FTP-Daten eingeben musste. Das ist sehr nervig und daher nutze ich ab sofort die Methode über die wp-config.php, die ich noch ergoogelt habe und diesen Artikel hier habe ich erst heute entdeckt.
Weitere PHP-User sind bei mir nicht existent, da ich der einzige bin, der auf dem Managed Server die Installation nutzt.
Dennoch gut zu wissen, dass es hierfür brauchbare Lösungen gibt, mit denen man gut arbeiten kann.
Hallo Holger,
vielen Dank für den Artikel! Hatte das Problem gerade mit einer lokalen Installation, die zwar im C-Verzeichnis liegt aber mit einem Apache aus dem Windows Subsystem for Linux läuft, und die Änderung des Users hat es behoben 🙂
LG
Florian
Vielen Dank, genau das habe ich gesucht! 🙂
Vielen Dank 😉 hat auch gleich funktoniert
Danke für den Artikel. Hat mir bis jetzt auch weitegeholfen.
Hab nun, per wp-config.php, alles wie oben beschrieben gemacht.
Jetzt wollte ich mich wieder bei WordPress anmelden und es kamen 7 dieser Fehlermeldungen ( mit jeweils anderen Zahlen am Ende).
„Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/wp-config.php:1) in /var/www/html/wp-login.php on line 453“
Kann mir da jmd. weiterhelfen?
LG
Angelo
Auch wenn schon alt, hat dieser Artikel mir jetzt geholfen. 🙂