亚洲综合婷婷,欧美电影一区二区三区,日本一区二区三区在线看,精品成人免费一区二区在线播放,日本高清二区,丁字裤翘臀美女,99热热99

首頁 服務(wù) 產(chǎn)品 文檔 關(guān)于

iis7 部署php 上傳文件出現(xiàn)401.3 解決辦法

首先登錄到網(wǎng)站后臺進行了測試發(fā)現(xiàn)上傳的圖片在確實瀏覽器打不開且出現(xiàn)了無法訪問的錯誤信息:“401 -?授權(quán): 由于憑據(jù)無效,訪問被拒絕。
?
然后又測試了該服務(wù)器上其他幾個php項目發(fā)現(xiàn)也出現(xiàn)了一樣的錯誤:圖片上傳成功,但瀏覽器沒有權(quán)限訪問
?
因為測試的幾個php系統(tǒng)是不一樣的,有thinkphp,wordpress,百度ueditor編輯器
所以這幾個系統(tǒng)同時出現(xiàn)問題的概率實在是太小了,所以基本上排除了程序的bug
?
且看到上面的錯誤就知道文件是存在的只是沒有訪問的權(quán)限,于是登錄到遠程桌面進入服務(wù)器找到上傳的圖片目錄并發(fā)現(xiàn)了測試的圖片,說明圖片是上傳成功的
既然之前上傳的圖片可以訪問且圖片也上傳成功了,那為什么新上傳的圖片卻不能訪問了呢?
于是查看上傳目錄,目錄的權(quán)限已經(jīng)包含"Everyone",目錄應(yīng)該也沒有問題(之前上傳的圖片都可以訪問)
?

然后一看測試的圖片屬性傻眼了,原來圖片的屬性中并不包含"Everyone"項這跟上傳的目錄的權(quán)限不相符啊(如果在某個目錄下新建文件,那么新建的文件是繼承該目錄的權(quán)限的)
?
?
看到這我就想不明白了,既然目錄的權(quán)限有"Everyone"項那么上傳的圖片的權(quán)限也應(yīng)該繼承父類的權(quán)限才對,所以好長時間也沒有想明白這其中的原因
因此也不知道該如何下手解決,只是在網(wǎng)絡(luò)上漫無目的看有沒有類似的問題,并按照網(wǎng)站的說明進行嘗試
?
最后在windows下使用IIS配置的PHP無法上傳文件的解決方法這篇文章的幫助下成功解決了該問題
?
問題總結(jié):
在Windows平臺下如果PHP使用的是IIS的話那么php在上傳文件時是先將文件上傳到一個臨時目錄下的
(該配置項可以在php.ini的"upload_tmp_dir"里進行配置,由于我們的服務(wù)器并沒有進行過配置,所以php將使用系統(tǒng)的臨時目錄"C:\Windows\Temp")
然后PHP再將臨時目錄中上傳的文件再移動到你指定的目錄中去
?
這樣就存在一個問題,即Temp目錄下默認的權(quán)限是沒有相應(yīng)的IIS訪問權(quán)限的(windows默認配置),當(dāng)文件上傳到該目錄時那么上傳的文件默認是繼承了Temp目錄的權(quán)限
而PHP再將文件文件移到指定的目錄時,被移動的文件并不會繼承移動后所在的目錄權(quán)限
從而導(dǎo)致從瀏覽器訪問被移動的文件時,因為該文件沒有相應(yīng)的權(quán)限(IIS訪問權(quán)限)而無法訪正常問
也就出現(xiàn)了文件上傳成功但瀏覽器訪問時出現(xiàn)401 - 未授權(quán): 由于憑據(jù)無效,訪問被拒絕。”的問題
?
Windows默認的權(quán)限配置
?
?更改后的權(quán)限配置(必須包含IUSER和IIS_IUSERS權(quán)限或Everyone
?
解決辦法:

  1. 給php.ini中的upload_tmp_dir項設(shè)置一個臨時目錄并做好相應(yīng)的權(quán)限(推薦方法)

  2. 將"C:\Windows\Temp"目錄添加相應(yīng)的權(quán)限
重要說明:
php.ini 的upload_tmp_dir 目錄權(quán)限必須要包含IUSER和IIS_IUSERS權(quán)限或Everyone


來源http://www.cnblogs.com/huangtailang/p/4608175.html