⑴ php以fastCGI的方式運行時文件系統許可權問題及解決方法
在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:的許可權設成Everyone,
並允許完全控制:
重新訪問php頁面,成功了:
上面的方法是夠簡單,但也太不安全了,平時本地搭個demo這樣做沒問題,真正上線的時候,這樣做遲早出問題的。
於是重新設置,把該目錄下的只讀許可權賦給NETWRORKSERVICE帳號再試一下
不過問題還是沒有解決,訪問的時候,出現了401錯誤
錯誤信息中包括顯示登錄用戶為匿名,檢查了網站下的身份驗證(再點擊
匿名身份驗證->編輯),原來網站默認情況下,在登錄方法為匿名時,使用的默認登錄用戶為IUSR(就是我們看到的匿名登錄用戶了)
那麼解決辦法就是:
1.
將IUSR設置為C:的讀許可權,類似之前對NETWORKSERVICE的設置。
2.
或選擇使用應用程序池標識即可。
經試驗,方法1與2都成功。
Note:NETWORKSERVICE在IIS7中隸屬於iis_iusers用戶組,之前對NETWORKSERVICE的設置也可以改為對iis_iusers的設置,同樣也可以解決問題,只是許可權被進一步放寬了而已。
以上所述就是本文的全部內容了,希望大家能夠喜歡。
⑵ IIS6.0 IIS7.5應用程序池自動停止怎麼辦
在日誌中發現IIS7.5的應用程序池自動停止,同時訪問網站提示:HTTP Error 503,The service is unavailable.. 的錯誤,搜遍整個互聯網總算是解決了問題。小編也整理了IIS6及IIS7.5遇到此類問題匯總解決方法,歡迎大家嘗試。
關於IIS6的(適於IIS7)解決方法
描述:
iis6應用程序池被自動禁用問題 Service Unavailable 應用程序池 'DefaultAppPool' 被自動禁用,原因是為此應用程序池提供服務的進程中出現一系列錯誤。應用程序-特定 許可權設置未將 COM 伺服器應用程序(CLSID 為 .............
1.首先是打開IIS管理器.檢查應用程序池,果然"DefaultAppPool"出錯了.而且不是平常的停止的圖標.
2.試著重啟"DefaultAppPool"應用程序池,一瀏覽頁面馬上就關閉.
3.到了查看事件日誌的時候了.發現了以下這類的日誌
事件類型: 警告
事件來源: W3SVC
事件種類: 無
事件 ID: 1009
日期: 2008-6-24
事件: 16:12:33
用戶: N/A
計算機: MAIL
描述:
為應用程序池 'DefaultAppPool' 提供服務的進程意外終止。進程 ID 是 '3160'。進程退出代碼是 '0xffffffff'。
4.會不會是默認的程序池出問題了?於是,嘗試新建一個新的程序池.將默認網站的程序池改成新的.但是問題依舊.出現相似的日誌.
事件類型: 錯誤
事件來源: W3SVC
事件種類: 無
事件 ID: 1002
日期: 2008-6-25
事件: 14:17:04
用戶: N/A
計算機: MAIL
描述:
應用程序池 'AppPool #1' 被自動禁用,原因是為此應用程序池提供服務的進程中出現一系列錯誤。
5.再查找事件日誌另一個日誌引起了我的注意.如下:
事件類型: 錯誤
事件來源: DCOM
事件種類: 無
事件 ID: 10016
日期: 2008-6-24
事件: 16:12:33
用戶: NT AUTHORITY/NETWORK SERVICE
計算機: MAIL
描述:
應用程序-特定 許可權設置未將 COM 伺服器應用程序(CLSID 為
{A9E69610-B80D-11D0-B9B9-00A0C922E750}
)的 本地 激活 許可權授予用戶 NT AUTHORITY/NETWORK SERVICE SID (S-1-5-20)。可以使用組件服務管理工具修改此安全許可權。
6.有點戲了.看看CLSID 為 {A9E69610-B80D-11D0-B9B9-00A0C922E750}是什麼服務先.最後在下面的注冊表項中找到它:
HKEY_CLASSES_ROOT/AppID/{A9E69610-B80D-11D0-B9B9-00A0C922E750}
7.名字剛好是"IIS Admin Service"
8.好了,找到是什麼了.從"管理工具"中打開"組件服務",找到IIS Admin Service對比一下CLSID是否一致
9.確定是這個以後,接下來的就是為它增加NETWORK SERVICE許可權了.
A啟動和激活許可權,點擊"自定義"..
B.在用戶列表中添加"NETWORK SERVICE",
C.並給予本地啟動和激活許可權,保存退出.
另外,如果還是有問題,把「IIS wamreg admin SERVICE」也這樣操作一下,右健選擇「屬性」,找到「安全」,在「啟動和激活許可權」中編輯「自定義」,添加帳號
network service network service 分別給本地啟動和激活許可權。
2014年2月18日再補充:今日有網友向小編反饋他的解決方法,就是在Windows server 2008 R2 64位下使用PHP5.5.x版本,不用以上設置,也解決了此問題。
到此問題解決。
也有朋友提到,選項無法編輯,為灰色,應該怎麼辦?
這個是win2008 R2 x64的安全特性.一些核心系統組件只能允許本地帳號,TrustedInstaller有完全控制許可權,而不是本地管理員組
要在Windows Server 2008 R2 上修改 「IIS Admin Service」 ,你需要授予本地管理員組有注冊表許可權:
1.在組件管理器中查到IIS的appid
2.使用regedit,定位到HKEY_CLASSES_ROOTAppID{剛查到的ID}」
3.右鍵點擊{剛查到的ID},選許可權
4.在許可權設置窗口中點高級,選擇所有者標簽,選中administrators為所有者
5.授予administrators組有讀/寫等所有權 注意:務必不要修改TrustedInstaller的許可權
現在,重新執行組件管理器,可以修改許可權了
⑶ iis如何運行php
1.首先
我們需要安裝好IIS,默認windows2008下是iis7.0,具體的安裝可以查看iis7.0安裝圖解
2. 安裝好IIS後,默認已經支持asp,這里我們開始安裝.net環境
進入系統,打開桌面左下角「伺服器管理器」
點擊功能->"添加功能"->勾選「.NET Framework 3.5.1功能」
點擊下一步,安裝完成即可。
3. 接下來配置PHP環境,從常用軟體下載php5.2.6和php.ini文件
下載後,將php5.2.6解壓為php,並將php.ini拷貝到php裡面,這里我們將php放置在C:Program Files目錄下,
並用記事本打開php.ini文件,找到extension_dir這一行,將路徑修改為ext文件所在路徑,我們這里為 C:Program Filesphpext
設置php文件夾目錄許可權:
administrators 完全控制
system 完全控制
users 讀取和運行,列出文件夾目錄,讀取
設置系統環境變數:
Path環境變數末尾追加C:Program Filesphp
新建系統變數PHPRC變數值C:Program Filesphp
IIS設置:
A.添加應用程序池
E.將站點進程池設置到創建的php進程池內,重啟IIS,在默認站點下創建一個info.php,內容如下:
<?php
phpinfo();
?>
打開localhost/phpinfo.php 查看效果:
到這里PHP環境配置完成。
額外注意:
IIS+php 運行phpMyAdmin
Cannot start session without errors, please check errors 錯誤解決辦法
在php安裝目錄 找到php.ini
將php.ini中的session.auto_start的值改為1(啟動),默認是0(禁用),
在你的php安裝目錄下找到php.ini並且在該目錄下創建Temp文件夾
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
;session.save_path = "D:/host/php/Temp"
session.save_path 這一行,設成session.save_path = 「D:/host/php/Temp」 (把前面分號去掉)
然後重啟IIS伺服器
在phpmyadmin中找到,config.sample.inc.php,改成config.inc.php,
找到 $cfg['blowfish_secret'] 將後面的賦值,加入數字和字母組合。
⑷ 伺服器php怎麼用iis7配置
方法一、安裝使用phpmanager
1.下載安裝phpmanager,
2.創建並配置php.ini。將php.ini-development文件改名為php.ini,修改date.timezone=」Asia/Shanghai」。去分號開啟所需的擴展,這里不贅述。
3.打開IIS7,在主面板中雙擊phpmanager,然後點擊其中的」Register new PHP Version」,選擇你的php-cgi.exe,確定。剩下其它的配置它將給你自動設置好。
4.完成!
方法二、手動配置cgi模式(php5.3)
1.創建並配置php.ini,同上2。
2.打開IIS7,在主面板中雙擊處理程序映射,然後在右側菜單中點擊「添加模塊映射…」,設置如下:
請求路徑:*.php;
模塊:FastCgiMole;
可執行文件:你php文件夾中的php-cgi.exe;
名稱:php;
3.完成!
方法三、手動配置isapi模式(php5.2)
1.創建php.ini。php.ini-dist改名為php.ini,打開找到extension_dir=」/」,把路徑改為你的php所在路徑。
2.添加一個應用程序池,設置如下:
名稱:php;
.net framework版本:無託管代碼;
託管管道模式:集成
勾選立即啟動應用程序池。
確定。
3.雙擊ispa和cgi限制。添加一個限制,設置如下:
ISAPI或CGI路徑: 你的php5isapi.dll。
描述:php。
勾選允許執行擴展路徑。
確定。
4.添加一個isapi篩選器,設置如下:
篩選器名稱:php;
可執行文件:你的php5isapi.dll文件;
確定。
5.添加腳本映射。 雙擊處理程序映射, 點擊右側菜單的「添加腳本映射…」,設置如下:
請求路徑:*.php;
可執行文件:你的php5isapi.dll文件;
名稱:php5;
確定。
6.完成!