124

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 のキャッシュ オプションは存在せず、自動的に無効になります。

4

10 に答える 10

26

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

于 2013-11-28T03:19:30.147 に答える
10

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

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

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


ウェブページ コード ソリューション

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 を使用している場合は、適宜調整してください。

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


参考文献

于 2014-08-02T04:03:30.127 に答える
2

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

于 2014-01-20T21:27:24.317 に答える
2

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

opcache.enable=0

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

于 2014-01-04T19:15:08.607 に答える
2

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

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

  opcache.revalidate_freq=0
  opcache_reset();
于 2013-12-15T19:10:28.790 に答える