5

アプリをデプロイするときは、新しいフォルダーを作成してシンボリック リンクをポイントするだけなので、Apache は常に最新のビルドへの道を見つけます。

ただし、最初にApacheサーバーを再起動せずに展開してテストを続行すると、奇妙なエラーが発生します. また、APC を実行しており、キャッシュがこれに関係していると感じています。

APC がアクティブなときに新しいバージョンの php アプリケーションをデプロイするときに apache の再起動が必要になるのは正常ですか? または、シェル スクリプトを使用して APC キャッシュをクリアするなど、より良い方法はありますか?

4

3 に答える 3

8

使用できますapc_clear_cache()

関連する質問を参照してください:

APC キャッシュ エントリをクリアするには?

Apache をクラッシュさせずに APC キャッシュをクリアするには?

于 2010-06-29T20:18:37.837 に答える
6

php.ini の apc.stat 設定がオンかオフかによって異なります。オフの場合 (本番サイトで一般的)、コード キャッシュをクリアするか、Apache を再起動する必要があります。オンの場合、新しいコードを自動的に取得する必要があります

于 2010-06-29T20:22:17.580 に答える
0

通常、APC は各 PHP ファイルを「統計」して、最後にキャッシュされてから変更されているかどうかを確認します。したがって、すべてのアプリケーションのアップグレードでApache を再起動する必要はありません。

ただし、アプリケーションが apc_store() を使用してアプリケーション データをキャッシュに保存し、そのデータの一部がアップグレード後に変更される可能性がある場合、Apache を再起動すると、APC キャッシュ全体を簡単にフラッシュできます。

私もapache2ctl gracefulうまくいくと信じています。

また、「stat」チェックをオフにすると、APC のパフォーマンスが少し向上します。したがって、その機能を無効にした場合は、とにかく Apache を再起動する必要があります。

于 2010-08-11T21:20:38.813 に答える