🐘
PHPソースの変更が反映されないときはOPcacheを疑え
MAMP環境でphpソースを編集していて、何度ブラウザを更新しても古いソースを反映してしまい困ったことがありました。
この現象にブラウザやサーバのキャッシュは関与していないことが分かり、色々調べているとこんなものが。
[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
OPcacheという拡張モジュールが作用していることが分かりました。どうもこのOPcache、PHP 5.5.0から導入されたものらしいです。
適宜設定すればいいのでしょうが、私は全てコメントアウトしました。
(131218追記)ただコメントアウトするのも投げやりなので確かめてみましたが、MAMPが用意しているopcache.revalidate_freq
の数値が60と大きすぎるのが根本的な原因のようなので、本来のデフォルト値の2秒などに設定するという手もあるでしょう。
Discussion