在带有 Bash 的 Ubuntu 16.04 上,我已经建立了 LEMP,但我无法从浏览器访问 WordPress 应用程序,尽管数据库数据符合要求(我记得),并且文档根应用程序目录具有正确的权限(见下文)。
Nginx 配置
- nginx.conf (全部默认)。
- nginx default (全部默认)。
- Nginx app conf (前七行是我的 - 其余的是 Certbot)。
WordPress 应用 wp-config.php
这是我在 wp-config.php
中唯一更改的部分:
define('DB_NAME', 'example.com');
define('DB_USER', 'example.com');
define('DB_PASSWORD', 'example.password');
我在测试前重置
chown -R www-data:www-data /var/www/html/
chmod -R a-x,a=rX,u+w /var/www/html/
systemctl restart nginx.service
/etc/init.d/php*-fpm restart
Nginx 日志
我检查了所有三个 Nginx 日志(-t
、access
和 error
)。前两个日志没有输出错误,但是 error
输出这个:
directory index of "/var/www/html/example.com/" is forbidden
我的问题
鉴于上述数据,为什么禁止进入?我想念什么?
注意事项:
- 此问题是 WordPress 应用程序独有的。非 HTTPS PHPmyadmin 应用不会发生这种情况。
- WordPress 应用的数据库用户和数据库名称彼此相同,也与应用的目录名称相同。
最佳答案
您的服务器根目录 Nginxapp.conf应该是:
root /var/www/html;
不是:
root /var/www/html/example.com/;
顺便说一句,这个设置已经在Nginx虚拟机中定义了default.conf ,在应用程序 conf 文件中再次重新定义它有点多余。
更新
根据您的评论,将根更改为 root/var/www/html;
后无法正常工作,我进一步检查了您的设置,并注意到您没有用于处理根的位置指令目录,尝试更改 virtual host setting 中的这一行来自:
try_files $uri $uri/ =404;
到:
location / {
try_files $uri $uri/ /index.php?$args;
}
关于php - 尽管数据库和 CMS 已同步并设置了 DR 目录权限,但禁止 Nginx 应用程序进入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128857/