3

これについてのお詫びは以前/他の場所で尋ねられましたが、答えが見つかりません。

デプロイの直後にいくつかの問題が発生しましたが、これは Opcache に関連していると考えられます。ライブセットアップでは、次の Opcache 設定があります。

opcache.revalidate_freq=60
opcache.validate_timestamps=1

PHP は次のうちどれを実行しますか?

  1. PHP がファイルを必要とするとき、その時点で、ファイルの新しいキャッシュを最後に生成してから 60 秒経過したかどうかを確認し、60 秒以上経過している場合は、この要求に対して新しいキャッシュを生成しますか?

  2. それとも、60 秒がファイルを最後に必要とした時間とは無関係な何らかの形式のタイマー (または他のもの) で実行されますか?

私はオプション 1 を期待しますが、60 秒程度の問題を説明することはできません。なぜなら、毎回交互に A または B ディレクトリにデプロイするため、ファイルのファイル パスが異なるからです。

それが理にかなっていることを願っていますか?ご協力いただきありがとうございます。

4

2 に答える 2

1

ということで、PHPマニュアルより

スクリプトのタイムスタンプの更新をチェックする頻度 (秒単位)。0 を指定すると、すべてのリクエストで OPcache が更新をチェックします。

つまり、何が起こっているのかというと、ファイルを更新しているのですが、ディレクティブによると、ファイルを更新してから opcache が新しいオペコードを作成するまでの時間は最大 60 秒です。

validate_timestampsに答えがあります。ファイルを手動で再検証したいので、これを行うことができます

このディレクティブが無効になっている場合は、opcache_reset()、opcache_invalidate() を介して手動で OPcache をリセットするか、ファイルシステムへの変更を有効にするために Web サーバーを再起動する必要があります。

于 2014-09-03T16:41:06.250 に答える