初めに
今までいくつかの現場にアサインしてきましたが、DocumentRootの位置が現場により異なりました。
正直DocumentRootの位置は/tmp
等やめたほうが良いパス以外は好きにして構わないと思うのですが、全くの初心者の頃皆目見当がつかなかったので、少し纏めてみたいと思います。
説明に過不足ありましたら是非ご一報ください!
※Linux系のサーバにデプロイする前提の内容となります。
また、Javascript、PHPのWebアプリケーションのみとなります。
DocumentRootとは
Webアプリケーションにアクセスされたとき、Webサーバが参照する際に 基準となるディレクトリの位置 を定義するための仕組みです。
例
https://sample.com/index.html
でアクセスされた際、
DocumentRoot→/var/www/html
の場合、
/var/www/html/index.html
が参照されレスポンスされる。
つまりこの場合/var/www/html
が基準のディレクトリとなります。
/var/www/html/[アプリケーション名]
ApacheやNginX等よく使われるWebサーバのデフォルトのDocumentRootです。
デフォルトのままですのでシンプルで、兎に角スピード重視という意味合いの印象です。
/var/www/vhosts/[アプリケーション名]
仮想ホストを利用している際に良く/var/www/vhosts/
配下に指定するようです。
仮想ホストについては以下のApacheの公式ページの通り、一つのWebサーバで複数のドメインを運用したい際に利用します。
https://httpd.apache.org/docs/2.2/ja/vhosts/examples.html
/home/www/[アプリケーション名]
www
というアプリケーション実行ユーザを作成して、その実行ユーザのhomeディレクトリを指定していました。勿論www
以外の実行ユーザ名でも問題ないと思います。
アプリケーション実行ユーザ、DBユーザ、cron実行ユーザ...と役割をしっかり分けてセキュリティを意識した作りで見られました。
以上です。
ちなみに
以下のコラム、PDFで纏められていますが、
https://www.atmarkit.co.jp/ait/articles/0108/07/news002.html
https://www.pathname.com/fhs/pub/fhs-2.3.pdf
それぞれ思想に沿ってディレクトリが切られています。
/var
: 変更されるデータ
/home
: ユーザーのホームディレクトリ
/opt
: 追加アプリケーション(Javaで使うTomcatではここのサブディレクトリがDocumentRootになります)
ここら辺のディレクトリをDocumentRootに指定するのは、至極自然な発想なのですね!
最後に
私の見てきた現場ですと、おおよそ上記のパターンに収まっていました。
利用しているサーバ、サービスによって異なるかと思いますので、違った構成や意見がありましたら是非コメントくださると嬉しいです!