web-dev-qa-db-ja.com

Apacheドキュメントルートを設定するには?

私は新しいWebサーバーに移行する過程にあり、Apacheと私のWebアプリケーション用のクリーンで安全なファイルアーキテクチャが欲しいのですが。

サーバーは1つのphp/mysqlアプリケーションを提供します。このアプリケーションは、FTPおよびWebサービスからファイルを受信し、ログファイルを生成します。

サーバーOSはCentOS 5.4です。

デフォルトのApacheドキュメントルートは/var/www/htmlです。

Webアプリケーションディレクトリを以下に配置する必要があります:

  • /var/www/html/myWebApp
  • /www/myWebApp
  • /home/www/myWebApp
  • 何処か別の場所?

アプリケーションディレクトリは、rootユーザーまたはApacheユーザーまたは他のユーザーが所有する必要がありますか?

ご協力いただきありがとうございます。

3
benjisail

SELinuxが有効になっていると仮定すると、SELinuxがhttpdプロセスによる非標準フォルダーへのアクセスを拒否するため、これらのオプションのすべてが機能するわけではありません。

IIRCは、CentOSにWebアプリケーションを手動で追加するための推奨される方法(例:mediawikiインストール)を/var/www/<myappname>にインストールし、/ etc/httpd/conf/httpd.confファイルにアプリケーションを指すエイリアスを作成することです(通常、私は/var/www/iconsフォルダーの既存のエイリアスに似たパターンになっています)。

CentOSの/var/wwwの下にあるものの一般的なファイル所有権はrootです。

4
Ophidian

それは本当にあなた次第です、私は個人的にCentOSのデフォルト DocumentRoot を_/var/www/html/myWebApp_で選択するでしょう。

アプリケーションファイルは自分で所有できますが、Apacheが実行するように構成されているユーザーおよびグループは、それらを読み取り可能にする必要があります(ただし、アプリケーションがファイルを上書き/編集する必要がない限り、所有することはできません)。これは通常_nobody:nobody_であり、そのユーザーは特権を持たない必要があります(つまり、ドキュメントルートのファイルのみを読み取ることができ、それ以上はできません)。

詳細はこちら

edit:SVNチェックアウトの場合、SVNユーザーが所有するファイルを残すことができます(SVNまたはroot -Apacheが実行しているユーザーとは異なり、権限は644 (-rw-r--r--)である必要があります-コミット後のフックでディレクトリをchmodしない場合、これはSVNがデフォルトで使用するものと考えています。

...そして、SELinuxの問題があるかどうかを判断するには、 無効にする を試して再テストします。それが機能する場合、 ログを収集する および HTTPDポリシーを変更する (おそらく_httpd_disable_trans_を有効にするだけです)。または Ophidian's method :)を使用します

3
Andy

(これはOphidianのコメントであるはずですが、コメントを入力できるスペースに収まらないので、返信として投稿しています)

適切なコンテキスト/タイプで使用するディレクトリ/ファイルをchconすることにより、selinuxでそれを行うことができます。

正しいコンテキストを見つけるための最も簡単な方法は、すでに正しくラベル付けされたdirを調べることです。例えば。

[root @ somehost〜]#ls -ldZ/var/www/html drwxr-xr-x root root system_u:object_r:httpd_sys_content_t/var/www/html

次に、新しいコンテンツディレクトリに正しいSE Linuxタイプを設定します。例えば。/home/myappをドキュメントルートとして使用する場合:chcon -t httpd_sys_content_t/home/myapp

chconは、次のファイルシステムのラベルが変更されるまで保持されます。新しいコンテキストがファイルシステムのラベルを変更しても維持されるように、fcontextを使用することを忘れないでください!

semanage fcontext-at httpd_sys_content_t/home/myapp

1
Jason Tan