Я работаю над этим веб-приложением, которое в основном является .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? Если да, то как?
IIS Express поддерживает PHP без веб-матрицы. Вы можете установить только один IIS Express и заставить его работать с Visual Studio. Для этого вам понадобится Visual Studio 2010 SP1.
Загрузите IIS Express по этой ссылке: Internet Information Services (IIS) 7.5 Express
В Visual Studio настройте проект WebSite / WebApplication для использования IIS Express. Взгляните на эту тему Как настроить проект веб-сайта на использование IIS Express?
Чтобы включить PHP в IIS Express, установите PHP и обновите applicationhost.config (% userprofile% \ documents \ 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 есть пробелы, вы ДОЛЖНЫ вставить путь в одиночные и двойные кавычки, как в приведенном выше примере.
Наконец, если у вас нет VS 2010 SP1, возможно, вам стоит взглянуть на это сообщение: Отладка вашего веб-проекта .NET с помощью IIS Express
Другой вариант – использовать установщик Web Platform.
открытый установщик веб-платформы (можно загрузить с http://go.microsoft.com/fwlink/?LinkId=255386 )
поиск PHP для IIS Express
нажмите «Установить»
Установщик Web Platform установит PHP и настроит IIS Express для вас.
Если вы запускаете IIS через Visual Studio, вам необходимо обновить .vs \ config \ applicationhost.config в каталоге решений с помощью обработчика php
Новые версии Visual Studio поддерживают отдельную копию конфигурационного файла IIS Express «applicationhost.config». Большинство инструкций в Интернете показывают вам, как настроить целевой файл applicationhost.config, который не имеет никакого эффекта, поскольку VS2017 поддерживает отдельную копию и использует эту копию при запуске службы IIS. Чтобы включить PHP в этом сценарии, мне пришлось редактировать частную копию VS2017.
Предварительное условие. Используйте установщик веб-платформы для установки PHP. (Вам не нужен один для IIS Express, просто регулярная загрузка PHP.) Вы можете использовать x86 или x64. Это установит PHP в C: \ Program Files \ или C: \ Program Files (x86) \ в зависимости от того, какой из них вы выберете. Вы также можете просто захватить PHP со своего веб-сайта.
Найдите файл приложенияhosthost.config. Он находится в скрытой подпапке .vs. Например, C: \ MyProject \ .vs \ applicationhost.config
Выполните следующие команды из командной строки, заменив пути для папки проекта и установленных вами двоичных файлов PHP.
"C: \ Program Files (x86) \ IIS Express \ appcmd.exe" установить config /section:system.webServer/fastCGI / + [fullPath = '"C: \ Program Files (x86) \ PHP \ {{ВАША PHP VERSION }} \ php-cgi.exe "'] / apphostconfig:" C: \ {{ВАШ ПРОЕКТ}} \. vs \ config \ applicationhost.config " "C: \ Program Files (x86) \ IIS Express \ appcmd.exe" установить config /section:system.webServer/handlers /+[name='PHP_via_FastCGI' ,path='*.php',verb='* ', modules = 'FastCgiModule', scriptProcessor = '' C: \ Program Files (x86) \ PHP \ {{ВАША PHP VERSION}} \ php-cgi.exe "', resourceType =' Unspecified '] / apphostconfig:" C: \ {{ВАШ ПРОЕКТ}} \. 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 Express \ AppServer \ applicationhost.config или того, что находится в папке% appdata%, не поможет, если вы не делаете что-то продвинутое, как запуск IIS Express за пределами Visual Studio.