Btrfs/ZFS 的子卷/数据集中出现“主脚本未知”

Btrfs/ZFS 的子卷/数据集中出现“主脚本未知”

当我将 nginx 与 php-fpm 一起使用并尝试访问不在同一 subvol/dataset 上的文件时,/将导致:

[error] 27411#27411: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

我最初在 Btrfs 上注意到了这个问题,但现在我开始使用 ZFS,它也有同样的问题。例如,假设 位于/home/user一个单独的数据集中,并且我已将 nginx 配置为 ,root /home/user/domains/example.com;那么尝试访问example.com/test.php会导致Primary script unknown,即使/home/user/domains/example.com/test.php存在。

我知道这与跨数据集访问文件或类似的东西有关,因为如果我运行mount --bind /home/user /fix并将 nginx 配置更改为root /fix/domains/example.com;,那么一切都会正常(错误消失并且 PHP 运行)。

我以前尝试过解决这个问题,但到目前为止还没有成功,只有这个mount --bind解决方法有效。有人知道这可能是什么原因造成的,以及我如何在不使用解决方法的情况下解决这个问题吗?我认为这是由一些阻止访问其他分区的安全措施引起的,但我不知道有任何 FastCGI 或 php-fpm 设置允许我更改此策略。

相关内容