Назад | Перейти на главную страницу

Как заставить последние версии FastCGI и PHP мирно сосуществовать в IIS 6?

Я постоянно пытался запустить какой-либо PHP на IIS 6. Каким-то образом мне удалось успешно запустить версию 5.1.4 с использованием файла php5isapi.dll. Однако я хочу обновить веб-сайт, чтобы начать использовать систему управления контентом. Я никогда раньше не копался в CMS, поэтому я открыт для программ, которые просты в использовании. В настоящее время я изучаю TomatoCMS и ImpressCMS, но это не относится к делу.

Раньше я никогда не устанавливал PHP и, думаю, знакомлюсь с его работой. Однако текущая ситуация такова. Установщик веб-платформы Microsoft 2.0 установил для меня FastCGI. Мне нужно перейти на PHP 5.3.1 для системы CMS. Поэтому я загрузил установщик Windows и позволил ему заняться этим.

Посмотрев несколько других статей в блоге, я считаю, что знаю, как это должно работать, но в настоящее время мне не везет.

НАСТРОЙКА

* .php - это зарегистрированное расширение в IIS 6 для всех веб-сайтов (в Win 2k3). Приложение, которое он вызывает, называется C: \ Windows \ system32 \ inetsvr \ fcgiext.dll, как и должно быть.

Конфигурация fcgiext.ini имеет правильные строки:

[Типы] php = PHP

[PHP] ext = C: \ program files \ PHP \ php-cgi.exe

И файл php.ini тоже имеет правильные конфиги. Все расширения отключены, и я изменил правильные вещи для FastCGI. И все правильно прописано с переменной PATH. Все именно так, как должно быть.

НО, когда я запускаю страницу "info.php" () на другом компьютере, я получаю следующую ошибку:

Ошибка FastCGI Обработчику FastCGI не удалось обработать запрос.

Детали ошибки:

* Section [PHP] not found in config file.
* Error Number: 1413 (0x80070585).
* Error Description: Invalid index.

Ошибка HTTP 500 - ошибка сервера. Информационные службы Интернета (IIS)

Быстрый поиск в Google показывает, что у меня все настроено правильно, в том что касается INI и сопоставления расширения php. Я полностью растерялся. У кого-нибудь есть предложения? Хотя на сервере размещены три небольших веб-сайта, мне все равно, что мне с ним делать, чтобы он заработал.

У меня были проблемы с тем, чтобы FCGI и PHP мирно сосуществовали с IIS6 на моем сервере, хотя у меня были другие проблемы. Судя по тому, что вы опубликовали из файла fcgiext.ini, похоже, что вам нужны немного другие параметры конфигурации, а именно ExePath нужно установить вместо ext. Вот фрагмент из файла fcgiext.ini на моем рабочем сервере, на котором размещено несколько десятков сайтов:

[Types]
php:633747741=PHP-TEST
php=PHP-Production

[PHP-Production]
ExePath="C:\Program Files\PHP-5.2.10-nts-vc6\php-cgi.exe"
EnvironmentVars=PHPRC:C:\Program Files\PHP-5.2.10-nts-vc6
InstanceMaxRequests=1000
ActivityTimeout=1200
RequestTimeout=1800
MaxInstances=100

[PHP-TEST]
ExePath="C:\Program Files\php-5.2.12-nts\php-cgi.exe"
EnvironmentVars=PHPRC:C:\Program Files\php-5.2.12-nts
InstanceMaxRequests=5
ActivityTimeout=1200
RequestTimeout=1800
MaxInstances=100

У меня определены две разные конфигурации PHP (PHP-Production и PHP-TEST), и я установил конфигурацию по умолчанию как PHP-Production. Я указал для сайта IIS номер 633747741, чтобы вместо этого использовать конфигурацию PHP-TEST.