WordPress fragt nach Zugriff auf den Webserver

WordPress fragt nach Zugriff auf den Webserver bei der Installation von Updates oder Plugins? Das kann an fehlenden Schreibrechten für WordPress auf das Dateisystem des Servers liegen. Deshalb geht WordPress bei jedem Update oder Plugin-Installation den Umweg über den FTP-Server. Langfristig ist das störend. Diese Anleitung stellt mehrere Lösungen vor, wie WordPress Zugriff auf den Webserver erhält um Updates automatisch ausführen zu können.

Jedesmal wenn ihr ein Update von WordPress macht, ein Update eines Plugins zieht oder ein neues Plugin installiert, nimmt WordPress Änderungen am Dateisystem des Servers vor. Bevor Änderungen vorgenommen werden, prüft WordPress, ob es die Änderungen am Dateisystem direkt vornehmen kann. Sollte WordPress die Berechtigungen für einen direkten Zugriff nicht haben, wird der Benutzer nach den Login-Daten für den FTP-Server gefragt um die Änderungen darüber vornehmen zu können.

WordPress fragt nach Zugriff auf den Webserver
WordPress fragt nach Zugriff auf den Webserver (Bild: Screenshot).

WordPress fragt nach Zugriff auf den Webserver

Das Problem tritt immer dann auf, wenn WordPress manuell auf den via FTP auf den Server hochgeladen und danach die Installation ausgeführt wurde. Dadurch ist das WordPress Core mit den Besitzerrechten des FTP Nutzers, mit dem die WordPress Dateien hochgeladen wurden, versehen.

Alle Tätigkeiten aus dem WordPress System heraus, dazu gehören auch Updates und das Installieren von Plugins, werden Server-intern durch einen anderen Nutzer ausgeführt. Je nach System heißt der Nutzer oft PHP-User, www-User, www-data oder anders. Diesem Nutzer fehlen die Zugriffsrechte auf die entsprechenden Ordner. Das Problem lässt sich unterschiedlich lösen.

Besitzerrechte der WordPress Installation ändern

Die beste aber nicht einfachste Lösung ist, dass das Script welches auf das Dateisystem schreiben möchte zum gleichen Nutzer gehört wie der Apache-Server. Viele Webhoster lassen die Apache-Instanz unter dem Namen des Benutzer-Kontos des Kunden laufen. Das ist der einfachste Fall. Lässt der Webhoster den Apache als System-User laufen aber die Dateien gehören zum Konto des Kunden, kommt diese Lösung nicht in Frage.

Gibt der Webhoster root-Zugriff oder WordPress ist auf einer eigenen Entwicklungsumgebung installiert, sollte es möglich sein WordPress die notwendigen Berechtigungen für den Zugriff auf das Dateisystem zu geben. Dazu müsst ihr wissen, unter welchem User Apache läuft und die Besitzrechte für das gesamte WordPress Menüverzeichnis auf diesen Nutzer ändern.

Beispiel: Läuft Apache als „httpd“ lassen sich mit folgendem Befehl die Besitzrechte ändern:

# chown -R httpd: wordpress

Dabei ist zu beachten, dass nicht alle Versionen von chown gleich sind. Sollte dieser Befehl nicht funktionieren, findet ihr die notwendigen Informationen in der lokalen chown Anleitung. Anschließend hat WordPress Zugriff auf den Webserver.

Dateiberechtigungen für WordPress ändern

Es können auch die Dateiberechtigungen der Ordner plugins, upgrade und themes für denPHP-User des Hosts zum Schreiben freigegeben werden. Am schnellsten geht das über ein FTP-Programm. Die Ordner benötigen die FTP-Rechte 755 und Dateien 644. Anschließend ist der wp-config.php noch eine Zeile hinzuzufügen:

define( 'FS_METHOD', 'direct' );

Diese sollte vor /* That’s all, stop editing! Happy blogging. */ eingefügt werden.

FTP-Zugangsdaten in WordPress speichern

Zu dieser Methode kann ich nicht raten, möchte das Vorgehen hier trotzdem beschreiben. Damit WordPress nicht jedesmal den FTP-Login erfragen muss, können die Login-Daten auch hinterlegt werden. Dann erfolgt der Zugriff eben nicht direkt auf das Dateisystem sondern über den FTP-Umweg. Dazu ist wie folgt vorzugehen:

  1. Via FTP mit dem Webserver verbinden
  2. Die Datei wp-config.php aus dem Hauptverzeichnis herunterladen
  3. In wp-config.php nach folgender Zeile suchen: define(‚FS_METHOD‘, ‚ftpext‘);
  4. Diese Zeile entfernen und wp-config.php wieder auf den Webserver laden
  5. Sollte Schritt 4 nicht funktionieren, sind folgende Zeilen in die Datei einzufügen (beispielsweise ganz an den Anfang, aber nach „<?php“):
    define(‚FS_METHOD‘, ‚direct‘); –> Falls define(‚FS_METHOD‘, ‚ftpext‘); vorhanden, diese entsprechend abändern
    define(‚FTP_BASE‘, ‚/var/pfad/zum/deinem/wordpress‘);
    define(‚FTP_USER‘, ‚ftpusername‘);
    define(‚FTP_PASS‘, ‚ftppasswort‘);
    define(‚FTP_HOST‘, ‚ftp.deine-domain.com‘);
    define(‚FTP_SSL‘, true);
    Die Beispieldaten sind mit den persönlichen FTP-Zugangsdaten zu ersetzen
  6. Datei speichern und wp-config.php hochladen

Wird jetzt ein Plugin installiert oder ein Update durchgeführt, fragt WordPress nicht mehr nach den Zugangsdaten.

WordPress über den Installation-Assistenten des Webhosters installieren

Die langfristig sicherste Methode ist die Installation von WordPress über euren Webhoster. Fast jeder Webhoster bietet zwischenzeitlich die Installation von bekannter Software auf seinem System an. Der Hoster richtet dabei ein fertig installiertes System für den Kunden ein. Dieses System hat definitiv keine Rechteprobleme, ist aber frisch installiert.

Je nach dem wie neu die betroffene WordPress Installation ist, führt dieser Weg zu mehr oder weniger Aufwand. Wenn WordPress erst installiert wurde, hält sich der Aufwand in Grenzen. Läuft die Webseite schon länger und erhält Traffic über Google, muss eine saubere Migration erfolgen. Dazu müssen alle notwendigen Dateien exportiert und anschließend wieder importiert werden. Der Beitrag WordPress Datenbank sichern und wiederherstellen beschreibt das notwendige Vorgehen.

Dabei ist auch an die Plugins und Themes zu denken. Diese können nach der Neuinstallation von WordPress ebenfalls neu installiert werden oder die Ordner „plugins“ und „themes“ werden von Hand gesichert und anschließend wieder auf den FTP geladen. Anschließend müssen in der neuen WordPress Installation die Plugins und Themes noch aktiviert werden. WordPress sollte jetzt Zugriff auf den Webserver haben.

Persönliche Meinung

In meinem Fall habe ich WordPress einfach neu über meinen Webhoster installieren lassen und alles alte verworfen. Dadurch sind nur wenige Minuten Arbeit verloren gegangen und WordPress hat jetzt Zugriff auf den Webserver. Bei einer schon lange laufenden Installation mit viel Traffic wäre ich diesen Weg vermutlich erst einmal nicht gegangen.

Wer sich gerade mit einer Neuinstallation beschäftigt, kann gleichzeitig WordPress auf HTTPS umstellen. Das verschlüsselt die übertragenen Dateien und verbessert gleichzeitig das SEO-Ranking der Beiträge.

Kommentar verfassen