Networking

如何配置 IIS 以允許訪問 PHP 腳本的網路資源?

  • December 24, 2010

我目前正在開發一個 PHP 前端,它將執行在不同伺服器上的一系列應用程序連接在一起;其中許多應用程序會生成我需要訪問的文件,但這些文件(出於各種原因)駐留在它們的父伺服器上。

如果我從命令行發出一些腳本,例如:

<?php
var_dump(glob("\\\\machine-name\\some\\share\\*"));

我將獲得該目錄的全部內容,證明 PHP 以程式方式讀取 UNC 共享的內容沒有問題。但是,如果我嘗試從 Web 伺服器執行相同的腳本,我會得到一個空數組——更具體地說,如果我使用更明確的函式來“打開”一個像文件一樣的目錄,我會遇到訪問錯誤。

我認為這是一個權限問題,但我不是伺服器/網路管理員類型,所以我不確定我需要做些什麼來糾正這個問題並讓我的腳本執行,並且我已經簽出的連結沒有可能是由於我的背景,或者就 IIS 而言缺乏背景,再加上我們實際上並沒有為此使用 .NET 的事實,這給了我很大的幫助。

相關統計:Windows Server 2008 Standard SP2 IIS 7.0 PHP 5.2.9

我將連接到兩種類型的伺服器:其他幾台幾乎相同的 Server 2008 機器,以及一台執行嵌入式 XP 的機器。

沒有特別有用的連結,但也許我只是誤讀:

正如您所猜測的那樣,這是一個權限問題…… IIS 工作程序正在執行的使用者是機器上的本地帳戶(很可能是 IUSER_ <MACHINENAME>),並且該使用者未經過身份驗證(甚至帳戶也不存在!)在您嘗試通過 UNC 瀏覽的其他電腦上

就像測試一樣,您可以進入 IIS 管理器並更改 IIS 服務在該網站上執行的內容…我使用的是 Server 2003/IIS 6 中的術語,因為我沒有方便的 Server 2008 框現在。如果您在 IIS 7 管理器中四處尋找,您應該能夠找到可以設置工作程序執行的使用者的位置。

引用自:https://serverfault.com/questions/167213