到目前为止我已经检查过:
日志 - 它们是空的,启动了一个新的虚拟机。
权限:
$ 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
将 777 提供给包含 vagrant 文件的主机操作系统文件夹。
已启用 SELinux。
尽管如此,即使在虚拟机中使用 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
这应该显示“正在执行”
然后我跑去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 将尝试列出目录内容,这在默认情况下是被禁止的(参见autoindex
请参阅文档。