Home

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

Samstag, 21. Juni 2008 | Autor:

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.

Tags »
Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können. MisterWong del.icio.us Technorati Digg StumbleUpon Y!GG

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Wordpress & mehr

Diesen Beitrag kommentieren.

20 Kommentare

  1. 1
    Thorsten 

    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

  2. 2
    aurora 

    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

  3. 3
    Mario 

    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!

  4. 4
    Andreas 

    Danke für den Tip. Endlich konnte ich Akismet auch mal automatisch aktualisieren :-)

  5. 5
    -.ZacK.- 

    Ein riesengroßes Dankeschön!
    Ich habe auch 3 Tage damit gekämpft, bis ich auf diesen schönen Beitrag stieß…

  6. 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

  7. 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?

  8. 8
    Benni 

    Danke sehr!

  9. 9
    LastOne 

    @textdeluxe

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

  10. 10
    LastOne 

    Ich habe oben mal einen Link zu einer neuen und besseren Variante der Problemlösung ergänzt. :)

  1. 11
    (un)zeitgemäße betrachtungen (via Pingback)

    links from Technorativon 2.7.1 diesen neuen Automatismus erstmalig testen wollte. Egal mit welchem Browser ich es versucht â?? das Update wollte einfach nicht laufen. Nachdem ich mich gestern zun?¤chst ??ber das Thema“Automatische Plugin-Updates†in einem absoluten Irrwegverlaufen hatte (diese L??sung brachte bei mir au??er PHP-Fehlermeldungen ??berhaupt nichts), bin ich nun endlich auf eine funktionierende L??sung gesto??en: Wer wie ich beim Update scheitert, sollte diese Anleitung befol

  2. [...] dieses Artikels konnte ich endlich die automatischen Updates der WordPress-Plugins bei meinem Webhoster Host Europe [...]

  3. [...] die wp-config.php erweitern. Eine genaue Anleitung dazu hab ich auf meiner Seite ver?ffentlicht: LastManStanding.de – WordPress – Gelöst: Worpress 2.5.1 – Automatisches Plugin-Update funktioniert … Ich hoffen es hilft dem ein oder anderen Ge?ndert von LastOne (21.06.2008 um 00:40 [...]

  4. [...] Jetzt aber zeigt WordPress im Backend zwar an, wenn neue Updates für Plugins verfügbar sind, jedoch gibt es dort keinen direkten Downloadlink zur .zip-Datei mehr. Das hätte also bedeutet, daß ich jedes Plugin selbst auf wordpress.org hätte suchen müssen bzw. jedesmal die Homepage des Autoren hätte besuchen müssen, um dort die aktuelle Version als .zip-Datei herunterzuladen. Extrem nervig! Das gab mir also Anlaß, mich noch einmal auf die Suche nach einer Lösung zu machen, und siehe da, ich fand eine, die ich für WordPress 2.7nur ganz leicht abwandeln mußte![1] [...]

  5. [...] ein paar Monaten hat schon jemand eine Lösung für das Problem gefunden, die jedoch nur über einen Eingriff in die [...]

  6. [...] dieses Artikels konnte ich endlich die automatischen Updates der WordPress-Plugins bei meinem Webhoster Host Europe [...]

  7. [...] Jetzt aber zeigt WordPress im Backend zwar an, wenn neue Updates für Plugins verfügbar sind, jedoch gibt es dort keinen direkten Downloadlink zur .zip-Datei mehr. Das hätte also bedeutet, daß ich jedes Plugin selbst auf wordpress.org hätte suchen müssen bzw. jedesmal die Homepage des Autoren hätte besuchen müssen, um dort die aktuelle Version als .zip-Datei herunterzuladen. Extrem nervig! Das gab mir also Anlaß, mich noch einmal auf die Suche nach einer Lösung zu machen, und siehe da, ich fand eine, die ich für WordPress 2.7 nur ganz leicht abwandeln mußte.[1] [...]

  8. [...] kurzer Workaround nach dieser Anleitung stellte zumindest den Fehler beim automatischen Upgrade ab. putenv(”TMPDIR=/der komplette Server [...]

  9. [...] [...]

  10. [...] ein paar Monaten hat schon jemand eine Lösung für das Problem gefunden, die jedoch nur über einen Eingriff in die [...]

Kommentar abgeben