我刚刚在 DigitalOcean 上获得了一个新服务器,想尝试一些其他的东西。我想启动一个 wordpress 网站,因此我按照以下 1-3 个步骤操作:https://deliciousbrains.com/hosting-wordpress-yourself-nginx-php-mysql/。一开始一切都很顺利,我确实成功安装了 wordpress。不幸的是,我的网站目前出现 403 Forbidden 错误。
我使用的是 Ubuntu 14.04 x64。我已经卡了好一会儿了,仍然不知道发生了什么。我甚至尝试删除 Nginx 并重新安装,但情况仍然一样。
这是我的配置文件:
用户 sylvia; 工作进程 1; pid /运行/nginx.pid; 事件 { 工作者连接1024; # 多接受开启; } http { ## # 基本设置 ## 发送文件; tcp_nopush 开启; tcp_nodelay开启; 保持活动超时 15; 类型_hash_max_size 2048; # 服务器令牌关闭; 客户端最大主体大小64米; #服务器名称_哈希桶大小 64; #服务器名称_in_redirect 关闭; 包括/etc/nginx/mime.types; 默认类型应用程序/八位字节流; ## # 日志设置 ## 访问日志/var/log/nginx/access.log; 错误日志/var/log/nginx/error.log; ## # Gzip 设置 ## 开启 gzip; gzip_禁用“msie6”; #gzip_vary开启; #gzip_proxied任何; #gzip_comp_level 2; #gzip_buffers 16 8k; #gzip_http_版本 1.1; # gzip_types 文本/纯文本/css 应用程序/json 应用程序/javascript 文本/xml 应用程序/xml 应用程序/xml+rss 文本/javascript; ## # 虚拟主机配置 ## 包括/etc/nginx/conf.d/*.conf; 包括/etc/nginx/sites-enabled/*; 服务器 { 听 80 默认服务器; 服务器名称 _; 返回444; }
任何想法?
答案1
最有可能是权限问题。授予 www-data 用户访问您的 Web 根目录的权限。您也可以授予所有权。
chown -R www-data:www-data /path/to/your/directory
答案2
禁止意味着 NGINX 无法打开存储文件的目录。
NGINX error_logs 将为您提供问题的确切原因。
日志存储在 /var/logs/nginx/error_log 中。只需打开文件并转到最后几行,即可查看您遇到的确切错误。
理想情况下,执行 chmod 755 目录将解决该问题。
答案3
我也遇到了 403 问题,这是由目录模式引起的。
我将根目录设置在home下,home目录的默认模式是600。
然后我发现了这篇文章https://gist.github.com/jhjguxin/6208474,并尝试将根目录改为755,问题解决。
因此,Ubuntu 12.04 中用户主目录的默认权限似乎为 700。**Nginx 需要对要提供的文件具有读取权限,并且对从根目录到所提供文件的路径中的每个父目录具有执行权限。**
您可以通过运行以下命令授予用户目录这些权限:
chmod 701 用户主目录
您也可以使用 755,这是许多系统上主目录的默认权限设置。
只要 nginx 运行的用户/组(如 nginx.conf 中所定义)对所有要提供的文件具有读取权限并对所有关 Web 根目录具有执行权限,则 Web 根目录中的目录/文件可以属于 www-data 用户或您的常规个人用户。
答案4
如果您只是想列出目录内容,请使用autoindex on;
如下方法:
location /somedir {
autoindex on;
}