Gelöst: Worpress 2.5.1 – Automatisches Plugin-Update funktioniert nicht

Dem ein oder anderem wird es sicher auch schon so gegangen sein, man möchte die Auto-Update Funktion der Plugins nutzen aber leider erscheint nur eine Fehlermeldung:

Plugins aktualisieren

Warning: ftp_rawlist() [function.ftp-rawlist]: Unable to create temporary file. Check permissions in temporary files directory. in
/is/htdocs/wpxxxxxx_xxxxxx/lms2/wp-admin/includes/class-wp-filesystem-ftpext.php on line 327

Warning: ftp_rawlist() [function.ftp-rawlist]: Unable to create temporary file. Check permissions in temporary files directory. in
/is/htdocs/wpxxxxxx_xxxxxx/lms2/wp-admin/includes/class-wp-filesystem-ftpext.php on line 327

WordPress-Verzeichnis nicht gefunden.

Ein Blick ins deutsche WordPress-Forum offenbart dann auch schnell das es zwar schon andere User mit diesem Problem gab, aber keine generelle Lösung existiert. Da die dort genannten Vorschläge
bei mir leider nicht halfen habe ich mich mal etwas weiter mit der Materie bzw Google und  WordPress trac auseinander gesetzt und eine Lösung gefunden die nun bei mir funktioniert und auch bei weiteren Usern laufen sollte. Ein Teil des Problems scheint ein Bug im WP-Code zu sein, der sich wohl je nach verwendetem Hoster auswirkt oder auch nicht. Bei Hosteurope funktioniert es so z.B. nicht.

Es gibt eine kurze und einfache Lösung aber auch eine etwas längere. Aber alles der Reihe nach.

Die folgende Anleitung bezieht sich auf WordPress Version 2.5.1, dürfte aber auch in 2.5 oder nachfolgenden Versionen funktionieren falls der Fehler bis dahin noch nicht behoben wurde. Alle Änderungen geschehen auf eigenes Risiko, ich hafte für nichts.

Lösung:
In der Datei “wp-admin/includes/file.php” muss in Zeile zeile 324

if ( getmyuid() == fileowner($tempFile) )

in

if ( posix_getuid() == fileowner($tempFile) )

geändert werden

Damit müsste das Auto-Update nun funktionieren, Vorausgesetzt die Rechte der Plugin-Ordner sind per Chmod auf 777 gestellt und das Plugin ist in der korrekten Ordnerstruktur hochgeladen worden ohne zusätzliche Dateien mit in den Ordner zu packen. Die Codezeile stammt ursprünglich von hier .

Erweiterte Lösung:

Zusätzlich kann man dann in die Datei “wp-config.php” eine Definition für das Temp-Verzeichnis von WordPress erstellt werden. Dies geschieht über

define(‘WP_TEMP_DIR’, ini_get(‘upload_tmp_dir’));

Die Zeile einfach unter die anderen “define” Zeilen in der Datei “wp-config.php” einfügen.  Über diese Angabe wird WordPress das gewünschte Temp-Verzeichnis mitgegeben. Leider ist es mir bisher nicht gelungen die korrekte Angabe für ein selbstgewähltes Verzeichnis zu finden, vielleicht hat ja jemand eine Idee hierfür.

Ich hoffe dies hilft dem ein oder anderen die Update-Funktion in WordPress in Betrieb zu nehmen. Falls es noch fragen oder anregungen gibt könnt ihr diese gern in den Kommentaren hinterlassen.

EDIT:
Hier eine neue und bessere Lösung.

20 thoughts on “Gelöst: Worpress 2.5.1 – Automatisches Plugin-Update funktioniert nicht

  1. Pingback: (un)zeitgemäße betrachtungen

  2. Leider ist es mir bisher nicht gelungen die korrekte Angabe für ein selbstgewähltes Verzeichnis zu finden, vielleicht hat ja jemand eine Idee hierfür.

    define('WP_TEMP_DIR', ABSPATH . 'wp-content/tmp');

    Gruß Thorsten

  3. Ich habe die Angabe define(‘WP_TEMP_DIR’, ABSPATH . ‘tmp’); verwendet. Dennoch kann der Befehl ftp_rawlist nicht ausgeführt werden, da er offenbar immer noch auf /tmp zugreifen will :-( . Habe auch Zeile 451 (das war die einzige in der ich den genannten Code finden konnte)
    if ( getmyuid() == fileowner($temp_file) ) durch //if ( posix_getuid() == fileowner($temp_fle) )
    ersetzt – keine Änderung. Die Fehlermeldung ist:
    Warning: ftp_rawlist() [function.ftp-rawlist]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/web136/:/usr/bin/) in /var/www/web136/html/wp/wp-admin/includes/class-wp-filesystem-ftpext.php on line 197

    Warning: ftp_rawlist() [function.ftp-rawlist]: Unable to create temporary file. Check permissions in temporary files directory. in /var/www/web136/html/wp/wp-admin/includes/class-wp-filesystem-ftpext.php on line 197

    WordPress-Pluginverzeichnis konnte nicht gefunden werden.

    Die Installation ging schief

  4. Pingback: wordpress und automatische updates der plugins | zoukblog

  5. Pingback: Automatische aktualisieren funktioniert nicht - Seite 2 - WordPress Deutschland Forum

  6. So, in 2.6.2 ist es in file.php die Zeile 451 und es muss
    if ( posix_getuid() == fileowner($temp_file) )
    ohne “{” heißen.

    BTW: Vielen Dank, jetzt funktioniert es auch hier wunderprächtig!

  7. Hallo Aurora,

    ich krieg’s auch nicht hin. Ich hab bei WP 2.6.3 den genannten Code ersetzt, in Zeile 451, mit und ohne die eine Klammer (oder müssen beide weg?). In der wp-config hab ich auch den einen und den anderen Code eingesetzt und bekomme auch sowas hier:

    Warning: ftp_rawlist() [function.ftp-rawlist]: Unable to create temporary file. Check permissions in temporary files directory. in /is/htdocs/xxxxxxxxxxxxxxx/www/text-deluxe.de/wp-admin/includes/class-wp-filesystem-ftpext.php on line 192

    Unable to locate WordPress Plugin directory.

    Installation Failed

    Weiß dazu vielleicht jemand einen Rat? Ich wäre sehr sehr dankbar, denn das Feature finde ich so toll, bei anderen Hostern klappt’s reibungslos, bei Hosteurope irgendwie nicht.

    Vielen lieben Dank im Voraus, falls jemandem dazu etwas einfallen sollte.

    Tina

  8. Ah, ich hab’s nochmal probiert, jetzt geht’s auch hier. Allerdings scheint WordPress alte Plugins nicht entfernen zu können – gibt es dazu noch einen Tipp?

  9. @textdeluxe

    Bei “alten” Plugins mußt du alle Dateien und Ordner per FTP mit den Rechten 777 versehen. Danach sollte es klappen.

  10. Pingback: Ginchens Blog » Automatische Updates in Wordpress

  11. Pingback: ononlinework – Das automatische Update von WordPress

  12. Pingback: fotopie » wordpress und automatische updates der plugins

  13. Pingback: Automatische Updates in Wordpress | Ginchens Blog

  14. Pingback: Braucht Wordpress 2.7 bereits PHP5?

  15. Pingback: ???????_ftp_rawlist() [function.ftp-rawlist]: Unable to create temporary file. Check

  16. Pingback: Das automatische Update von WordPress » Programmierung, WordPress » seostefan

Hinterlasse eine Antwort

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

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>