我在使用在 tmp 目录中创建文件的函数(例如tmpfile()
和tempnam()
. 他们似乎都无法写入 tmp 并返回 false。upload_tmp_dir
在 php ini 中设置,文件上传工作正常。
在调试此错误时,我发现sys_get_temp_dir()
不幸的是,我的 PHP 版本(5.1.6)不支持它获取 tmp 目录的位置。我还看到使用以下方法替换了以下功能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 问题?
谢谢你的帮助