それがMAMPの問題であると理解するのにとても長くかかりました!Webサイトのテストに使用することになっているアプリで、OPcacheがデフォルトで有効になり、php.iniを無効にする必要があるのはなぜですか?とにかく、このスレッド全体を読み、さまざまな解決策を試しました。
ここでは、各ソリューションがどのように機能するか、およびソリューションを選択する際の考慮事項についての私のメモです。
各ソリューションは独自に機能します。冗長性は必要ありません。
ウェブページコードソリューション
opcache_reset();
<?php opcache_reset(); ?>
- ウェブページのコードに追加する必要があります。
- すべてのスクリプトを強制的に再読み込みします。
- MAMPサーバーを再起動せずに動作します。
サーバー構成ソリューション
重要:ではなくで
php.ini
ファイルを使用してください。別のバージョンのPHPを使用している場合は、適宜調整してください。/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
/Applications/MAMP/conf/php5.5.3/php.ini
enable = 0
[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
enable=0
- の下
[OPcache]
に追加する必要がありますphp.ini
。
- OPcacheを無効にします。
- MAMPサーバーの再起動が必要です。
opcache.revalidate_freq = 0
[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=0
opcache.fast_shutdown=1
opcache.enable_cli=1
- の
opcache.revalidate_freq
下[OPcache]
で変更しphp.ini
ます。
- OPcacheが60秒ごとではなく0秒ごとに更新をチェックするようにします。
- MAMPサーバーの再起動が必要です。
コメントアウト[OPcache]
;[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]
セクション全体をコメント化しphp.ini
ます。
- PHPサーバーからOPcacheを削除します。
- MAMPサーバーの再起動が必要です。
考慮事項
次の場合は、ウェブページのコードソリューションを選択してください。
- 特定のプロジェクトのスクリプトを強制的に更新する必要があるだけです
- MAMPサーバーを再起動したくない
- php.iniを編集したくない
次の場合は、サーバー構成ソリューションを選択します。
- すべてのプロジェクトでキャッシュを実行する代わりに、デフォルトでキャッシュを無効にしたい
- php.iniの編集に慣れている
私enable=0
にとっては、これが最も簡単な解決策であり、デフォルトでキャッシュを無効にする必要があるため、個人的に好みます。
参考文献