MAMPでPHP 5.5.3のキャッシュを停止する


123

PHP 5.5.3がインストールされた新しいMacbookにMAMPをインストールしました。

再読み込みと更新は何もしません。まだ何もない。グーグルは数分の間、何が問題なのかを見つけ出して、戻って更新します。できます。一体何ですか?

私はphp.iniに入り、すべての新しいOPcacheを無効にし、デフォルトのキャッシュ時間を0に設定しました。キャッシュを強制しないようにドキュメントにヘッダーを追加しました。まだ同じ問題。ここで何が起こっているのですか?

ネットワークタブにはHTTP 200リクエストindex.phpが表示されているため、ファイル内の新しいHTML は正常にレンダリングされますが、サーバーでレンダリングする必要のある新しいPHPは遅延し、事前に決められた一連の時間が経過するまでレンダリングされません。変更する。どうしたの?

これもSafariで確認したので、ファイルがレンダリングされないのはサーバーの問題です。

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


4
特にカスタムスタックをインストールする際にはそれほど簡単ではない、として、私はこれはあなたの問題への解決策ではないことを知っているが、私は個人的にMAMPの大ファンではない-ここに自作を使用してスタックをインストールするには、かなり迅速なガイドです:githubのを.com / josegonzalez / homebrew-php
mewm 2013

@mewmこんなに簡単にできるとは思いもしませんでした。乾杯!これを使用して、ほんの数回のキーストロークでnginxを使い始めました。learnaholic.me/2012/10/10/...
willdanceforfun

回答:


207

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は再起動後にこれらを無視するようです。


4
同じ問題が発生し、opcache行をコメント化することで修正しました。これを変更するためにphp.iniファイルに移動する必要があるのは、ちょっと困惑しています。MAMP-> Preferencesドロップダウンボックスですべてのキャッシュオプションが指定されているように見えるため、実際にはかなり誤解を招く可能性があります。
JaredH 2013年

17
MAMPクリエーターがこの「クールな機能」を追加する際に、体のどの部分を使用して考えていたのだろうと思います。
セルギ2013年

ModXのインストールに何か問題があると思いましたが、いいえ、あなたの答えはそれを修正したようです。ありがとう。さらに、以前のバージョンに戻しました。今ははるかによく実行されます。
vr_driver 2013年

67
php.ini編集するファイルは/ conf ではなく / binにあることに注意してください。私の完全な道はでした/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
ハスキー

私はバグレポートを提出しましたが、うまくいけば、将来のバージョンではデフォルトで無効にされるでしょう:bugs.mamp.info/view.php?id
Husky

38

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

それを削除してphp5.5.3/conf/php.iniも、私には何も起こりませんでした。

編集する

もあることがわかりました/Applications/MAMP/bin/php/php5.5.3/conf/php.ini。そこにコメントアウトすれば動作します。


1
/ binディレクトリのOPcacheをコメントアウトするとうまくいきました!それをありがとう!
daveaspinall 2013年

php.iniでOPcacheをコメントし/Applications/MAMP/bin/php/php5.5.3/conf/php.iniても何も起こりませんが、追加opcache_reset();するとindex.php機能します。
ДаниилПронин

26

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


2
これは動作するようです。コメントアウトするよりも、このソリューションの実装を楽しんだ。しかし、違いはありますか?
ケトリ2014

10

それが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にとっては、これが最も簡単な解決策であり、デフォルトでキャッシュを無効にする必要があるため、個人的に好みます。


参考文献


4

OS X向けMAMP 3.0.7.2

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


これは明らかにOPCacheを無効にしません。鉱山は、この設定が「オフ」でもアクティブでした。
auco

2

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

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

  opcache.revalidate_freq=0
  opcache_reset();

2

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

opcache.enable=0

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


私のubuntuサーバーで働いていました。ありがとう。
Sinan Eldem 14

2

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


1

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

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

ファイルの一番下に記載されています。

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

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

ここでも、ファイルの下部に設定があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.