web-dev-qa-db-ja.com

RHELベースのサーバーの複数のドメインのWebコンテンツをどこに配置しますか?

いくつかのドメイン名の静的および動的コンテンツをホストするRHELWebサーバーをセットアップしています。複数のユーザーがSSHとSFTPでファイルを更新します。

各ドメイン名のファイルはどこに配置する必要がありますか?私のデフォルトのシステムでは、単一の/var/www/がありますが、複数のドメインを見つける方法についての手がかりはありません。

Filesystem Hierarchy Standard( http://www.pathname.com/fhs/pub/fhs-2.3.html )を見ると、最良のオプションは次のようです。

/srv/example.com/www/
/srv/example.org/www/

好みはありますか?

2
Ra01

Apacheのデフォルトは通常/var/www/example.com/しかし、私が非常に良いと思うFHSガイドラインに従う方がよいでしょう。重要なことは、システム間の一貫性を保つことです。そのため、FHSは従うべき良いリファレンスです。

いずれにせよ、次の理由から、別のパーティションに配置することをお勧めします。

  • いっぱいになっても、サーバーには影響しません
  • セキュリティを強化するために、noexecなどのマウントオプションを設定できます

あるサイトのユーザーが他のサイトにアクセスしないように、ディレクトリのアクセス許可には十分注意してください。

2
chmeee

私たちはの構造で非常に良い経験をしています

/srv/www/example.com/html
/srv/www/example.com/sub-d/www
/srv/www/example.com/sub-d/beta
/srv/www/example.com/sub-d/logs (if preferred)

サーバーが1つの会社によって使用されている場合。提供するクライアントドメインがある場合は、検討することをお勧めします

/srv/www/client1/doma.in/html
/srv/www/client1/secon.nd/html
/srv/www/client2/foob.ar/html
2
Michael

/var/www/example.comの規則が好きです。

/etc/httpd/vhosts.d/example.com.confにconfを置き、メインのApacheconfに含めるのが好きです。お客様に編集させません。このように、新しいドメインを追加し、configtest、reload、またはrestartがエラーを検出した場合、簡単に元に戻すことができます。

使用:/var/www/example.com/html /var/www/example.com/cgi-bin /var/www/example.com/log

私はposixaclsを使用して、上記のdirにデフォルトのACLを追加します。これにより、作成するファイルはすべて、サーバーユーザー(suexecで使用されるユーザー)/グループのrwxを使用して作成されるため、ファイルを作成するときにユーザーが何であっても、Webサーバーがそれらにアクセスできるユーザー、およびVritualHostsユーザーのグループのメンバーがすべてのファイルにアクセスできるようにします。

/var/www/example.com/privateパスワードとグループファイルを移動する場所としてprivateを使用します。

/var/www/example.com/conf/example.com.include.confサイト所有者が構成を変更できるようにする場合は、次のようなファイルも作成します。/var/www/example.com/conf/exampleドメインのメイン構成(/etc/httpd/vhosts.d/example.com.conf)のVirtualHostに含まれている.com.include.conf。

ただし、これはユーザーが構成全体を壊す可能性があるため、ユーザーが何をしているのかを十分に注意する必要があるため、注意する必要があります。私は、複数のVirtualHostがすべて同じ顧客によって所有されているサーバーがある場合にそれを行う傾向があるため、構成を中断すると、それらは自分のサイトのみを中断します。

また、プロセスをApache以外のユーザーとして実行できるようにし、動的コンテンツをApacheユーザー以外のユーザーとして実行できるようにするsuexecを使用することをお勧めします。

参照: http://httpd.Apache.org/docs/2.2/suexec.html

また、VirtualHostなどに基づいてリソースの使用を制限できるさまざまなRLmitディレクティブを確認することもできます。見る:

http://httpd.Apache.org/docs/2.2/mod/core.html#rlimitcp

1
Jason Tan

次のレイアウトを使用します

/var/www/domains/$DOMAIN/$Host/{htdocs,logs}

だから、www.google.com例として

<VirtualHost *:80>
   ServerName www.google.com

   DocumentRoot /var/www/domains/google.com/www/htdocs

   ErrorLog /var/www/domains/google.com/logs/error_log
   CustomLog /var/www/domains/google.com/logs/access_log combined
</VirtualHost>
0
Dave Cheney