相关疑难解决方法(0)

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/
Run Code Online (Sandbox Code Playgroud)

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

===

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

网络根位置: /var/www/

domain.com/
 |---conf/
 |    |--nginx.conf
 |    |--php-fpm.conf
 |
 |---ssl/
 |---logs/
 |---session/
 |---domains/
       |---www/
       |---app/
       |---dev/
Run Code Online (Sandbox Code Playgroud)

现在这里的 php-fpm 设置将是:

chroot = /var/www/domain.com/
chdir  = /domains/www
Run Code Online (Sandbox Code Playgroud)

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

chroot php-fpm

13
推荐指数
1
解决办法
2万
查看次数

Apache:设置 php-fpm chroot 后“找不到文件”

我正在努力完成在 php-fpm 上实现 chroot 的最后一步,Apache 2.4 在 CentOS 7 上运行。

我已经成功设置测试了没有 chroot 的 php-fpm 连接。但是,一旦我将 chroot 指令添加到 /etc/php-fpm.d/file.conf 中的 conf 文件中,我就会得到一个“找不到文件”的消息,正如许多其他人所经历的那样

这是我的 php-fpm conf 文件:

[site1.com]
user = user1
group = user1
listen = /var/run/php-fpm/site1.com.sock
listen.owner = user1
listen.group = user1
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = on
php_admin_value[short_open_tag] = On
php_admin_value[doc_root] = /
php_admin_value[error_log] = /logs/php-errors
php_admin_flag[log_errors] = on
pm = ondemand
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3 …
Run Code Online (Sandbox Code Playgroud)

php-fpm apache-2.4

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

php-fpm ×2

apache-2.4 ×1

chroot ×1