3

CSS と IMAGES 以外はまったく同じファイルを使用する 50 以上のサイトを開発しました。現在、新しいサイトを作成して異なる CSS と画像をアップロードするたびにファイルを複製しています。

これをすべての一般的なファイルの 1 つの主要な場所に単純化するためのベスト プラクティスは何でしょうか?

各サイトの現在の構造は次のとおりです。

/home/ftpuser/public_html/commonfile1.php
/home/ftpuser/public_html/commonfile2.php
.....
/home/ftpuser/public_html/commonfileN.php
/home/ftpuser/public_html/commonfolder1/
/home/ftpuser/public_html/commonfolder2/
.....
/home/ftpuser/public_html/commonfolderN/
/home/ftpuser/public_html/css/
/home/ftpuser/public_html/css/mycssfiles.css
/home/ftpuser/public_html/images/
/home/ftpuser/public_html/images/myimages.jpg

カスタムメイドのcssと画像を保持しながら、各サイトの1か所にあるすべての共通ファイルを作成するにはどうすればよいでしょうか。

Apache、PHP、Centos を使用しています

4

5 に答える 5

4

50 の仮想ホストがすべて同じ DocumentRoot を使用しているとします。そうすれば、すべてのサイトが同じ共通ファイルを使用することが保証されます。

別の css およびイメージ ディレクトリを取得するには、Alias ディレクティブを使用して、各 VirtualHost の明示的なディレクトリを指定します。

于 2009-11-13T16:35:41.133 に答える
1

すべての異なるサイトが同じサーバー/ファイルシステムでホストされていると仮定すると、最も明白な解決策は次のようなものになります。

+- common files (outside web root)
|
+- httpdocs (web root)
   |
   +--+- website 1 specific files
   |      |
   |      +- images (etc)
   |
   +--+- website 2 specific files
          |
          +- images (etc)

上の図では、共有場所から関連ファイルを含め、サイト固有のファイルを使用してサイト固有の目的で上書き/上書きするだけです (Web ルートの内部または外部に保存されているかどうか)。 .

サイトがすべて異なるサーバーでホストされている場合、一般的なファイルは Web ルート (http 経由でアクセス可能) のどこかにホストする必要があるため、もう少し複雑になります。動作を妨げるものは何もありませんが、これは理想的ではありませんが、帯域幅の使用とクロスサイト セキュリティの問題に関しては、問題になる可能性があります。

仮想ホストを使用すると、2 つのオプションの中間に位置します。それらがすべて同じドキュメントルートにアクセスできる限り、インクルードを使用できます(これらの回答の他の場所でdlandが示唆しているように)。

于 2009-11-13T16:33:05.480 に答える
0

メインフォルダーから必要なファイルを#includeするだけでよいと思います。すべてのサイトからアクセスできるようにする必要があります(ソフトリンクを使用すると、サーバーはそれらが各サイトのディレクトリにあると認識します)

ソフトリンクを使用すると、パスの問題が軽減され、httpdocs ディレクトリの「外部」のパスを使用する必要がなくなります。

于 2009-11-13T16:33:27.767 に答える
0

それらが同じサーバー上にある場合は、ファイルをシンボリック リンクするだけです。

ln -s /home/ftpuser/public_html/commonfile1.php /home/ftpuser/public_html/commonfile2.php

これは、さまざまなユーザー (ファイル所有者) が関与する共有ホスティング設定ではうまくいきません。

于 2009-11-13T16:37:30.293 に答える
0

これらのサイトがすべて同じサーバー上にある場合は、php インクルードにファイルを含めることができます。

次に、それらを現在の php ファイルと同じディレクトリにあるかのように含めることができます。

于 2009-11-13T16:32:33.510 に答える