我使用lighttpd和php-fpm。
.php脚本用正确的用户权限处理,我在浏览器上看到了结果。 目前,如果我在PFM conf文件中注释chroot =选项,所有运行正确。 如果我添加它,我总是得到404没有发现错误。
我的文档根目录(在lighttpd conf文件中)是:/ home / lighttpd / vhosts / website / web
我如何使用chroot参数? 我必须使用什么path?
谢谢!
请记住,只要你使用chroot,你的chroot环境就必须包含你所需要的一切 。 在这种情况下,您需要php.exe,php.ini和所有.php脚本,仅供初学者使用。 如果您的Web应用程序需要写入某些目录(例如/ tmp),那么也必须在您的chroot中。
请记住,chroot实际上是“更改根目录”,就像更改文件系统的根目录一样。 所以,如果你想chroot php-fpm到eg / home / lighttpd /,那么如果它必须写入/ tmp,实际上是/ home / lighttpd / tmp,那么确保存在。 如果你正在寻找/etc/php/php.ini,那就类似于/home/lighttpd/etc/php/php.ini – 基本上chroot应用程序的任何文件path上的前导'/'被replace为chrootpath。
这使得build立chroot环境变得相当棘手,因为你必须创build一个基本文件系统镜像,这个镜像将在你的chrootpath中被使用。 这也意味着你必须知道你的chroot环境所需要的一切。
我的build议是不要打扰chroot。 这是一个非常薄弱的安全层面,使得工作变得几乎毫无价值,而且我认为,通过确保php-fpm在适当的用户环境下运行(即受限用户,而不是root),并且您使用适当的文件系统权限为该用户提供系统上最低限度的必要权限。 这包括确保用户根本无法login到交互式shell(删除用户密码,并将其shell设置为/ bin / false或/ bin / nologin),并且根本没有sudo权限(除非绝对必要的,然后只授予sudo访问它需要的特定命令)。