2011-05-23 57 views
15

我正在研究這個主要是.NET的Web應用程序,但一部分是用PHP編寫的。在我的開發環境中,IIS Express是我選擇的Web服務器,所以我寧願讓PHP和.NET在此環境中一起工作。使用Visual Studio(sans WebMatrix)在IIS Express上啓用PHP

第一次幼稚的嘗試:只需將PHP腳本放入網站,並將它們加載到瀏覽器中即可。其結果是HTTP Error 404.21 - Not Found有以下幾點建議:

  • PHP安裝並正確配置處理器。
  • 爲此網站安裝並啓用PHP。
  • 如果您使用的是WebMatrix,請按照以下步驟啓用PHP:
    • 在WebMatrix中打開Web站點。
    • 選擇網站工作區,然後單擊設置。
    • 選中「啓用PHP」複選框以安裝並啓用PHP。

不使用WebMatrix中,這無助於幫助我。然後,我開始深入瞭解Google上與IIS Express和PHP相關的任何內容。從我所讀的內容來看,它應該是可行的,但是我發現關於這個主題的一切似乎都假定我的IDE是WebMatrix。事實並非如此。

有誰知道是否可以在IIS Express上安裝並將其配置爲與基於Visual Studio的Web站點一起工作,而無需安裝WebMatrix?如果是,如何?

回答

21

IIS Express支持不帶Web矩陣的PHP。您可以單獨安裝IIS Express,並使其與Visual Studio一起工作。爲此,您需要Visual Studio 2010 SP1。

  1. 下載IIS快遞從這個鏈接:Internet Information Services (IIS) 7.5 Express

  2. 在Visual Studio中配置你的網站/ WebApplication的項目中使用IIS快遞。看看這個線程How do I configure a website project to use IIS Express?

  3. 要在IIS Express上啓用PHP,請安裝PHP並更新applicationhost.config(%userprofile%\ documents \ iisexpress \ config \ applicationhost.config)。您可以使用位於IIS Express安裝文件夾中的appcmd.exe版本來執行此操作。有關詳細信息,請參見this link

如果一切安裝在爲Windows美國英語版的默認地方的命令是:

"C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/fastCGI /+[fullPath='"C:\Program Files (x86)\PHP\php-cgi.exe"'] 
"C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='"C:\Program Files (x86)\PHP\php-cgi.exe"',resourceType='Unspecified'] 

注意,如果有在php-cgi.exe文件的完整路徑空間,您必須將單引號和雙引號括起來,如上例所示。

最後,如果你沒有VS 2010 SP1,也許你應該在這個崗位看看:Debug Your .NET Web Project With IIS Express

+0

但是PHP呢? – 2011-05-24 09:41:59

+3

要在IIS Express上啓用PHP,請手動安裝PHP並更新applicationhost.config(%userprofile%\ documents \ iisexpress \ config \ applicationhost.config)。您可以使用位於IIS Express安裝文件夾中的appcmd.exe來執行此操作。以下鏈接將幫助您配置PHP http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-7/(在此查找'配置IIS 7通過使用命令行處理PHP請求') – vikomall 2011-05-24 18:23:35

+0

這是令人難以置信的令人難以置信的是,你可以在IISExpress上運行PHP! – 2011-08-18 19:54:07

13

另一種選擇是使用Web平臺安裝程序。

Web平臺安裝程序將安裝PHP和爲您配置IIS Express。

+1

超級簡單與網絡平臺安裝5.0。謝謝 – TetraDev 2017-02-09 22:56:55

2

如果您正在運行通過Visual Studio IIS,你需要更新.VS \ CONFIG \對ApplicationHost.config與PHP處理您的解決方案目錄

2

的Visual Studio的較新版本保持一個單獨的副本IIS表達的配置文件「applicationhost.config」。大多數在線說明向您展示瞭如何定位主要applicationhost.config文件,該文件無效,因爲VS2017維護獨立的副本,並在啓動IIS Express時使用此副本。爲了在這種情況下啓用PHP,我必須編輯VS2017的私人副本。

  • 先決條件 - 使用Web平臺安裝程序來安裝PHP。 (您不需要IIS Express,只需定期下載PHP)。您可以使用x86或x64。這將根據您選擇的哪一個將PHP安裝到C:\ Program Files \或C:\ Program Files(x86)\中。你也可以簡單地從他們的網站抓取PHP。

  • 找到您的項目的applicationhost.config。它位於一個隱藏的.vs子文件夾中。例如C:\ MyProject \ .vs \ applicationhost.config

  • 從命令窗口運行以下命令,將您的路徑替換爲您安裝的項目文件夾和PHP二進制文件。

"C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/fastCGI /+[fullPath='"C:\Program Files (x86)\PHP\{{YOUR PHP VERSION}}\php-cgi.exe"'] /apphostconfig:"C:\{{YOUR PROJECT}}\.vs\config\applicationhost.config" 
"C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='"C:\Program Files (x86)\PHP\{{YOUR PHP VERSION}}\php-cgi.exe"',resourceType='Unspecified'] /apphostconfig:"C:\{{YOUR PROJECT}}\.vs\config\applicationhost.config" 

或者,你可以簡單地在文本編輯器編輯項目的對ApplicationHost.config並添加下面的部分。

system.webServer/FastCGI的

<fastCgi> 
    <application fullPath="C:\Program Files (x86)\PHP\v7.1\php-cgi.exe" /> 
</fastCgi> 

system.webServer /處理器

<add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v7.1\php-cgi.exe" resourceType="Unspecified" /> 

需要明確的是,編輯IIS快遞\ AppServer的\對ApplicationHost.config或在一個您的%appdata%文件夾將無法幫助,除非您正在做一些像在Visual Studio之外啓動IIS Express一樣的高級功能。

相關問題