IIS 執行系統程序權限


環境: windows 2008 server R2  IIS7.5 fastcgi
問題: 原來的程序采用Apache 運行,現在移植到IIS 上,原來的在程序中調用生成圖片的系統程序出現不能執行問題,也看了很多微博,現在總結一下,從一下幾個思路中進行解決;
 
因為原來的程序是執行正常的,因此主要是環境的變化導致的,所以排除程序問題,主要是從權限不同考慮。
 

1: 在查詢里看一下執行的用戶是誰。
      exec( "whoami" , $output , $ret );
      顯示一下$output 的信息,可以確認一下,iis執行的時候,用戶是誰。
     $ret 如果是 1 , 則說明執行有錯誤, 0 則執行正常。
 
2: 因為apache 是從系統用戶運行的,iis是網絡用戶,因此需要設置cmd的用戶權限,位置在c:/windows/system32/cmd.exe , 增加IUSR的可執行權限;
增加了此用戶還是不能正常運行;
 
3: 配置IIS的應用程序池,把標識改為LocalSystem ,  IIS默認的是ApplicationPoolIdentity
 
4:  增加網站權限,因為程序需要寫入數據,點擊你的網站,又上角有一個編輯權限,給你需要寫入數據的目錄增加你的網絡用戶權限讀寫,一般為IUSR用戶。
5:如果前面還不能解決房問題,確認一下執行程序的位置,因為IIS采用的網絡用戶執行,因此系統的環境與普通驗證用戶不同,把需要執行的程序路徑寫完整了,不要采用相對路徑;往往可以解決問題。
 
我的這個問題上摸索了一個上午,最后在第五部的時候把問題解決了,在我本地windows7 沒有問題,最后增加了一個完整路徑的配置,以后不同環境增加一個配置,我把這個問題整理一下,以便給有類似問題的人一個解決思路吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM