首頁 >後端開發 >php教程 >php以fastCGI的方式運行在iis下,遇到的檔案系統權限問題及解決方法

php以fastCGI的方式運行在iis下,遇到的檔案系統權限問題及解決方法

WBOY
WBOY原創
2016-08-08 09:24:391013瀏覽

今天準備將一個php demo放在IIS下運行,網站在IIS下的配置是這樣的:

應用程式集區是整合模式下的.net framework 2.0(2.0或4.0沒什麼關係,因為php以fastCGI的方式在跑), 應用程式集區標識配置為IIS內建的NETWORKSERVICE, 使用的認證方式為匿名驗證。

開啟本地的網站,造訪php頁面, 出現了500錯誤。

好吧,是權限問題,最簡單的解決方法是把C:UsersAdministratorPhpstormProjectsphpDemo的權限設成Everyone, 並允許完全控制:

重新訪問php頁面,成功了:

上面的方法是夠簡單,但也太不安全了,平常本地搭個demo這樣做沒問題,真正上線的時候,這樣做遲早出問題的。

於是重新設置,把該目錄下的唯讀權限賦給NETWRORKSERVICE帳號再試一下

不過問題還是沒有解決,訪問的時候,出現了401錯誤

錯誤訊息中包含顯示登入使用者為匿名,檢查了網站下的驗證(再點選匿名驗證->編輯),原來網站預設情況下,在登入方法為匿名時,使用的預設登入使用者為IUSR(就是我們看到的匿名登入使用者了)

那麼解決方法就是:

1. 將IUSR設定為C:UsersAdministratorPhpstormProjectsphpDemo的讀取權限,類似先前對NETWORKSERVICE的設定。

2. 或選擇使用應用程式集區識別即可。

經試驗,方法1與2都成功。

Note: NETWORKSERVICE在IIS7中隸屬於iis_iusers用戶群組,先前對NETWORKSERVICE的設定也可以改為對iis_iusers的設置,同樣也可以解決問題,只是權限被進一步放寬了而已。

以上就介紹了php以fastCGI的方式運行在iis下,遇到的檔案系統權限問題及解決方法,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn