Plugin Upgrade: wp-content kann nicht gefunden werden

Ab WordPress 2.7 kann man veraltete Plugins automatisch aktualisieren. Ein schönes Feature, denn das Runterladen, Entpacken, Plugin deaktivieren, hochladen, Plugin aktivieren ist doch etwas kompliziert. Leider funktioniert dieses Feature bei vielen nicht. So bekam ich die Fehlermeldung: Das Verzeichnis „wp-content“ konnte nicht gefunden werden.

Abhilfe schaffte der Hinweis von Alex, am Ende der wp-config.php-Datei folgende Zeilen einzufügen:

[code lang=“php“]

putenv(‚TMPDIR=/__PFAD_ZUM_BLOG_ABSOLUT___/wp-content/tmp‘);
define(‚WP_TEMP_DIR‘, ABSPATH . ‚wp-content/tmp‘);
[/code]

Der absolute Pfad zum Blog ist in der PHP-Variable $_SERVER[‚DOCUMENT_ROOT‘] gespeichert und sieht oft so aus: /srv/www/vhosts/domain.de/httpdocs/.

Neben der Änderung der wp-config.php muss darauf geachtet werden, dass es im Verzeichnis /wp-content/ sowohl ein Verzeichnis /tmp/ wie auch /upgrade/ gibt, die eine 777-Berechtigung haben müssen.

[via AlexWorld]

34 Gedanken zu „Plugin Upgrade: wp-content kann nicht gefunden werden

  1. Ich bin neu in dem Thema und weiß nicht, wie ich den absoluten Pfad zu meinem Blog auslesen kann. Mein Host ist Host Europe. Kann mir jemand helfen?

    Danke & Grüße
    Thorsten

    1. Mach das am besten wie folgt:
      1. lege mit dem Texteditor eine Datei phpinfo.php an, sie hat folgenden Inhalt:

      < ?php phpinfo(); ?>

      (Am Anfang muss < und ?php direkt hintereinander stehen, also ohne Leerzeichen) 2. Lade die Datei in dein WordPress-Verzeichnis 3. Öffne die Datei mit deinem Browser, also http://www.urlDeinesBlogs.de/phpinfo.php
      4. Suche auf dieser ziemlich langen Seite nach DOCUMENT_ROOT. Der Wert rechts daneben ist der absolute Pfad zu deinem Blog

      Grüße
      Christian

      1. Die PHP-Information kriegt man einen Tick einfacher auf der Kommandozeile, ohne Texteditor und Datei anlegen:

        echo „<?php phpinfo() ?>“ | php

  2. Hi,
    mir hilft dein Tipp nicht wirklich.
    Habe jeden deiner Schritte befolgt, aber WP kann immer noch nicht das Verzeichnis wp-content finden.
    Kann es sein, das es an der Funktion fsockopen aus liegt?

    1. Hi!

      Es kommt nach wie vor die Meldung, dass wp-content nicht gefunden werden konnte? Du hast die wp-config.php geändert? Der absolute Pfad zum Verzeichnis stimmt? Hast du eine phpinfo.php angelegt? Was hast du in der wp-config.php bei putenv(‚TMPDIR=/__PFAD_ZUM_BLOG_ABSOLUT___/wp-content/tmp‘); angegeben? tmp und upgrade sind mit 777-Rechten angelegt?

      Wie kommst du darauf, dass fsockopen damit etwas zu tun haben könnte?

      Grüße
      Christian

  3. Danke für deinen schnellen Nachfragen.
    zu 1.: Ja, wp-content kann immer noch nicht gefunden werden.
    zu 2.: Selbstredend habe ich die wp-conf.php geändert, indem ich die beiden Scriptschnippsel ganz unten, vor dem ?> eingefügt habe.
    zu 3.: die phpinfo.php brauche ich nicht, im Cpanel meines Providers steht der absolute Pfad!
    zu 4.: Das hier putenv(’TMPDIR=/home/vol7/******/*********/unterverzeichnis/wp-content/tmp’)
    zu 5: Natürlich haben die beiden Verzeichnisse die 777-Rechte!
    zu 6.: Ich meine, etwas in Bezug auf fsocksopen gelesen zu haben.

    Ich habe noch mehr Provider, bei denen es nicht klappt!
    Besser geschrieben, es geht bei keinem!

    1. Hmm.. Ehrlich gesagt stehe ich momentan etwas aufm Schlauch. Schließlich scheint der Hinweis bei der Mehrzahl zu funktionieren… Es kann natürlich sein, dass der Provider durch restriktive Einstellung das automatische Updaten verhindert, aber mit meinem Hinweis wird ja nur sicher gestellt, dass das Tempverzeichnis gefunden wird, damit dort zwischenzeitlich Daten gespeichert werden können.

      Das Problem mit dem fsockopen würde ja erst bei Zugriff auf entfernte Dateien auftreten..

      Ein Lösungsansatz wäre noch, dem wp-content-Verzeichnis alle Rechte zu geben und per phpinfo.php direkt zu gucken, ob der Pfad stimmt. Vielleicht gibt es ja einen Bug bei deinem Provider mit dem Anzeigen des absoluten Pfads…

      Ansonsten bin ich ziemlich ratlos :(

      Grüße
      crille

  4. Ich verbringe Heute den ganzen Nachmittag mit diesen beiden Zeilen, die ich in meine config.php einfügen soll, damit es endlich mit dem Auto-update von WP 2.8.1 auf 2.8.2 klappt. Ziemlich ärgerlich, denn ich bin kaum zum schreiben gekommen. phpinfo.php brauche ich auch nicht, bei mir steht auch zwei Zeilen im C-Panel: die erste Zeile fängt mit /Pfad/ an und die zweite mit /pfad/tmp.
    Ich habe zuerst mit pfad/tmp versucht, es klappte nicht. Dann mit /pfad, was leider auch nicht geklappt hat. Die beiden Zeilen auch direkt über ?> eingefügt. und im wp-content tmp und uprdage auf 777 gesetzt. Denke gerade an einer manuellen Aktualisierung. Muss man bei einer manuellen Aktualisierung config.php, .htaccess, uploads und Plugins erst mal lokal sichern, neue WP-Version per FTP hochladen und anschliessend die genannten Dateien hochladen und die neuen config.php und anderen überschreiben oder wie ist genau die richtig und sichere Reihenfolge ?

  5. Servus,

    bei mir hats mit eurer Hilfe auch sofort geklappt (übrigens auch bei HostEurope).
    Für alle dies auch versuchen, macht wirklich ALLE Schritte!! In meinen Einstellungen stand ein andere Pfad als die PHP-Info ausgegeben hat, mit der PHP-Info hats sofort geklappt, sehr gut, vielen Dank noch mal.

  6. Hallo,
    danke für den Tipp. Ich kann auch nochmal bestätigen was „preußen-franke“ gesagt hat. Auf jeden Fall mit der $_SESSION den Pfad abfragen, bei mir stand auch etwas ganz anderes als im KIS von HostEurope.

    Aber jetzt klappts tadellos, endlich einfaches Plugins updaten :)

    Danke

  7. Hi,

    schade, wenn ich die wp-config.php wie oben beschrieben ändere bekomme ich folgenden Fehler beim Aufruf der Domain:

    Parse error: syntax error, unexpected ‚=‘ in /is/htdocs/wpxxxxx_xxxxx/xxxx/wp-config.php on line 42

    Habe jetzt schon Stunden damit verbracht!

    Noch jemand diesen Fehler? Bin übrigens bei Hosteurope… Für Hilfe wäre ich sehr verbunden!!!!

    Danke und Gruß
    Oliver

  8. @Oliver:
    Hatte auch diese Fehlermeldung.
    Mein Fehler habe aus versehen beim kopieren von:
    „2.define(‚WP_TEMP_DIR‘, ABSPATH . ‚wp-content/tmp‘);“
    das 2. stehen gelassen :-(
    bei mir sieht es so aus und funzt:
    putenv(‚TMPDIR=/ABSOLUTER PFAD/wordpress/wp-content/tmp‘);
    define(‚WP_TEMP_DIR‘, ABSPATH . ‚wp-content/tmp‘);
    ?>

  9. Ich habe nun auch schon ewig rumgesucht und bin auch trotz dieses Tips nicht weitergekommen. nun habe ich bei meinem hoster angefragt (ud-media)

    und es klappt!

    Sie haben folgendes gemacht:
    Sie haben die Installation auf „PHP über FastCGI“ umgestellt! Dadurch wird die Datei nicht als „apache“ hochgeladen sondern sie gehört sofort dem Ftp-Benutzer.

    vielleicht hilfts dem ein oder anderen..

  10. Bei mir funktioniert es leider immer noch nicht, den Pfad habe ich so angegeben und alles auf 777 gesetzt (das Blog ist ebenfalls bei Host Europe. Verstehe nicht, warum man als WordPress-Blogger überhaupt da hin geht. Ist nicht mein Blog, habe ich also leider keinen Einfluss drauf :-(

  11. Ahhh, musste in den Einstellungen noch den Pfad zum Upload-Ordner angeben, jetzt geht es. Automatisches Upgrade funktioniert noch immer nicht aber das ist nicht so wichtig.

    1. Moin David!

      Hast du mal alle Plugins deaktiviert und dann das automatische Update gestartet? Bei mir hat das geholfen ;o)

  12. Bei hosteurope (und bei vielen anderen Hostern wahrscheinlich auch) reicht der zur Verfügung stehende Arbeitsspeicher nicht aus, um ein wp update auszuführen.

    Das Update bleibt erfolglos bei der Meldung „Unpacking the update.“ stehen.

    Folgende Fehlermeldung erscheint im error log:
    ALERT – script tried to increase memory_limit to 268435456 bytes which is above the allowed value

    Pluginsinstallation etc. sollte aber funktionieren.

  13. Hallo, bin auch ein „Hosteurope-Opfer“. Bei meinen Strato-Blogs funktioniert das Updaten der Plugins nämlich tadellos :( Anyway, ich hab die Schritte durchgeführt, daraufhin hat das update bei zwei Plugins geklappt aber beim dritten hat er dann auf einmal wieder den Pfad nicht gefunden. Ich könnte Kinder kriegen … woran kann das liegen!?

  14. ok, nachdem ich die Plugins alle deaktiviert und wieder aktiviert hatte, ging es dann. Komisch finde ich es trotzdem. Noch ein Tipp, wer Probleme hat den absoluten Pfad rauszukriegen: Wer das XML-Sitemap-Plugin von Arne Brachhold benutzt, da steht der absolute auch drin. Einfach rauskopieren.

  15. Hallo,
    bei mir hatte es zunächst auch nicht geklappt. Hab dann den verlinkten Artikel von Alex gelesen und da unter den Kommentaren einen Hinweis gefunden, dass folgender Code noch besser ist für TMPDIR:

    putenv(‘TMPDIR=’ . ini_get(‘upload_tmp_dir’));

    danach noch das

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

    dann hats bei mir geklappt. Auch Host Europe.

  16. Danke für die tolle Anleitung, auch wenn sie schon etwas älter ist.

    Ich betreibe mehrere Blogs und hatte das Problem bei einem Blog welches auf einer Subdomain bei Host Europe läuft. Dank Deines Artikels funktioieren jetzt endlich automatische Updates.

    Gruß Oliver

  17. Danke!

    Hatte selbiges Problem bei/mit HostEurope.

    Habe nur die beiden Zeilen

    putenv(‚TMPDIR=/is/htdocs/wp123456_abcdefghi/web/wp-content/tmp‘);
    define(‚WP_TEMP_DIR‘, ABSPATH . ‚wp-content/tmp‘);

    (mit korrekten Anführungszeichen) am Ende der wp-config.php hinzugefügt und noch zusätzlich die Ordner /wp-content/tmp und /wp-content/upgrade erstellen und alle betroffenen Ordner mit CHMOD 777 berechtigen müssen.
    Außerdem hatte er mit dem Funktions-FTP Account dann immer noch Probleme mit dem Aktualisieren da er die Verzeichnisse/Dateien nicht löschen durfte. Also am besten immer mit dem ftp Benutzer durchführen mit dem auch alles angelegt wurde!

Schreibe einen Kommentar

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