stranichko.org.ua feedback на платформе

установка PHP 5.3 на IIS6 в среде Windows 2003

казалось бы, процесс установки PHP под Windows итак уже доведен до полного автоматизма, документации полно и процесс установки даже не стоит того, чтобы про него создавался еще один пост в бложике, коих миллионы. Но я, как новичок столкнулся все-таки со сложностями при установке. Поэтому составлю памятку для себя и для моих дорогих читателей с описанием пошаговой установки PHP на IIS v6.0 под Windows Server 2003 Enterprise Edition SP2 x86. Прошу под кат.

Конечно, подразумевается, что роль сервера приложений уже установлена.

Следующим шагом будет скачивание msi-пакета PHP (на данный момент последняя версия 5.4, но msi-установщик присутствует только в версии 5.3). Идем сюда и ищем по таким ссылкам надпись installer, но обязательно в секции Non Thread Safe. Скачиваем пакет.

Далее нам необходимо установить FastCGI for IIS. По нажатию на зеленую кнопку будет предложено скачать и установить Microsoft Web Platform Installer (Web PI), призванный якобы упростить процесс установки различных веб-приложений на сервер. В целом – процесс установки интуитивно понятен, и не требует акцентирования внимания на нем.

После того, как установили FastCGI – запускаем msi-установщик (в моем случае – php-5.3.20-nts-Win32-VC9-x86.msi. Важный момент здесь – установка не в каталог Program Files, а в корень диска (не важно, какого), например, C:\PHP. Остальные параметры оставляем «как есть», если, конечно, мы не уверенны в своих действиях (а такие люди и без этой статьи поставят пэхэпэ).

Теперь идем в свойства «Моего компьютера», и на вкладке «Дополнительно» выбираем «Переменные среды». В системных переменных ищем переменную Path и проверяем, есть ли в конце ее значения «…;C:\PHP» – без слеша и точки с запятой в конце (на этот момент мало кто указывает в многочисленных статьях в интернете).

Следующим шагом будет запуск «Диспетчера служб IIS». Раскрываем «локальный компьютер», раскрываем «Веб-узлы» и через контекстное меню вызываем свойства «Веб-узла зла по умолчанию». Здесь необходимо перейти на вкладку «Домашний каталог» и в открывшемся окне, в «Сопоставлении расширений» нажать кнопку «Добавить». В открывшемся диалоге указываем, что исполняемым файлом будет C:\WINDOWS\system32\inetsrv\fcgiext.dll, команды будут сокращены до «GET,HEAD,POST», также галки «Обработчик сценариев» и «Проверка наличия файла» должны быть взведены.

Выходим обратно в свойства «Веб-узла по умолчанию», и по желанию можем указать серверу, что в случае присутствия в корневой папке веб-сервера файла index.php – будет запускаться именно он, а не Default.htm или другие файлы. Для этого переходим на вкладку «Документы» и добавляем страницу содержания по умолчанию как index.php, после чего кнопкой «Вверх» перемещаем ее в начало списка.

Вот и все. Проверяем работоспособность так: создаем в папке C:\Inetpub\wwwroot файл index.php (следите за расширением, если у вас в проводнике включена опция сокрытия расширений для известных типов файлов) и заполняем его таким текстом:

< ?php
phpinfo();
?>

простите, парсер ставит пробел между < и ?. Пробела там быть не должно!

Далее открываем в браузере сайт http://localhost/ (в случае, если в предыдущем пункте мы установили запуск index.php по умолчанию, иначе пишем http://localhost/index.php) и если все было сделано правильно – наблюдаем страницу со сведениями об интерпретаторе PHP:

VN:F [1.8.8_1072]
Rating: 5.0/5 (4 votes cast)
установка PHP 5.3 на IIS6 в среде Windows 20035.054
20,949 просмотров

Комментарии (15) на “установка PHP 5.3 на IIS6 в среде Windows 2003”

  • полезная статья, спасибо

  • Alex:

    А подобные статьи будут всегда. Поражает то с какой любовью в множественных инструкциях описывается где и какие параметры должны быть обязательно выставлены при установке на Windows. Если разработчик такой умный, пусть напишет Setup который корректно пропишет настройки. Для шизофреников можно сделать вывод логов и uninstaller. Этого ведь нет, значит будем бестолковиться всегда.

    • тут скорее всего беда не в установщике, а в недостаточном понимании пользователем всех мельчайших нюансов работы продукта. Отсюда и неудача, которая также постигла и меня

  • TBB:

    Здравствуйте.
    Выполняю вроде все по инструкции, но получаю ошибку:
    FastCGI Error Number: -1073741819 (0xc0000005).

  • Noob:

    Доброго времени суток!
    Сервер не имеет подключения к интернету, поэтому FastCGI поставил другой(FastCGI 1.5 for IIS, 32-bit).

    Остальные манипуляции аналогичны статье. В итоге получаем ошибку
    /*
    FastCGI Error
    The FastCGI Handler was unable to process the request.

    Error Details:

    The FastCGI executable could not be found
    Error Number: 2 (0×80070002).
    Error Description: The system cannot find the file specified.

    HTTP Error 500 – Server Error.
    Internet Information Services (IIS)
    */

    Окна говоря что ошибка исправляется прописыванием в домашнем каталоге расширения .php, НО я это сделал ещё до первого обращения к серверу. Ладно думаю, этож винда, удалил,добавил заново, перезапустил сервер – эффекта ноль.

    Подскажите что делать?

    • The FastCGI executable could not be found
      Error Number: 2 (0×80070002).
      Error Description: The system cannot find the file specified.
      HTTP Error 500 – Server Error.

      Это же элементарно, Ватсон! Обышка говорит сама за себя. Я у себя только что получил такую же, когда ради эксперимента выпилил php-cgi.exe из папки C:\PHP, куда у меня производилась установка, а также куда у меня прописаны пути в глобальной переменной Path. Закрепил результат еще тем, что гугл на запрос ‘FastCGI «executable could not be found»‘ выдал первой ссылкой ту же проблему, и ее решение. За сим:

      1. Проверяем глобальную переменную Path.
      2. Проверяем переменную ExePath в файле c:\WINDOWS\system32\inetsrv\fcgiext.ini, а именно, находится ли exe’шник по пути, прописанному в этой переменной.
      3. Тот же c:\WINDOWS\system32\inetsrv\fcgiext.dll на месте?
      4. Политика ограниченного использования программ случаем не включена?
      5. Права для SYSTEM на все нужные нам папки c:\PHP\, c:\windows\inetsrv\ ?? Права, это означает, что они есть и на содержимом этих папок. А то бывает крайне редко такой изврат – права на папку есть, а внутри файлики эти права от папки не наследуют.
      4. Если уж и это не помогает – сносим абсолютно все подчистую: IIS, FastCGI, PHP. И ставим все это заново, скрупулезно следуя инструкции выше.

  • Михаил:

    В примере кода пробельчик бы убрать, сразу после «<" перед "?php", а то вместо данных phpinfo() листинг программы выводить будет ))

  • Михаил:

    Спасибо за статью.
    Сам в php зеленый новичок. Раньше пробовал по разным инструкциям настроить – обычно после пары дней бросал :) )) – тут за пол часика одолел настройку.
    Остается вопрос – на текущий момент смог найти только php-5.3.29-win32-VC9-x86.msi в виде «msi». Но если мы посмотрим на сайте http://windows.php.net/download/ – актуальная сейчас уже версия уже PHP 5.6 (5.6.2). И распространяется она пока только в виде ZIP-пованной папки. :( .
    Два вопроса:
    1. Где взять msi последней версии (возможно выпустят позже)?
    2. Нужно ли и возможно ли обновиться ручками в «текущих» условиях – т.е. с 5.3.29 на 5.6.2 и как это сделать?
    Спасибо!

    • Михаил, действительно, новые версии стали почему-то в разобранном виде выкладывать. Буду очень благодарен, если кто-нибудь объяснит, почему так случилось.

      Тут есть инструкция по установке. Устаревшая, правда, но все же. А здесь есть инструкция по настройке IIS 7

  • Михаил:

    Такая проблема возникла с этой установкой, в PHP по умолчанию нет экстеншена php.mssql.dll, и если его добавить и добавить строку в php.ini «extension=php.mysql.dll» то конструкция благополучно рушится

    FastCGI Error
    The FastCGI Handler was unable to process the request.
    ——————————————————————————–

    Error Details:

    The FastCGI process exited unexpectedly
    Error Number: -2147467259 (0×80004005).
    Error Description: Íåîïîçíàííàÿ îøèáêà
    HTTP Error 500 – Server Error.
    Internet Information Services (IIS)

    • про MSSQL не в курсе. Текст ошибки расшифровывается как «Неизвестная ошибка». Что в журналах? Какая версия PHP? Попробуйте переставить по этой статье

  • Влад:

    А FastCGI обязательно устанавливать?

Оставить комментарий

(обязательно)