php以fastCGI的方式運行時文件系統(tǒng)權(quán)限問題及解決方法
今天準(zhǔn)備將一個php demo放在IIS下運行,網(wǎng)站在IIS下的配置是這樣的:
應(yīng)用程序池是集成模式下的.net framework 2.0(2.0或4.0沒什么關(guān)系,因為php以fastCGI的方式在跑), 應(yīng)用程序池標(biāo)識配置為IIS內(nèi)置的NETWORKSERVICE, 使用的認(rèn)證方式為匿名身份驗證。
打開本地的網(wǎng)站,訪問php頁面, 出現(xiàn)了500錯誤。
好吧,是權(quán)限問題,最簡單的解決辦法是把C:\Users\Administrator\PhpstormProjects\phpDemo的權(quán)限設(shè)成Everyone, 并允許完全控制:
重新訪問php頁面,成功了:
上面的方法是夠簡單,但也太不安全了,平時本地搭個demo這樣做沒問題,真正上線的時候,這樣做遲早出問題的。
于是重新設(shè)置,把該目錄下的只讀權(quán)限賦給NETWRORKSERVICE帳號再試一下
不過問題還是沒有解決,訪問的時候,出現(xiàn)了401錯誤
錯誤信息中包括顯示登錄用戶為匿名,檢查了網(wǎng)站下的身份驗證(再點擊 匿名身份驗證->編輯),原來網(wǎng)站默認(rèn)情況下,在登錄方法為匿名時,使用的默認(rèn)登錄用戶為IUSR(就是我們看到的匿名登錄用戶了)
那么解決辦法就是:
1. 將IUSR設(shè)置為C:\Users\Administrator\PhpstormProjects\phpDemo的讀權(quán)限,類似之前對NETWORKSERVICE的設(shè)置。
2. 或選擇使用應(yīng)用程序池標(biāo)識即可。
經(jīng)試驗,方法1與2都成功。
Note:NETWORKSERVICE在IIS7中隸屬于iis_iusers用戶組,之前對NETWORKSERVICE的設(shè)置也可以改為對iis_iusers的設(shè)置,同樣也可以解決問題,只是權(quán)限被進(jìn)一步放寬了而已。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
實例講解通過PHP創(chuàng)建數(shù)據(jù)庫
在本篇文章里小編給大家分享了關(guān)于如何通過​PHP創(chuàng)建數(shù)據(jù)庫的知識點內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-01-01

關(guān)于php支持分塊與斷點續(xù)傳文件下載功能代碼