Включение PHP в IIS Express с помощью Visual Studio (без WebMatrix) - PullRequest
15 голосов
/ 23 мая 2011

Я работаю над этим веб-приложением, которое в основном является .NET, но часть написана на PHP. В моей среде разработки IIS Express является моим предпочтительным веб-сервером, поэтому я бы предпочел совместную работу PHP и .NET в этой среде.

Первая наивная попытка: просто добавьте PHP-скрипты на веб-сайт и загрузите их в браузер. В результате получается HTTP Error 404.21 - Not Found со следующими предложениями:

  • Установите PHP и правильно настройте обработчики.
  • Установите и включите PHP для этого веб-сайта.
  • Если вы используете WebMatrix, выполните следующие действия, чтобы включить PHP:
    • Откройте веб-сайт в WebMatrix.
    • Выберите рабочую область сайта и нажмите «Настройки».
    • Установите флажок «Включить PHP», чтобы установить и включить PHP.

Не использовать WebMatrix, это не поможет мне. Затем я перехожу к глубокому анализу всего, что связано с IIS Express и PHP в Google. Из того, что я прочитал, это должно быть выполнимо, но все, что я нахожу относительно предмета, кажется, предполагает, что моя IDE - WebMatrix. Это не так.

Кто-нибудь знает, возможно ли установить на IIS Express и настроить его для работы с веб-сайтом на основе Visual Studio, без необходимости устанавливать WebMatrix? Если да, то как?

Ответы [ 4 ]

22 голосов
/ 23 мая 2011

IIS Express поддерживает PHP без веб-матрицы.Вы можете установить только IIS Express и заставить его работать с Visual Studio.Для этого вам понадобится Visual Studio 2010 с пакетом обновления 1 (SP1).

  1. Загрузите IIS Express по этой ссылке: Internet Information Services (IIS) 7.5 Express

  2. В Visual Studio настройте свой проект WebSite / WebApplication для использования IIS Express.Взгляните на эту тему Как настроить проект веб-сайта для использования IIS Express?

  3. Чтобы включить PHP в IIS Express, установите PHP и обновите applicationhost.config(% USERPROFILE% \ документы \ iisexpress \ Config \ applicationHost.config).Для этого вы можете использовать версию appcmd.exe, расположенную в папке установки IIS Express.См. эту ссылку для получения подробной информации.

Если все установлено в местах по умолчанию для версий 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 есть пробелы, вы ДОЛЖНЫ заключить путь в одинарные и двойные кавычки, как в примере выше.

Наконец, если у вас нет VS2010 SP1, возможно, вам следует взглянуть на этот пост: Отладка веб-проекта .NET с помощью IIS Express

13 голосов
/ 12 марта 2014

Другой вариант - использовать установщик веб-платформы.

Установщик веб-платформы установит PHP и настроит IIS Express для вас.

5 голосов
/ 11 июля 2017

Более новые версии Visual Studio поддерживают отдельную копию файла конфигурации IIS Express «applicationhost.config».В большинстве онлайн-инструкций показано, как нацелить главный файл applicationhost.config, который не имеет никакого эффекта, поскольку VS2017 поддерживает отдельную копию и использует эту копию при запуске IIS Express.Чтобы включить PHP в этом сценарии, мне пришлось отредактировать личную копию VS2017.

  • Предварительное условие - используйте программу установки веб-платформы для установки 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 / 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% не поможет, если вы не сделаете что-то более сложное, например, запустите IIS Express вне Visual Studio.

2 голосов
/ 22 марта 2016

Если вы используете IIS через Visual Studio, вам нужно обновить .vs \ config \ applicationhost.config в каталоге вашего решения с помощью обработчика php

...