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.