web-dev-qa-db-ja.com

特権の観点からApacheドキュメントルートを設定する適切な方法は何ですか?

自分のマシンにUbuntu9.10サーバーエディションをインストールしたばかりで、同じLAN内の他のユーザーと自分の個人用ローカルサーバーを実行したいと考えています。

まず、Webルートに最適なフォルダディレクトリ構造は何か疑問に思いました。

私はただ使うべきですか:

/var/www/ 

そこにWebドキュメントをスローし始めますか、それとも別の場所(ホームディレクトリなど)にフォルダを作成する必要がありますか?

第二に、

/var/www/

rootユーザーのみがそこにドキュメントを作成できるディレクトリですが、他のユーザーがドキュメントrootにファイルを作成し、FTP経由でアップロードできるようにしたいと思います。権限またはwww/フォルダーを変更する必要がありますか?または、別の権限で別の場所にドキュメントルートを作成する必要がありますか?これを行う最も安全な方法は何ですか?

5
user41157

ここでWarnerに同意しません。singleサイトでは/var/wwwを使用しますが、より複雑な場合は/srv/wwwにサブディレクトリを作成します。

あなたの質問から、大まかなガイドは次のとおりです。

  1. aptitude install Apache2
  2. chmod g+w /var/www
  3. adduser USER www-data(ユーザーごと)

次に、ユーザーにSCPを使用してもらい(FTPは使用しないでください)、ファイルをアップロードします。 GUIクライアントが必要な場合は、FileZillaをご覧ください。

2
LapTop006

通常、プロのIT環境など、役割専用の少数の大規模サイトのみにサービスを提供するサーバーの場合、サーバーは/var/www内に含まれます。

個別のサイトごとにサブディレクトリを作成します。例えば:

/var/www/example.com
/var/www/testing.com
/var/www/anotherexample.com

あなたが説明していることは、共有ホスティング環境に似ているように聞こえます。共有サーバーでは、通常、public_html内のホームディレクトリ内に各ユーザーのWebサイトを構成します。複数のドメインがある場合は、上記と同様の規則に従いますが、このディレクトリ内にあります。また、ErrorLogCustomLogをホームディレクトリ内で、Webツリーの外に分離します。

SuExec および mod_suphp は、ユーザーのデータがシステム上の他のユーザーに公開されないようにし、脆弱なユーザーのWebサイトの範囲を制限することもお勧めします。

ユーザーがドメインを持っていない場合は、プライマリドメイン内のサブドメインまたは mod_userdir を使用できます。

より組織化されたアプローチを採用したくない場合は、サブディレクトリ、グループ、および/ var/www内のSGIDビットを使用することをお勧めします。それにもかかわらず、それはほとんどすべての状況で理想的なアプローチではありません。

0
Warner