質問: ユーザーを待たせずにサイトを更新するにはどうすればよいですか? ダウンタイムはユーザーにとって不便であり、現在はサイトのエンジンがアップグレードされるたびに待機する必要があります。さらに、市販のスクリプトを使用する場合、設定の変更が意図したとおりに機能しないというリスクがあります(ステージングサイトでテストされた場合でも)。サーバー上でサイトの複数のバージョンを保持し、ダウンタイムを発生させずにそれらを切り替えるにはどうすればよいですか(たとえば、htaccessファイルを使用)。
回答: linux/bsdマシンを使用していますか?その場合、シンボリックリンクを使用して簡単にこの目標を達成できます。ここでサイトのバージョン1を作成します。/var/www/www.example.org.v1 このディレクトリを指すシンボリックリンクを作成しますcd /var/www ln -s www.example.com.v1 www.example.com これにより、次のようなディレクトリ一覧(ls -la)が表示されます。lrwxr-xr-x 1 userid users 18 aug 3 03:35 www.example.com -> www.example.com.v1 drwxr-xr-x 2 userid users 512 aug 3 03:35 www.example.com.v1 /var/www/www.example.comをドキュメントルートとして使用するようにwebサーバーを設定します。これを変更する必要はありません。すべての再ポイントはファイルシステムレベルで行われます。さて、サイトのバージョン2に交換したいときは、新しいバージョンを次の場所に配置するだけです。/var/www/www.example.org.v2 そして、このバージョンを指すようにシンボリックリンクを更新します。ln -sfh www.example.com.v2 www.example.com これにより、ディレクトリ出力は次のようになります。lrwxr-xr-x 1 userid users 18 aug 3 03:43 www.example.com -> www.example.com.v2 drwxr-xr-x 2 userid users 512 aug 3 03:42 www.example.com.v1 drwxr-xr-x 2 userid users 512 aug 3 03:41 www.example.com.v2 ご覧のとおり、www.example.comシンボリックリンクは、サイトのバージョン2を指しているようになりました。これはアトミックな操作であり、ファイルが使用できないことに関連するダウンタイムを引き起こすことはありません。もちろん、データベース構造の更新、静的リソースの使用(および正しいバージョンへのリンク)などの確保には依然としてかなりの複雑さが必要ですが、少なくともこれにより、すべての適切なリソースが新しいサイトがすぐに利用できます。windows vistaおよびserver 2008は、mklinkコマンドを使用したシンボリックリンクもサポートしていますが、直接的な経験はありません。