Webサイトのコンテンツを保存するための推奨ディレクトリは何ですか?


21

Webのプログラミングを始めて、新しいプロジェクトを作成したかったとき、私はいつもにディレクトリを作成するように教えられました/var/www/。しかし、多くのチュートリアルでは、人々がにディレクトリを作成する傾向があると読みました/home/username/

私はそれを入れる考えが好きではありません/home/username/

正しい場所がありますか、そうでない場合、ファイルシステムの特定の領域に配置することの利点/欠点は何ですか?


ほとんどの開発では、これが優先されます(「最良」は、おそらくこれを最も安全に変更する必要があるなど)。そこからもそれらを提供しているのであれば、おそらくあなたの個人的なファイルとウェブ共有のものとの間にある種の距離を保つために何かを隠したいでしょう。しかし、100万の構成があります。私はそれを固守し/var/www、通常は別のドライブに持っています(好みだけです)。
オタクウォーラー

「最良の」ディレクトリはありません。ファイルの物理的な場所は関係ないため、完全にあなたの意見です。
ラムハウンド

回答:


36

「最良の」ディレクトリはありません。そして、人々は、この質問は主観的なものであることを主張するかもしれない、またはされるファイルの実際の配置が問題-、後者-そこについて、彼らがしている権利がいない間されている Unixライクなシステムに何を置く場所に関する勧告を標準化しました。

ファイルシステム階層標準は、これと申し出、あなたに以下のように定義しています。

  • /var–ログなど、通常の操作中に変化するデータを配置する場所/var/wwwは、ApacheのWebコンテンツを配置するデフォルトのディレクトリですが、その使用法はまったく標準化されておらず、人々が配置する「通常の」場所ですデフォルト設定を頻繁に変更しないでください。

  • /srv–このディレクトリには、システムが提供するデータが含まれている必要があります。これは通常あなたが望む場所です。FHSの説明:

    これを指定する主な目的は、ユーザーが特定のサービスのデータファイルの場所を見つけ、読み取り専用データ、書き込み可能なデータ、およびスクリプト(cgiスクリプトなど)に単一のツリーを必要とするサービスを合理的に配置できるようにすることです。特定のユーザーのみが関心を持つデータは、そのユーザーのホームディレクトリに移動する必要があります。(…)

    データを構造化する1つの方法/srvは、プロトコルなどです。ftprsyncwww、およびcvs

    そのため、単純に/srv/wwwディレクトリを作成してこれを使用します。マシンで提供したい仮想ホストごとにサブフォルダーを作成できます。

  • /home本当に一人のユーザーに属するべきファイルが含まれています。たとえば、Apacheではuserdirsが許可されているためhttp://example.com/~username、を介してユーザーのWebファイルにアクセスできpublic_html、ユーザーのホームのディレクトリから提供されます。

    複数の人の間で共有されているサーバーを使用し、すべての人が独自のスクリプトをホストできるようにする場合は、ここで行う必要があります。ディレクトリは、所属するユーザーのみが書き込み可能にすることを忘れないでください。

基本的に/srv/www/var/wwwディレクトリであるため、ホストするWebプロジェクトのサブディレクトリを作成する必要があります。その後、これらのディレクトリにさまざまな権限を定義して、特定のユーザーまたはユーザーグループがそれらに書き込むことを許可できます。一度に1人のユーザー用のプロジェクトがある場合は、を使用します/home


3
http://example.com/~username通常/home/username/、を指していませんが、を指し/home/username/public_html/ます。
チョロバ

うん、ありがとう、わかりやすくするために追加すべきだった。できた
slhck

数年使用した後/var/www、変更の時間です!
-sitilge

また、www私にとってはサブドメインのように聞こえます。
sitilge

追加するだけです... / var / wwwの使用は、インスタンスを提供する単一サイトの一般的なプラクティスであり、デフォルトのApacheロケーションと言われていますが、/ home / usr /の使用は、リセラーサーバーまたはマルチサイトの一般的なプラクティスですusers == clientsの概念から導かれたホスティング。どちらも単なる一般的な方法であり、shlckの答えは、ファイルシステムの意図された目的のより良い使用です。
クールズ

4

ファイルが適切にアクセスできる限り、どこにでもファイルを置くことができますが、後で誰かが来た場合、乱雑なファイルシステムは頭痛の種です。

/srv Filesystem Hierarchy Standardに従うと最も論理的にプラスになります。

複数のドメインを実行する場合/srv/domain1 /srv/domain2などに実行できます/ftp /www /tftp /logs /etc.etc.etc

構築して簡単に制御できる非常に強固な構造を感じている私にとって

ただし、管理者としては、必要に応じてクリーンまたは乱雑にできます。


1

わかりやすい簡単な答え。

システム上のWebファイルにLinuxシステム上の1人のユーザーのみがアクセスする場合。ユーザーのホームディレクトリを使用します(~/)。

システム上のWebファイルに、Linuxシステム上の複数のユーザーがアクセスする場合。を使用し/srv/ます。

これはまさにhttp://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEMが述べていることです。

引用は次のとおりです。

/ srvには、このシステムによって提供されるサイト固有のデータが含まれています。

これを指定する主な目的は、ユーザーが特定のサービスのデータファイルの場所を見つけ、読み取り専用データ、書き込み可能なデータ、およびスクリプト(cgiスクリプトなど)の単一ツリーを必要とするサービスを合理的に配置できるようにすることです。特定のユーザーのみが関心を持つデータは、そのユーザーのホームディレクトリに移動する必要があります。

ボーナス:www?ftp?プロトコル別に整理しますか?え?

http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEMに記載されているとおり

  • システム上の1人のユーザーのみがWebサイトにアクセスし、ブラウザー(httpプロトコル)のみを使用する場合:~/http/your-website-directory/または(httpsプロトコル)の場合:~/https/your-website-directory/
  • あなたのウェブサイトがシステム上の1人のユーザーのみによってアクセスされ、ブラウザ経由ではなく複数のプロトコル(ig http AND tcp AND ...)を介してのみアクセスされる場合: ~/your-website-directory/
  • システム上の複数のユーザーがWebサイトにアクセスする場合、ブラウザ(httpプロトコル)のみを使用する場合:/srv/http/your-website-directory/または(httpsプロトコル)の場合:/srv/https/your-website-directory/
  • あなたのウェブサイトがシステム上の複数のユーザーによってアクセスされ、ブラウザだけでなく複数のプロトコル(ig http AND ftp AND ...)を介してアクセスされる場合: /srv/your-website-directory/

なんでwwwじゃないの?これは、Apache時代からの遺産です。wwwは、使用されているプロトコルを指定しません。Debianは現在でもこれを使用していますが、たとえばArch linuxは/ srv / httpを使用しています。


0

Apache WebサーバーにはデフォルトのWebサイトがあります/var/www/が、他のWebサイトは/srv/

Ubuntu Server 14.04 LTSでこれに気付きました。デフォルトapache2.confファイルにはコメントブロックが含まれています。

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.