PHP FastCGI open_basedir IIS 7 限制

PHP FastCGI open_basedir restriction on IIS 7

我在一台服务器上有两个环境,它们通过 EnvironmenteVariable 分开。那部分就像一个魅力(两个 open_basedir 的 FastCGI 池已设置为 ApplicationHost

<application fullPath="C:\path\to\php\php-cgi.exe" arguments="-d open_basedir=C:\path\to\webroot\ENV_DIR">

及相关 web.config

<add name="php" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\path\to\php\php-cgi.exe|-d open_basedir=C:\path\to\webroot\ENV_DIR" resourceType="Unspecified" requireAccess="Script" />).

问题 开始于对其他文件夹的 open_basedir 限制 - 例如 \\path\to\network\folderC:\path\to\webroot\FOLDER(在环境文件夹之外)。如何启用对这些文件夹的访问权限?

尝试过:

'... open_basedir="C:\path\to\webroot\ENV_DIR;C:\path\to\webroot\FOLDER"'

没有任何帮助。

好的,找到解决办法了。也许其他人也需要它。而不是使用 open_basedir,而是使用 doc_root(仅限 IIS,如果没记错的话,PHP 选项)。 以下是示例:

applicationHost.conf 文件:

<application fullPath="C:\path\to\php\php-cgi.exe" arguments="-d doc_root=C:\path\to\webroot\ENV_DIR">

及相关的web.config

<add name="php" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\path\to\php\php-cgi.exe|-d doc_root=C:\path\to\webroot\ENV_DIR" resourceType="Unspecified" requireAccess="Script" />

通过这种方式,您可以:

  • 设置instance-based环境变量(Linux下的.env);
  • 能够包含 and/or 使用实例根文件夹之外的目录。