У меня проблемы с функциями, которые создают файлы в каталоге 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?
Спасибо за вашу помощь