NGINX 在创建符号链接后给出 404 错误

NGINX gaves 404 error after creating a symlink

我的网站在 php-larvel 和 nginx 上运行作为网络服务器,根目录是 /public,一切正常,但是当我想保护我的 phpmyadmin 登录时 url ,通过此命令在 /public_html :

中创建符号链接
ln -s /usr/share/phpmyadmin/phpmyadmin-YOUR-SECRET-CODE

站点出现故障并显示 404 ,nginx 显示此错误:

2019/04/07 07:09:02 [error] 4163#4163: *110 directory index of "/home/admin/web/example.com/public_html/" is forbidden

nginx 配置已设置为在 /public 上提供服务。我不知道为什么它试图根据请求访问 public_html。

NGINX 的用户 运行ning 必须能够访问其试图读取 and/or 写入的目录。在大多数情况下,NGINX 是 运行ning 作为用户 nginx 或 www-data。

我们可以通过 运行ning 检查 /etc/nginx/nginx.conf 中的用户指令:

grep 用户 /etc/nginx/nginx.conf 如果该命令的 return 吐出一个用户,我们就可以使用 chown 更改您提到的目录的所有权。

chown -R user:group /insert/path/here 因此,如果 NGINX 运行ning 为 www-data:

chown -R www-data:www-data /insert/path/here 如果 grep 命令没有吐出一个用户,我们总能看到谁拥有 NGINX 的目录,我们应该可以使用那个用户。

简单运行:

ls -al /etc/nginx 并从输出中获取用户。

附带说明一下,如果您碰巧 运行ning PHP-FPM 与 NGINX,情况会有所不同。在这种情况下,目录和文件应该属于 PHP-FPM 进程正在 运行 的用户。

如果你是运行ning PHP-FPM,你可以进入主目录并检查池文件。如果你没有为你的设置修改任何东西,PHP-FPM 的默认用户总是 www-data,所以这应该是拥有所有文件和目录的用户。

cd /etc/php/*/fpm/pool.d/ 然后:

纳米www.conf