Webルートにどのファイル許可を設定する必要がありますか?


53

Ubuntu Server 10.10を使用し、Nginx Webサーバーをでインストールしましたapt-get install nginx。でデフォルトのWebページを作成し/var/www/nginx-default/、そのディレクトリに権限がありdrwxr-xr-x 2 root rootます。

デフォルトのサイトにアクセスするhttp://localhost/と、ページにこのメッセージが表示されます403 Forbidden

Webページへの安全なアクセスを可能にするために、wwwルートにファイル許可を設定するにはどうすればよいですか?または、私が変更しなければならない何かがありますか?


注:全体のフルパス最終的なフォルダにはアクセスできなければなりません!中央に1つのフォルダーもありません。
ルシオ

回答:


33

私は通常、Webルートの755(またはrwxr-xr-x)に固執しますが、ディレクトリが既に設定されているため、これが問題になっているとは思いません。 nginxディレクトリへのアクセス権が必要です。質問は、アクセスしようとしているファイルの許可(または存在)になります。ディレクトリ内のファイルnginxは、実行中のユーザーが読み取り可能である必要があります。通常、これらのファイルは755(ディレクトリと同じ)に設定したままにします。を実行すると、ディレクトリ全体を変更できますsudo chmod -R 755 /var/www/nginx-default/

ただし、ディレクトリにインデックスファイルがない場合でも、同じエラーが発生します。インデックスファイルは、ディレクトリ一覧が有効になっていないディレクトリを要求するときに使用されます。最も一般的なインデックスファイルはindex.htmlです。このデフォルトは設定で編集できますが、次のようなものを使用します:

location / {
    index index.php;
}

nginxそのディレクトリ内のファイルのリストを生成する場合は、次のようにディレクトリインデックスをオンにします。

location  /  {
  autoindex  on;
}

いいえindex.html、そのディレクトリにあります。
ジョナス

では、あなたにindex.htmlはどのような許可がありますか?
ジャックM。

おかげで、confiugrationファイルが実際に指し示し/var/www/、生成index.htmlされたファイルが配置された/var/www/nginx-default/ため、そのファイルをコピーしてからcp /var/www/nginx-default/index.html /var/www/、Webブラウザーでサイトにアクセスする必要がありました。
ジョナス

56

webrootのグループを、www-datanginxおよびphp5-fpmが使用するユーザーに変更することをお勧めします。

例えば:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

ここで、my-userは自分のアカウントです(これにより、sudoなしでファイルを簡単にwebrootに配置できます)。


おかげで、コマンドは問題なく実行されましたが、それでも403 ForbiddenWebブラウザでアクセスすると取得できます。
ジョナス

@ジョナス、あなたはnginxエラーログをチェックして問題が何であるかを確認することをお勧めします。
ピータースミット

おかげで、エラーが見つかりました。エラーログにありました。ジャックスの回答に対する私のコメントをご覧ください。
ジョナス

4
新しいファイルはどうですか?
mcont

@MatteoContriniを使用chmod 2755 webdirectory/して、同じ権限と権利で保存されるようにします
-rhand
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.