SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

Windows版phpで一時ファイルが作れない現象

問題

Windows版のphpで、tmpfile()関数で一時ファイルが作れなくなりました。以下のプログラムが実行できません。

<?php
    tmpfile();
?>

なぜか分かりませんが、以下のエラーも出ます。

PHP Fatal error:  Maximum execution time of 60 seconds exceeded

答え

phpinfo()にも表示されているが、一時ファイルが生成される場所は \Windows\Temp

\Windows\Temp を確認すると、以下のような状態となっていた。

windows-temp-php

65535という個数や、php + 16進数4桁 + .tmp となっている点から、これ以上作れない状況なのだろうと推測される。

この場合は手動で一時ファイルを削除して復旧した。

Windowsの場合、セッションファイルもデフォルトで \Windows\Temp に生成されるが、自動削除が効いていないことがあったので、一時的なファイルを生成する場所は自分で指定するのがよいかもしれない。

他に

「The File Exists」、「ファイルがあります」、「書き込みができない」、「権限がない」などのエラーになることもある

関連するメモ

コメント