いくつかのドメイン名の静的および動的コンテンツをホストする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/
好みはありますか?
Apacheのデフォルトは通常/var/www/example.com/
しかし、私が非常に良いと思うFHSガイドラインに従う方がよいでしょう。重要なことは、システム間の一貫性を保つことです。そのため、FHSは従うべき良いリファレンスです。
いずれにせよ、次の理由から、別のパーティションに配置することをお勧めします。
あるサイトのユーザーが他のサイトにアクセスしないように、ディレクトリのアクセス許可には十分注意してください。
私たちはの構造で非常に良い経験をしています
/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
/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ディレクティブを確認することもできます。見る:
次のレイアウトを使用します
/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>