Windows版phpで一時ファイルが作れない現象
問題
Windows版のphpで、tmpfile()関数で一時ファイルが作れなくなりました。以下のプログラムが実行できません。
<?php tmpfile(); ?>
なぜか分かりませんが、以下のエラーも出ます。
PHP Fatal error: Maximum execution time of 60 seconds exceeded
答え
phpinfo()にも表示されているが、一時ファイルが生成される場所は \Windows\Temp
\Windows\Temp を確認すると、以下のような状態となっていた。
65535という個数や、php + 16進数4桁 + .tmp となっている点から、これ以上作れない状況なのだろうと推測される。
この場合は手動で一時ファイルを削除して復旧した。
Windowsの場合、セッションファイルもデフォルトで \Windows\Temp に生成されるが、自動削除が効いていないことがあったので、一時的なファイルを生成する場所は自分で指定するのがよいかもしれない。
他に
「The File Exists」、「ファイルがあります」、「書き込みができない」、「権限がない」などのエラーになることもある
コメント