opcache.enableはPHP_INI_ALLなのでプログラム内でも設定の変更が可能
開発環境のwordpressでopcache無効化
ネイティブキャッシュを行うとパフォーマンスがUPするが、
開発時には無効にしておいたほうがデバッグ時にキャッシュの値を確認してしまうなどのミスを事前に防ぐことができるため、開発環境ではopcodeを無効に設定する方法をエントリーしてみたい。
本番環境と開発環境で一つのwordpressを共有する場合は、以下のコードをwp-config.phpに追記する。
if( strpos($_SERVER['HTTP_HOST'], 'dev.') !== false ) { ini_set('opcache.enable', 0); }
上のコードは、リクエストしたURLのドメイン名にdev.というサブドメインが付いている場合はopcacheを無効化している。この方法で、テーマの作成やプラグインの開発時にはネイティブキャッシュを回避し、常時最新の更新が反映されるようになる。
wp-config.phpなどの一部のファイルはキャッシュされるためOpcache Control Panelなどでファイルがキャッシュされていないか気にしておく必要がある。
参考
バーチャルホストごとにキャッシュの有無を設定する方法
apacheのhttpd.conf VirtualHostディレクティブ内でopcacheをオフにすることが可能。
php_flag opcache.enable 0
php.iniでopcacheを有効にしておいても、上の設定を書いておけば、そのバーチャルホストについては、opcacheが機能しなくなる。本番環境と開発環境をバーチャルホストで分割する場合には、この方法も利用できる。