如何解决IIS 7上的PHP FastCGI open_basedir限制
我在一台服务器上有两个环境,它们通过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 \ folder 或 C:\ path \ to \ webroot \ FOLDER (在环境文件夹之外)。如何启用对这些文件夹的访问?
尝试过:
- 使用open_basedir =“ multiple; folders”在每个环境中分隔php.ini文件
- 将多个文件夹添加到web.config,将applicationHost文件添加到如下参数:
'... 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" />
通过这种方式,您可以:
- 设置基于实例的环境变量(在Linux下为.env);
- 可以包含和/或使用实例根文件夹之外的目录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。