修復乙個 PHP 配置故障

2021-08-23 15:54:13 字數 1225 閱讀 5357

故障現象:

在 windows server 2003+iis6.0 環境下,原先配置好的 php5.0.4 可以正常工作。但在同一臺機器上,apache2.2.8+php5.2.5下正常執行的**,在 iis 下不能正確執行 exec() 函式。比如,exec(』cd』,$arr,$ret) 語句,其執行結果,$arr 陣列的值應該是包含該語句的 php 檔案做在的 windows 路徑,但結果卻是「c:\windows」資料夾。並且不能正確執行其他外部 exe 程式。

診斷:iis 配置裡,已經開放 isapi 擴充套件允許。

windows\system32\cmd.exe 已經加過 iusr_… 賬戶許可權。

要執行的外部 exe 程式,已經拷貝到 windows\system32 資料夾下,也已經加過 iusr_… 賬戶許可權。

**所在的資料夾,已經賦予 iusr_… 賬戶許可權。

懷疑是 php 版本過低,或**許可權不夠導致該問題。

啟動機器後,報錯「no input file specified」,看來有門,因為錯誤資訊已經變化了,說明前述的配置在生效了。在網上搜尋產生該錯誤資訊的原因,提示「在 iis 的 isapi 模式下出現『no input file specified』資訊,只要把 php.ini 裡的 doc_root = ……注釋掉就可以了」,照此提示,在 php.ini 裡的 doc_root = …… 語句前加個分號,注釋掉語句,再重新啟動 iis。全好了!

注意, doc_root = …… 語句在 php.ini 裡一般是「doc_root =」,就是值是空的。但因為我的 php.ini 檔案是從與 apache 配合的 php 資料夾拷貝過來的,可能在安裝 apache 時,apache 賦了乙個值。其實把該值設為空的,應該和和注釋掉的效果相同。這裡不是關鍵的地方,僅僅是乙個小插曲而已。

結論:問題解決了。但不能確定是因為給**所在資料夾加上了 user 賬戶的許可權,還是因為公升級 php,而導致問題的解決的。總之,肯定是上述2個操作的某一把問題解決了,但不能確定是哪乙個?應該不是因為2個操作同時起作用的吧,感覺不是,沒有理由。

還有乙個收穫,就是,windows 很多問題是因為許可權配置引起的,所以,告誡那些外行系統管理員,請不要隨便加上或去除資料夾的的許可權,從而引起系統的安全性降低和意外故障。再注意,配置系統也要做好記錄,並及時測試該配置結果對系統的影響,不要哪天發現系統不對勁,還不知道是哪個配置引起的。

張慶(網眼) 2009-7-3

來自「網眼視界」:

「十萬個為什麼」電腦學習網:

修復乙個 PHP 配置故障

故障現象 在 windows server 2003 iis6.0 環境下,原先配置好的 php5.0.4 可以正常工作。但在同一臺機器上,apache2.2.8 php5.2.5下正常執行的 在 iis 下不能正確執行 exec 函式。比如,exec cd arr,ret 語句,其執行結果,arr...

修復Git打包的乙個Bug

今天gitweb打包時出現了點問題,按照之前的經驗,檢視apache的error log日誌,定位到錯誤是sh命令裡有非法的 這個非常明顯是由於檔名裡面有括號導致的錯誤,於是對括號進行轉義。括號問題解決。括號轉義後又出現空格錯誤,於是再轉義,問題解決!怎麼知道這些要轉義呢?我們可以先用乙個測試工程進...

乙個燈泡引發的Wi Fi故障

故障現象 我們從沒有想到過乙個燈泡會引發 wi fi 故障,而且干擾的是 5g頻段 感謝 koolshare 發現並提供了 問題燈泡 且通過了 02home 版主將燈泡轉贈給我們。我們通過使用 netscout aircheck g2 進行了測試對比,發現了故障原因。故障現象為這位發現使用的 wif...