Wenn Updaten nicht funktioniert und WordPress FTP Verbindungsdaten verlangt…

…stehen bald Schweißperlen auf der Stirn.

Dabei gibt es ein paar relativ einfache Möglichkeiten um WordPress dazu zu bringen, seiner Arbeit ganz normal nachzugehen.

Einstellen der FTP Zugangsdaten in wp-config.php

Oft reicht es einfach, die FTP Zugangsdaten einzugeben und von FTP auf FTPS umzustellen.

Wenn das nicht funktioniert oder das dauernde Eingeben nervt, kann man die Zugangsdaten in der wp-config.php hinterlegen:

define('FS_METHOD', 'direct');
define('FTP_BASE', '/var/pfad/zum/richtigen/wordpress/verzeichnis');
define('FTP_USER', 'meinftpusername');
define('FTP_PASS', 'dasftppasswort');
define('FTP_HOST', 'ftp.meinedomain.com');
define('FTP_SSL', true);

Es kann sein, dass diese Einstellungen nicht gleich funktionieren. In dem Fall muss man sich mit den einzelnen Parametern ein bisschen spielen, und zb FS_METHOD auf auf ftpext, ssh2 o.ä umstellen.
Natürlich kann es sein, dass man SSL nicht verwenden kann. Dann muss man einfach die letzte Zeile weglassen.

Die einzelnen Möglichkeiten sind im WordPress Codex nachzulesen:

 http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

Änderung der Berechtigung am Server mittels SSH

Wenn sich WP oder Plugins nicht updaten lassen kann auch ein Rechteproblem vorliegen. Der erste Schritt ist mal zu schauen, ob die Dateien/Ordner schreibgeschützt sind und dann den User zu überprüfen. Oft ist der FTP-Benutzer ein anderer als der Webserver und wenn da die Gruppe nicht passt, geht das Update nicht weil die Berechtigungen fehlen.

Wenn man SSH-Zugang (SFTP mit Shell) hat, dann kann man die Eigentümer evtl. direkt am Server auf den Webserver-Benutzer ändern (sofern der SSH/SFTP-Benutzer dazu das Recht hat). Der Webserver Benutzer heißt meistens www-data (lässt sich rausfinden indem man ein php-Script hochlädt und dann ausführt, welches eine Datei anlegt).

Mit folgendem Einzeiler kann man den Eigentümer recht zügig ändern:

find . -user <alterBenutzer> -exec chown www-data:www-data {} \;

Der Befehl macht folgendes:

Finde alle Dateien im aktuellen Verzeichnis oder darunter (.) die dem Benutzer <alterBenutzer> gehören und übereigne sie an Benutzer www-data und Gruppe www-data.

UPDATE: Wie ist das mit den Rechten gemeint?

Kurz: Es fehlt die Schreibberechtigung. Die aktuelle WP-Instanz darf eventuell nicht auf die Festplatte schreiben. Also der Benutzer, der für das Ausliefern der Seiten zuständig ist. Auf einem Webserver laufen viele Dienste. Diese werden oft direkt einem Benutzer zugewiesen. Der Webserver auf Linuxgeräten ist oft dem Benutzer „www-data“ zugewiesen.

Wenn der Benutzer “ www-data“ jetzt keine Schreibberechtigung hat, können auch keine Updates durchgeführt werden. Updates lösen ja einen Schreibvorgang auf der Festplatte des Servers aus.

Wenn das Problem bei einer bisher funktionierenden WordPress-Instanz auftritt, kann auch der Host/Server/vServer daran Schuld haben.

UPDATE: Ich kann mich per FTP verbinden, aber diese Daten funktionieren in der wp-config.php nicht!

Das Problem lässt sich oft lösen, indem man mit dem FS_METHOD-Parameter herumspielt.

Es gibt da vier Auswahlmöglichkeiten, die man durchprobieren kann:

Näheres befindet sich im Bereits verlinkten Artikel im Codex zum Thema wp-config.php.

Eine andere Möglichkeit ist, dass der Hoster auf eine sichere Verbindung umgestellt hat, dann muss man FTP_SSL auf true setzen:

define( 'FTP_SSL', true );

Es kann auch sein, dass man den Port explizit angeben muss, wobei 666 nur als (unrealistisches!) Beispiel für den Port herhalten muss. Ein Standard wäre zb der Port 21.

define( 'FTP_HOST', 'ftp.meinedomain.com:666' );

Dont’s

Natürlich könnte man per FTP zb die Verzeichnisrechte auf 777 setzen. Das ist eine ganz ganz schlechte Idee, denn dann hat jeder alle Berechtigungen.

4 Gedanken zu „Wenn Updaten nicht funktioniert und WordPress FTP Verbindungsdaten verlangt…

  1. Hi, genau dieses Problem verfolgt mic aktuell. Ich kann keine PlugIns mehr installieren, weil ich nach meinem FTP Zugang gefragt werde. Nun gebe ich die Daten ein (korrekt, nehme ich an, da mein FTP-Client diese annimmt) und trotzdem funktioniert das nicht. Du schreibst von Rechten… kannst du da ein wenig näher eingehen, was genau du meinst? Oder soll ich mich da direkt an den Provider wenden?

    Am liebsten wäre es mir, wenn dieser FTP-Quatsch gar nicht käme und die PlugIns wie zuvor unproblematisch aktualisiert würden. Hast du da vielleicht einen Tipp?

    VG

    1. Servus! Hab den Artikel aktualisiert – hilft dir das weiter?
      Ich hör bei dir raus, dass es scho mal funktioniert hat. Also kanns mit der Umstellung auf SSL zu tun haben, oder dein Provider/Hoster hat etwas umgestellt.
      Probiers mal mit meinen zusätzlichen Ausführungen, damit sollts hinzubekommen sein.
      Sonst hilft sicher auch die Supporthotline vom Provider. :p

      Und ja, diese Meldungen nerven, ergeben aber Sinn! Es soll ja nicht jeder auf deiner Festplatte beim Provider herumschreiben dürfen…

  2. Ich konnte diesen Fehler folgendermaßen beheben..

    ISPConfig 3.1.12
    Von CGI auf FastCGI wechseln,
    SuEXEC aktivieren
    done!

    Toller Blog by the way

Schreibe einen Kommentar

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