tmpfile()
とtempnam()
のようなtmpディレクトリにファイルを作成する関数に問題があります。それらはすべてtmpに書き込むのに失敗し、falseを返します。 upload_tmp_dir
はphp iniに設定されており、ファイルのアップロードは正常に動作します。PHP tmpディレクトリが見つかりません
このエラーをデバッグすると、sys_get_temp_dir()
は、残念ながら私のPHPバージョン(5.1.6)でサポートされていないtmpディレクトリの場所を取得することがわかりました。
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()
が失敗した:私はまた、次のメソッドを使用してsys_get_temp_dir()
の機能を置き換えことがわかりました。
またopen_basedirの私は同様の問題
を引き起こす可能性があります聞いたどの設定ではありませんどのように私はtmpディレクトリがどこにあるか、それがさえ設定されているかどうかを調べることができますか?
これはApacheサーバーの設定上の問題かPHPの問題ですか?あなたの助けのための
おかげで
php.iniを確認してください。そこにディレクトリがあるはずです。 – Colum
それは何と呼ばれるでしょうか?ありがとう – DonutReply
異なる変数があります。私はupload_tmp_dirとsession.save_pathの下にディレクトリを見つけました。しかし、PHPのデフォルトは/ tmp – Colum