PHPの本家サイトでflockの説明を読んでいたら、以下の変更履歴に気がつきました。 5.3.2 ファイルのリソースハンドルを閉じたときにロックを自動的に解放する機能が削除されました。 ロックの解放は、常に手動で行わなければなりません。 http://php.net/manual/ja/function.flock.php ところがネットの解説を見ると、ロック開放はflock($fp, LOCK_UN); ではなく、fcloseでやれとしている解説が結構あります。 (4)fcloseの前にflock解除するな … fcloseの前にflock(ファイルポインタ, LOCK_UN) する人は実に多いのですが、これははっきりと間違いだと断言します @ITのPHPの記事が突っ込みどころ満載 - 暴言満載 LOCK_UNは普通は使われない。ロック開放はfclose()関数でやるのが鉄則。 http
![PHP5.3.2以降ではfcloseで自動的にアンロックされない](https://cdn-ak-scissors.b.st-hatena.com/image/square/7e857f49573f54aee3092b1445ee4d132f20d673/height=288;version=1;width=512/https%3A%2F%2F64.media.tumblr.com%2Ff9adcee4e7901e9e2d0c60d8bb94339d%2F2d0707ea3ffc5aab-57%2Fs500x750%2F2a3a323fb30ad7336fc12e25015d32bb47336024.png)