Apr 13

In der aktuellsten WordPress-Version 2.5 wurde ein neues Feature integriert, dass es mittels Klick auf “aktualisiere automatisch” in der Plugin-Liste erlaubt, das jeweilige Modul automatisch zu aktualisieren. Leider wurde bei der Entwicklung ein Fehler beim Auslesen des Upload-Ordners gemacht, der allerdings recht einfach behoben werden kann.

Nachdem man in der Plugin-Liste auf “aktualisiere automatisch” geklickt hat, erscheint die folgende Fehlermeldung, wenn der “upload_tmp_dir” aus der PHP-Konfiguration individuell gesetzt wurde:

Warning:  tempnam() [function.tempnam]:
open_basedir restriction in effect. File(/tmp/) is not within the
allowed path(s):
(/home/www/public_html/) in /home/www/public_html/wordpress/wp-admin/includes/file.php on line 321
Warning:  unlink() [function.unlink]: No such file or directory in /home/www/public_html/wordpress/wp-admin/includes/file.php on line 327

Dieser “Fehler” entsteht, weil nicht der “upload_tmp_dir” ausgelesen wird, sondern der Ordner in der Datei “file.php” nur wie folgt bestimmt wird:

function get_temp_dir() {
    if ( defined('WP_TEMP_DIR') )
        return trailingslashit(WP_TEMP_DIR);
    $temp = ABSPATH . 'wp-content/';
    if ( is_dir($temp) && is_writable($temp) )
        return $temp;
    if  ( function_exists('sys_get_temp_dir') )
        return trailingslashit(sys_get_temp_dir());
    return '/tmp/';
}

Wenn also keiner der Fälle zutrifft, wird einfach “/tmp/” als als “upload_tmp_dir” zurückgegeben, was allerdings nur in der Standardkonfiguration korrekt ist, allerdings auch nicht auf allen Systemen. Dieser “Fehler” lässt sich allerdings sehr einfach beheben, indem man in der Datei “wp-config.php” die folgende Zeile einträgt:

define('WP_TEMP_DIR', ini_get('upload_tmp_dir'));


Verwandte Beiträge

Kommentar schreiben