PHP не может find tmp directory

У меня проблемы с функциями, которые создают файлы в каталоге tmp, такими как tmpfile () и tempnam () . Кажется, все они не могут записывать в tmp и return false. upload_tmp_dir установлен в php ini, и загрузка файлов работает нормально.

При отладке этой ошибки я обнаружил, что sys_get_temp_dir () получает местоположение каталога tmp, к сожалению, это не так. поддерживается в моей версии PHP (5.1.6). Я также видел, что использование следующего метода заменяет функциональность sys_get_temp_dir () :

if ( !function_exists('sys_get_temp_dir')) {
  function sys_get_temp_dir() {
    if (!empty($_ENV['TMP'])) { return realpath($_ENV['TMP']); }
    if (!empty($_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
    if (!empty($_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
    $tempfile=tempnam(__FILE__,'');
    if (file_exists($tempfile)) {
      unlink($tempfile);
      return realpath(dirname($tempfile));
    }
    return null;
  }
}

Но в массиве $ _ENV нет ссылки на каталог tmp, и tempnam () не работает, как я упоминал ранее.

Также не установлен open_basedir, что, как я слышал, может вызвать аналогичные проблемы

Как я могу узнать, где находится каталог tmp и установлен ли он вообще?
Это проблема конфигурации сервера apache или PHP?

Спасибо за вашу помощь

5
задан DonutReply 21 June 2011 в 12:13
поделиться