0

(php||javascript||...)production で実行され ている単純なファイルがあります(apache+(php||javascript||...))

Web クライアントへのサービスを停止せずに単純なファイルを移行する適切な方法を考えようとして います。

考えられる影響は次のとおりです。

  • Apache キャッシュ ファイル: Apache がファイル (php、img、...) をどのように処理するかわかりません。それらをキャッシュし、リロードする更新タイムスタンプをチェックしますか、それとも http 要求ごとにリロードしますか?
  • Linux ファイルはアトミックに変更されcpます。新しいコンテンツを含むファイルの場合、apache はコマンドの完全なコンテンツの最終保存結果のみを表示できますか?
  • Apache 実行プロセス: 新しいファイル バージョンをコピーしている間、現在の要求を保持して Apache を一時停止できますか。

私は次のように想像します。

  • phprequire_onceファイルのように、バージョンで名前を付けたファイル (例: ABusinessClassD-v1.0.php) を用意し、下位互換性をサポートし、cp新しいファイルを 1 つずつ実行し、ボトムアップ (データベース、静的ファイル (img、...)、php ファイル、 JavaScript ファイル、...)
  • オンデマンドでブラウザー コードを強制的に更新します。

想像力 != これと同じくらい簡単 != 現実。

手動で意図的に遅いプロセスで、ウェブクライアントのサービスを停止することなく、Apacheプロダクションで単純なファイルを更新するためのグローバルで単純な手動手順を誰かが要約できますか?

4

1 に答える 1

1

PHP コードベースを移行する際に問題が発生しないことを保証する唯一の確実な方法は、2 つのサーバーまたは同じサーバー上に 2 つのデプロイを行うことです。

古いコードを含む Server 1 があります。サーバー 2 は新しいコードでセットアップされます。次に、DNS レコードまたはロード バランサー/プロキシ設定が変更され、代わりにサーバー 2 からサイトが提供されます。

または、1 つのサーバーで、Apache を からアプリケーションを提供するように構成/path/to/oldし、新しいバージョンを でセットアップします/path/to/new。次に、Apache 構成を変更/path/to/newしてアプリケーションに使用し、サーバーを再起動します。

ファイル名にバージョン番号を使用する必要がある場合 ( ABusinessClassD-v1.0.php)、Git や Mercurial などのバージョン管理ソフトウェアについて学ぶ必要があります。

于 2013-10-05T22:59:17.580 に答える