16

私はほとんどが.NETであるこのWebアプリケーションに取り組んでいますが、一部はPHPで書かれています。私の開発環境では、IIS Expressが私の選択したWebサーバーであるため、この環境でPHPと.NETを連携させたいと考えています。

最初の素朴な試み:PHPスクリプトをWebサイトにスローし、ブラウザーにロードするだけです。結果はHTTP Error 404.21 - Not Found、次の提案を含みます。

  • PHPをインストールし、ハンドラーを正しく構成します。
  • このWebサイトにPHPをインストールして有効にします。
  • WebMatrixを使用している場合は、次の手順に従ってPHPを有効にします。
    • WebMatrixでWebサイトを開きます。
    • サイトワークスペースを選択し、[設定]をクリックします。
    • PHPをインストールして有効にするには、[PHPを有効にする]チェックボックスをオンにします。

WebMatrixを使用していないので、これは何の役にも立ちません。次に、GoogleでIISExpressとPHPに関連するすべての詳細なトロールを実行します。私が読んだことから、それは実行可能であるはずですが、この主題について私が見つけたものはすべて、私のIDEがWebMatrixであると想定しているようです。そうではありません。

IIS Expressにインストールして、WebMatrixをインストールせずにVisual StudioベースのWebサイトで動作するように構成できるかどうかを誰かが知っていますか?はいの場合、どのように?

4

4 に答える 4

23

IIS Expressは、WebマトリックスなしでPHPをサポートします。IIS Expressのみをインストールして、VisualStudioで動作させることができます。このためには、Visual Studio2010SP1が必要です。

  1. 次のリンクからIISExpressをダウンロードします:インターネットインフォメーションサービス(IIS)7.5 Express

  2. Visual Studioで、IISExpressを使用するようにWebSite/WebApplicationプロジェクトを構成します。このスレッドを見てくださいIISExpressを使用するようにWebサイトプロジェクトを構成するにはどうすればよいですか?

  3. IIS ExpressでPHPを有効にするには、PHPをインストールし、applicationhost.config(%userprofile%\ document \ iisexpress \ config \ applicationhost.config)を更新します。これを行うには、IISExpressインストールフォルダーにあるバージョンのappcmd.exeを使用できます。詳細については、このリンクを参照してください。

すべてが米国英語バージョンの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をお持ちでない場合は、おそらく次の投稿をご覧ください。IISExpressを使用して.NETWebプロジェクトをデバッグする

于 2011-05-23T16:25:50.980 に答える
14

もう1つのオプションは、WebPlatformInstallerを使用することです。

Web Platform Installerは、PHPをインストールし、IISExpressを構成します。

于 2014-03-12T10:18:03.333 に答える
5

Visual Studioの新しいバージョンでは、IISExpressの構成ファイル「applicationhost.config」の個別のコピーが保持されます。オンラインのほとんどの手順では、マスターapplicationhost.configファイルをターゲットにする方法を示していますが、VS2017は別のコピーを保持し、IISExpressの起動時にこのコピーを使用するため効果がありません。このシナリオでPHPを有効にするには、VS2017のプライベートコピーを編集する必要がありました。

  • 前提条件-Webプラットフォームインストーラーを使用してPHPをインストールします。(IIS Express用のものは必要ありません。通常のPHPダウンロードだけです。)x86またはx64を使用できます。これにより、選択したC:\ Program Files \またはC:\ Program Files(x86)\のいずれかにPHPがインストールされます。また、彼らのWebサイトから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:\ {{YOURPROJECT}}\。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:\ {{YOURPROJECT}}\。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 / handlers

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

明確にするために、IIS Express \ AppServer \ applicationhost.configまたは%appdata%フォルダー内の編集は、VisualStudioの外部でIISExpressを起動するなどの高度な操作を行わない限り、役に立ちません。

于 2017-07-11T19:53:11.467 に答える
2

Visual Studioを介してIISを実行している場合は、ソリューションディレクトリの.vs \ config\applicationhost.configをphpハンドラーで更新する必要があります。

于 2016-03-22T02:38:37.457 に答える