%20%E3%81%A7%20nginx%20403%20%E3%81%8C%E7%A6%81%E6%AD%A2%E3%81%95%E3%82%8C%E3%82%8B.png)
これまでに確認したこと:
ログ - 空です。新しい VM が起動されました。
権限:
$ namei -l /var/www/awesome/
f: /var/www/awesome/
dr-xr-xr-x root root /
drwxr-xr-x root root var
drwxrwxr-x www-data www-data www
drwxrwxr-x www-data www-data awesome
Vagrant ファイルがあるホスト OS フォルダーに 777 を指定します。
SELinux を有効にしました。
それでも、VM 内で curl localhost を実行しても 403 が返されます。
awesome.devのnginx設定はこちらです
server {
listen *:80;
server_name awesome.dev www.awesome.dev;
index index.html index.htm index.php;
access_log /var/log/nginx/awesome.dev.access.log;
error_log /var/log/nginx/awesome.dev.error.log;
location / {
root /var/www/awesome;
try_files $uri $uri/ index.php /index.php$is_args$args;
}
location ~ \.php$ {
root /var/www/awesome;
index index.html index.htm index.php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param APP_ENV dev;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
}
sendfile off;
}
これを修正するにはどうすればいいでしょうか?
答え1
CentOS 7 でも同じ問題が発生しました。解決方法:
Check getenforce
「Enforcing」と表示されるはずです
次に、chcon
アクセスを許可するように httpd セキュリティ コンテキストを変更しました。
chcon -Rt httpd_sys_content_t /path/to/web/content
Nginxをリロード
systemctl restart nginx
これでページが読み込まれます。
答え2
コンテンツ/var/www/awesome/
とその権限は何ですか?
index.html
、index.htm
またはファイルが存在しない場合index.php
、nginx はディレクトリの内容を一覧表示しようとしますが、これはデフォルトでは禁止されています (cf.autoindex
ドキュメンテーション)。