0

5サイトくらいのシリーズを作っていきます。それらはすべて同じシステムで実行する必要があります。それらがすべて同じサーバーを指すようにすることを計画しています。その後、アクセスに使用されるドメインに応じて、異なるコンテンツ/スタイルが提供されます。したがって、基本的には、特定の製品タイプに特化した 5 つほどの異なる小売サイトになります。

ただし、すべて同じバックエンド コードを使用しているため、保守がはるかに簡単です。これまでにこのような設定をしたことがないので、考慮すべき情報があるかどうか、またはこれをうまく行う方法を説明している適切な場所を誰かが知っているかどうかを知りたいですか?

また、私たちは自分自身をホスティングしているのではなく、ホスティング会社を経由しています (それが重要な場合)。

ありがとう!

4

3 に答える 3

2

私にはかなり簡単に聞こえます:

ディレクトリを用意するだけです:

/var/www/siteLibraries/foo.php

または他の適切なディレクトリ。それから持っている

/var/www/site1/foo.php
/var/www/site2/foo.php

PHP ( http://uk.php.net/manual/en/language.oop5.autoload.php ) でロードするデフォルトのクラスをセットアップして、スペシャリスト サイトがクラスをインスタンス化するときに ... サイトのローカル ライブラリを検索するようにします。 (スペシャリストのオーバーライドの場合)、デフォルトで共有ライブラリに設定されます。このようにコンテンツを配置することもできます。

簡単な説明ですが、両方のサイトがアクセス許可を共有することを心配する必要がない場合の対処方法の大まかな概要です (クライアントはコードを編集しないと思います)。

覚えておいてください:サイトごとのコードは、デフォルトのコード ベースから特殊化する必要があります (OOP はこれに最適です)。具体的でないものは共有されます。もちろん、共有コードベースは共有されていることを認識する必要があるため、エラーが発生したときにライブラリを使用していた特定のサイトなどをログなどで特定する必要があります。

幸運を

于 2009-06-24T13:21:59.637 に答える
0

私は現在、まさにこの問題に対処するコンテンツ管理システムを作成中です。私が考えるのに役立つと思ったいくつかのこと。

サイトを開発するときは、それぞれを最小公倍数に減らします。つまり、すべての Web サイトに共通する要素は何ですか? たとえば、各 Web サイトには一連のページがあり、おそらく何らかの形式のショッピング カート システムがあります。

私のシステムでは、サイトごとに個別のテンプレート ファイルがあります。このようにして、PHP と HTML を分離しておくことで、作業がずっと簡単になります。最小公分母を見つけた後、私にとって最も困難な課題は、サイトを区別することでした。

htaccess ファイルを使用して example.com を www.example.com にリダイレクトしました。このようにして、ヘッダーから www.example.com を確実に取得し、それを使用して特定のサイトの情報をデータベースから選択できます。

Aiden には、コード固有の点もいくつかあります。私にとっては、コードが特に問題ではなく、マルチサイト環境でそのコードをどのように実装したかが問題であることがわかりました。

お役に立てれば。

于 2009-06-24T13:23:16.437 に答える
0

サイトにさまざまなコード ベースを持たせたい場合、Aiden のアプローチはかなり良さそうです。

ニーズが単純な場合、つまり、すべてのサイトが同じコードを実行しているが、ドメイン名に基づいて異なるコンテンツを表示している場合は、より単純なソリューションを使用することもできます。

すべてのドメインがスクリプトが存在する同じディレクトリを指すようにし、送信するコンテンツの種類を HTTP の「ホスト」値に基づいて区別します。

すなわち:

$host = $_SERVER["HTTP_HOST"];

$rs = mysql_query("SELECT * FROM products WHERE website = '$host'");

// ...etc

注意: このコードは説明用です。書かれているように、SQL インジェクションに対して脆弱であるため、適切に保護する必要があります。

于 2009-06-24T13:38:38.823 に答える