Apache 设置“SetEnv PHP_ADMIN_VALUE open_basedir=path”不限于其虚拟主机配置

Apache 设置“SetEnv PHP_ADMIN_VALUE open_basedir=path”不限于其虚拟主机配置

我在 Ubuntu 服务器 18.04 上安装了一个 Apache Web 服务器,并配置了许多虚拟主机,我对每个虚拟主机使用不同的 open_basedir,最近我不得不将普通的 php7.2 更改为 php-fpm 才能启用 http2,因为 mpm_prefork 与 http2 不兼容,所以我禁用了它并使用了 mpm_event 和 php fast cgi。这里的重点是:我不得不将 open_basedir 语法从:

php_admin_value open_basedir /path

对于这个语法:

SetEnv PHP_ADMIN_VALUE "open_basedir = /path"

我注意到新的语法不能很好地工作,许多站点都崩溃了,apache 错误日志显示损坏的页面抱怨不允许访问文件,指向错误的 basedir 设置,例如 site1 上的页面无法工作,因为它们的路径在 site2 中不允许,发生了一些重叠,我不确定如何修复它。

日志显示类似以下内容:

[2021 年 8 月 25 日星期三 18:18:29.814771] [proxy_fcgi:error] [pid 24671:tid 139761735845632] [client xx.xxx:5539] AH01071:出现错误“PHP 消息:PHP 警告:未知:open_basedir 限制生效。文件(/var/www/site2/landing.php)不在允许的路径内:(/var/www/site1/:/tmp/)位于未知的第 0 行PHP 消息:PHP 警告:未知:无法打开流:操作不允许位于未知的第 0 行无法打开主脚本:/var/www/site2/landing.php(操作不允许)”

相关内容