Hallo,
in verschiedenen Forumsbeiträgen wird vorgeschlagen, mit Hilfe der Umgebungsvariablen TMPDIR und der Konstanten WP_TEMP_DIR in der wp-config.php den Pfad auf ein Verzeichnis für temporäre Dateien einzustellen. Beispielsweise mit folgenden Anweisungen:
Zumindest ab WordPress 3.0 sind diese Zeilen meist überflüssig.
Dies liegt daran, dass der Webhoster in der Regel in der php.ini bereits den Pfad auf ein geeignetes Verzeichnis konfiguriert hat. Ob dies der Fall ist, lässt sich mit Hilfe einer kleinen PHP-Datei, in der die Funktion phpinfo() aufgerufen wird, überprüfen:
In der angezeigten Info im Abschnitt "PHP Credits - Configuration - PHP Core", Spalte "Local Value" wird der Inhalt der zuständigen Konfigurationsvariablen "upload_tmp_dir" angezeigt.
Bei der Suche nach einem Verzeichnis für temporäre Dateien fragt WordPress nun genau diese Konfigurationsvariable ab. Nur wenn das nicht erfolgreich ist, wird die Umgebungsvariable TMPDIR abgefragt:
// "wp-includes/text/diff.php", ab Zeile 223:
function _getTempDir()
{
$tmp_locations = array('/tmp', '/var/tmp', 'c:\WUTemp', 'c:\temp',
'c:\windows\temp', 'c:\winnt\temp');
/* Try PHP's upload_tmp_dir directive. */
$tmp = ini_get('upload_tmp_dir');
/* Otherwise, try to determine the TMPDIR environment variable. */
if (!strlen($tmp)) {
$tmp = getenv('TMPDIR');
}
// ...
Alles anzeigen
Im Fall der Konstanten WP_TEMP_DIR erfolgt die Abfrage von "upload_tmp_dir" erst dann, wenn WP_TEMP_DIR nicht definiert ist
"wp-admin/includes/file.php", ab Zeile 151:
function get_temp_dir() {
static $temp;
if ( defined('WP_TEMP_DIR') )
return trailingslashit(WP_TEMP_DIR);
// ...
$temp = ini_get('upload_tmp_dir');
if ( is_dir($temp) && @is_writable($temp) )
return trailingslashit($temp);
// ...
Alles anzeigen
Die Funktion "trailingslashit" ergänzt übrigens bei Bedarf einen am Ende des Pfades fehlenden Slash "/".
Gruß,
upscho