2

パターンをPHP使用して Web サイトを実行しているとします。Kernelファイルにアクセスするリクエストが 1 秒あたり 1000 件あるとしKernel.phpます。メンテナンス モードをオンにせずに、そのファイルの新しいバージョンをアップロードしたいと考えています。それは安全ですか?新しいファイルをアップロードするだけで、ある時点で要求がこの新しいファイルによって処理されるようになりますか?

  • Kernel.php確かにエラーはありません
  • ファイルrequire_once()index.php
  • この場合、メンテナンス モードを忘れてください。

なぜそのアプローチを考えたのかについて、いくつかの情報を追加するように言われました。

私たちは、私たちのエンジンによって駆動される、ウェブページのあらゆる部分を更新する可能性を提供するシステムを開発しようとしています. これKernelは単なる例です。あなたの意見では、このファイルをメンテナンス モードなしで変更できる場合、重要度の低い他のファイルも同様である可能性があります。

更新が非常に単純な場合があるため、メンテナンス モードをオンにすることは、兵卒 (兵士) の 1 人がくしゃみをしたために国への軍事侵攻を止めるようなものです。

私たちは物事を爆破し、プロセス間通信について話しているので、数秒間リクエストを凍結することなく、実行中のWebサイトにコアファイルをアップロードする危険を冒す人は誰もいませんが、テンプレートファイルはどうですか? もちろん修辞的な質問ですが、これですべてを完全に理解できたと思います。

4

2 に答える 2

1

最初に言っておきますが、これはおそらくあまり良い考えではありません。

Linux サーバーで実行していますか? その場合、ファイルの名前変更はアトミック操作であり、これを達成する最善の方法は、新しいファイルを別の名前でアップロードしてから、古いファイルに名前を変更することです。

そうでない場合は、ファイルの書き込み中にエラーが発生する可能性があるため、古いファイルに名前を変更することは、おそらくその場所にアップロードするよりも優れた方法です。

于 2013-08-28T14:52:52.413 に答える
0

Web サーバーの PHP オペコード キャッシュを有効にし、間隔を 5 分以上に設定します。

実行中の PHP コードの上にファイルをコピーできるようになりました。次に間隔が満了すると、サーバーは変更をチェックしてオペコードを再コンパイルします。サーバーは有効期限が切れるまでキャッシュされたコードを使用し続けるため、変更に気付くまで数分待つ必要があります。

PHP ファイルの依存関係を壊した場合、またはサーバーが 1 つのファイルを更新しても他のファイルの別のキャッシュ コピーがある場合にどうなるかは、私にはわかりません。

最も信頼できる方法。ホストのディレクトリをホットスワップできる Web サーバーの機能を使用する必要があります。次に、すべての PHP コードの完全な新しいコピーを新しいディレクトリにインストールし、ホストをこの新しい場所にホット スワップします。要求は中断されるべきではありません。

于 2013-08-28T15:02:33.647 に答える