2018年10月17日 星期三

IIS 手動移除 元件平台 PHP 套件 / Internet Information Server(IIS) Web Platform Remove Package (ex. PHP)


最近我家主管突然問了我一個玄奧的問題,IIS 安裝 php 擴充後要怎麼移除...我家主管說他有看過沒有地方是預設功能讓你自動移除的,我一開始覺得怎麼可能,這麼多人在用的東西卻是沒有預設自動移除功能...最後還真的沒有地方可以移除,所以我就上網找了資訊嘗試手動(土炮)移除是否是可行的,結果有成功就分享(炫耀)一下~[如果依照下面步驟做了失敗本人不負任何責任]

開啟IIS選擇[處理常式對應]



尋找你要移除相關套件(PHP將紅框處移除)



FastCGI設定


尋找你要移除相關套件(PHP將紅框處移除)


然後接下要對applicationHost.config進行修改~那applicationHost.config到底是什麼呢?


官方說明
介紹
當您使用IIS 7及更高版本時,ApplicationHost.config是配置系統的根文件。它包括所有站點,應用程序,虛擬目錄和應用程序池的定義,以及Web服務器設置的全局默認值(類似於machine.config和.NET Framework設置的root web.config)。
它的特殊之處在於它是安裝Web服務器時唯一可用的IIS配置文件(但是,如果用戶仍然可以添加web.config文件)。它包含一個特殊部分(稱為configSections),用於註冊所有IIS和Windows激活系統(WAS)部分(machine.config具有與.NET Framework部分相同的概念)。它具有將大多數IIS部分鎖定到全局級別的定義,因此默認情況下它們不能被層次結構中的較低級別web.config文件覆蓋。
該文件的位置當前位於%windir%\system32\inetsrv\config目錄中。本文檔按照它們在文件中出現的順序遍歷所有部分,並逐一解釋。最複雜的部分是system.webServer,因此建議讀者不要特別跳過閱讀該部分的描述。

請注意以下事項:
1. 此文檔指定每個配置節的內容,如applicationHost.config中所示。按照設計,許多部分是空的或不完整的(只有部分內容出現在XML中)。其餘值取自架構默認值。這樣做是為了避免過多的信息和文件的混亂,並保持其合理的可讀性。
    * 有關完整架構參考,包括每個部分中所有屬性的默認值,其有效範圍等,請參閱%windir%\system32\inetsrv\config\schema\IIS\_Schema.xml(對於IIS設置)或ASPNET\_Schema.xml(對於ASP.NET設置)或FX_Schema.xml(對於其他.NET Framework設置) )。
    * 為方便起見,這些文件的塊包含在本文檔的相應部分中,以便讀者可以了解每個部分可用的屬性,默認值等。請參閱下面有關如何讀取架構信息的其他說明。
2. 在對文件進行任何更改之前備份文件。



接下來(windwos10)先到把 C:\Windows\System32\inetsrv\Config\applicationHost.config複製一份到桌面進行修改(PS.記得多備份一份改壞才可以還原)


為了移除PHP套件為例子我對applicationHost.config做了以下修改


<applicationPools>標籤內移除
<add name="php" managedRuntimeVersion="v4.0" />


<defaultDocument enabled="true">標籤內移除
<add value="index.php" />


<handlers accessPolicy="Read, Script">移除
<add name="PHP_via_FastCGI2" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files\PHP\v7.1\php-cgi.exe" resourceType="Either" />
<add name="PHP_via_FastCGI1" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v7.0\php-cgi.exe" resourceType="Either" />
<add name="PHP53_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.3\php-cgi.exe" resourceType="Either" />
<add name="PHP_via_FastCGI" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\iis express\PHP\v7.1\php-cgi.exe" resourceType="Either" />
PS.移除前記得先把scriptProcessor路徑都記下來,之後將路徑下資料刪除


對應表
OS
Config(修改)
File(移除)
Windwos10
  • C:\Windows\System32\inetsrv\Config\applicationHost.config

  • C:\Program Files (x86)\iis express\PHP\
  • C:\Program Files (x86)\PHP\
  • C:\Program Files \PHP\
Windwos Service
???
???

修改applicationHost.config資訊 PS.記得先備份改壞才可以還原
依照刪除元件來移除檔案



參考:





沒有留言:

張貼留言

解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題

  解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題 環境 Server:Windows Server 2012 R2 Debug IDE: VS2019 Step1 確認是否有安裝Microsoft Access Dat...