簡體   English   中英

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="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);
  • 能夠包含和/或使用實例根文件夾之外的目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM