5

ホスト型ソリューションとして提供されるアプリケーションを開発しています。基本コードを複製することなく、同じコードで複数のサイトを使用する方法を理解することに感銘を受けました。

例: ウェブサイト 1: www.example.com とウェブサイト 2: www.sample.com は同じコードで実行されますが、構成設定とテーマが異なります... wordpress で独自のドメイン名を実行するように。

どうすればこれができるか知りたいです。

データベースの場合も..各Webサイトに個別のデータベースを作成するか、各テーブルの列としてWebサイトIDを持つ同じデータベースを使用する方がよいでしょうか。

助けてください。

[明確化] ドメイン エイリアスではありません。のような...それはサービスになります。異なるクライアントには、異なるテーマを持つ独自のドメイン名で同じアプリケーションが提供されます。ブロガーが行うことのようなもの..独自のドメイン名で同じブログアプリケーションを使用

[テクノロジー] 具体的には、ホスト名を使用してどの構成を使用するかを決定する方法を検討しています。PHP と MySQL を使用しています。

4

5 に答える 5

3

コードを再利用することは間違いなく望ましいことです。あなたの投稿から、サイトが互いにどのように異なるかを想像するのは困難です. ロゴ、配色、またはさまざまな機能について話しているのでしょうか。

異なるルック アンド フィールから始めます。また、これがサーバー上の唯一のアプリケーションであると仮定します。

ディレクトリ構造を慎重に計画することをお勧めします。何かのようなもの:

www-root/  
   / lib  
   / themes
        / domain1  
        / domain2  


index.php:

<?php
$host = $_SERVER['HTTP_HOST'];
$include_theme = "themes/" . $host . "/configuration.php";
//make sure the file exists
require_once($include_theme);

これは単純化されたアプローチですが、注意が必要です。

于 2009-11-21T17:49:11.443 に答える
1

それは実際には非常に簡単です。

コードベースは単一にすることができ、単一にする必要があります。それをhosting1とhosting2にアップロードします。維持するときは、コードを更新したらすぐに両方のホスティング スペースにアップロードします。

このサイトの仕組みもそうだと思います。ページのフッターを見てください。stackoverflow、meta、superuser、および serverfault があります。右下のコメントを見ると、「svn Revision: 5404」になっています。同じこと。4 つのサイトに公開された 1 つのコード ベース。もちろん、データベースは異なり、完全に異なるコンテンツが含まれています。

したがって、可変部分は次のとおりです。

  1. 構成

  2. 設定

  3. データ

コピーする必要があるもの。

構成と設定がハードコーディングされず、データベース テーブルまたは少なくとも一部の外部構成ファイルに格納されるように、このようにコーディングする必要があります。これらはコード (または必要に応じて実装) の一部にはならないため、コードに含める必要はありません。入っている場合は、取り出してください。

于 2009-11-15T08:51:27.137 に答える
1

同じサーバーを指す 2 つの異なるドメインを持ち、ホスト名に基づいて異なる構成を設定できると思います。私はこれをお勧めしません。特に大規模なユーザー ベースまたは多数のドメインがコード ベースを参照している場合は、安定性とパフォーマンスの問題が発生する可能性があります。

通常、複数のサイトを実行している場合は、それぞれに異なるサーバーを用意する必要があります。

編集:

他の回答のコメントを読んだ後、私はあなたのユースケースをもう少しよく理解しています。

このセットアップを使用するサイトが多数ある場合、アーキテクチャを正しく設計し、大量のユーザー負荷を処理するために何らかの負荷分散スキームを実装すれば、これを機能させることができます。

要点をまとめると:

  • 複数のサーバーを取得し、それらの間で負荷を分散します。
  • 大量のユーザー負荷を処理するようにアプリケーションを設計してください。
  • ホスト名を使用して、使用する構成を決定します。
于 2009-11-15T09:08:21.567 に答える
0

現在、約 15,000 の一意のドメインでこれを行っています。難しくはありませんが、適切に実装するには設計上の考慮事項が必要です。

単一のコードベースとサーバーからそれを行うことができ、基本的には、受信リクエストのHTTP_HOST値に完全に依存するようにコードを構築するだけです。次に、データを適切に分離し、適切な data/html でリクエストに応答する手段として、DB キーのすべてがその値から外れます。

于 2009-11-21T18:05:53.310 に答える