程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php以fastCGI的方式運行時文件系統權限問題及解決方法

php以fastCGI的方式運行時文件系統權限問題及解決方法

編輯:關於PHP編程

       在IIS7.0上以FastCGI方式配置好PHP運行環境,測試可以正常運行PHP程序後,將PHP程序部署上去,導入程序原來的數據和配置信息。很快就有問題出來啦下面我們就詳細記錄下。

      今天准備將一個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的設置,同樣也可以解決問題,只是權限被進一步放寬了而已。

      以上所述就是本文的全部內容了,希望大家能夠喜歡。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved