微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-FPM的chroot和chdir目录

我正在设置启用chrooting的PHP-fpm.现在我看到有两个选项,我想知道确切的区别是什么.

设置有:

chroot = /var/www/domains/domain.tld/
; Chdir to this directory at the start. This value must be an absolute path.
; Default Value: current directory or / when chroot
chdir = /docroot/

为什么这里有两个不同的位置,哪个路径是PHP允许访问的. PHP网站可以访问/var/www/domains/domain.tld/,还是只能访问带有docroot目录的文件.

===

也许对我有一些具体的建议.我想要这样的设置:

webroot位置:/ var / www /

domain.com/
 |---conf/
 |    |--Nginx.conf
 |    |--PHP-fpm.conf
 |
 |---ssl/
 |---logs/
 |---session/
 |---domains/
       |---www/
       |---app/
       |---dev/

在这里PHP-fpm设置将是:

chroot = /var/www/domain.com/
chdir  = /domains/www

现在主要的问题是,位于www子域的应用程序是否能够访问dev或app中的文件.甚至是位于会话中的文件,即会话保存路径,或其他文件夹,如ssl和logs.

> Chroot设置’root’目录 – 您无法在根目录之上导航.
> Chdir只是更改起始目录 – 仍然可以导航到其他目录(包括上面的目录).

>如果未指定chroot路径,则应用“真实”根 – 并指定绝对chdir.
>如果确实指定了chroot路径,则指定相对于chroot路径的路径(重新定义根目录).

你提出的设置似乎很好.

>起始路径是chdir路径的chroot路径
>该应用程序将能够访问chroot路径下的所有文件(除非有其他限制 – 例如PHP_openbasedir,权限等).

作为旁注 – 您的PHP应用程序还可以根据您显示的文档结构访问您的Nginx.conf和PHP-fpm.conf – 这似乎是您可能想要更改的内容(至少使文件读取 – 仅限该用户).

原文地址:https://www.jb51.cc/php/139450.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐