web-dev-qa-db-ja.com

MAMPのPHP 5.5.3のキャッシュを停止します

PHP 5.5.3を使用して、新しいMacbookにMAMPをインストールしました。

再読み込みと更新は何もしません。まだ何もありません。 Googleが数分間探して、何が間違っているのかを見つけ、戻ってきてリフレッシュします。できます。一体何?

Php.iniにアクセスして、すべての新しいOPcacheを無効にし、デフォルトのキャッシュ時間を0に設定しました。ドキュメントにヘッダーを追加して、キャッシュを強制しません。それでも同じ問題。ここで一体何が起こっているのでしょうか?

ネットワークタブにはHTTP 200リクエストが表示されているため、index.phpファイル内の新しいHTMLは問題なくレンダリングされますが、サーバーでレンダリングする必要のある新しいPHPは遅延し、事前に設定された変更する方法がわからない時間のセット。どうしたの?

Safariでもこれをチェックしたので、ファイルがレンダリングされないようにするのは間違いなくサーバーの問題です。

興味深い事実ですが、MAMPにアクセスしてPHPバージョンを古いバージョン(PHP 5.2など)に変更すると、「キャッシュの問題」なしで正常にレンダリングされます。 PHP 5.5に切り替えると、ハングアップします。 MAMPプリファレンスでは、5.5のキャッシュオプションは存在せず、自動的に無効になります。

123
Daron Spence

OPCacheを無効にする

MAMPはデフォルトでOPCacheをオンにします。php.iniファイルを編集することで無効にすることができます。正しいphp.iniを必ず編集してください。

私自身も同じ問題に直面していました。 PHPバージョン5.5.3を使用したMAMPは、デフォルトでOPcacheを実行しますが、古いPHPバージョン5.2.17のようにGUIで無効にすることはできません。 php.iniファイル(MAMP/bin/php/[version] /conf/php.ini)の最後にあるすべてのOPcache行を手動でコメントアウトし、変更を有効にするためにサーバーを停止および起動する必要があります。効果。

URIを更新しました。変更はphpフォルダーの下の/ conf /も変更することで反映できますが、MAMPは再起動後にこれらを無視するようです

206
Jonathan Kaiser

このキャッシュを停止するために、メインPHPにopcache_reset();を追加しました。

php5.5.3/conf/php.iniからそれを削除しても、何もしませんでした。

編集

/Applications/MAMP/bin/php/php5.5.3/conf/php.iniもあります。そこにコメントすれば機能します。

39
Joeri

1)/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2)opcache.revalidate_freq = 0を設定します
3)MAMPを再起動します

26
Lagi

それがMAMPの問題であると理解するのに長い時間がかかりました! OPcacheがWebサイトのテストに使用されるはずのアプリで、デフォルトで有効になっている(無効にするにはphp.iniをいじる必要がある)のはなぜですか?とにかく、このスレッド全体を読み、さまざまな解決策を試しました。

各ソリューションがどのように機能するか、ソリューションを選択する際の考慮事項についてのメモがあります。

各ソリューションは独自に機能します。冗長性は必要ありません。


Webページコードソリューション

opcache_reset();

<?php opcache_reset(); ?>
  • Webページのコードに追加する必要があります。
  • すべてのスクリプトを強制的に再ロードします。
  • MAMPサーバーを再起動せずに動作します。

サーバー構成ソリューション

重要:php.iniではなく、/Applications/MAMP/bin/php/php5.5.3/conf/php.ini/Applications/MAMP/conf/php5.5.3/php.iniファイルを使用します。別のバージョンのPHPを使用している場合は、それに応じて調整してください。

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サーバーの再起動が必要です。

考慮事項

次の場合は、Webページコードソリューションを選択します。

  • 特定のプロジェクトのスクリプトを強制的に更新する必要があります
  • MAMPサーバーを再起動したくない
  • Php.iniを編集したくない

次の場合、サーバー構成ソリューションを選択します。

  • すべてのプロジェクトでキャッシュを無効にする代わりに、デフォルトでキャッシュを無効にしたい
  • Php.iniの編集に慣れている

個人的にはenable=0が好きです。これは私にとって最も簡単な解決策であり、デフォルトでキャッシュを無効にする必要があるからです。


参照資料

10
Feanne

MAMP 3.0.7.2 for OS X

これは最終的にGUIオプションのようです。 MAMP 3.0.7.2 for Mac OS X

4
jibiel

それが何であるかを理解しようとして約1時間を費やすのは苦痛でした。

これをコードの最後に追加して、MAMPを再起動しました。

  opcache.revalidate_freq=0
  opcache_reset();
3
Huroman

ああ、このスレッドを見つけてよかった!私は髪を引っ張っていました!昨日MAMPをアップグレードしましたが、プロジェクトの作業中に今日までこのキャッシュの問題に気付きませんでした。私は心を失っていると思った。 「/Applications/MAMP/conf/php5.5.3/php.ini」ファイルopcache.enable = 0の一番下を変更しました

2
intheusa

「/Applications/MAMP/conf/php5.5.3/php.ini」を編集し、[OPcache]を検索して、その下にこのコードを直接追加します。

opcache.enable=0

これにより、MAMPサーバーでPHPを使用するときにopcacheが無効になります。

2
aakatheeri

これは、WindowsバージョンのMAMPでも同様です。

C:\ MAMP\conf\php5.6.3\php.ini

ファイルの一番下にリストされています。

私が見つけた他の問題は、QNAP NAS TS-431にありました。このキャッシングも有効になっており、動的に変化するファイルを使用している場合、またはそのファイルで開発しようとすると、髪の毛が抜け落ちます。他のコメントに従って、コメントアウトしてください。設定は次の場所にあります。

コントロールパネル/アプリケーション/ Webサーバー/PHP.iniメンテナンス。

もう一度、設定はファイルの下部にあります。

1
vr_driver