Использование FastCGI для размещения приложений PHP на IIS 6.0

  1. Вступление
  2. Что такое FastCGI?
  3. Установите расширение FastCGI для IIS 6.0 и IIS 5.1
  4. Скачать и установить PHP
  5. Настройте расширение FastCGI для работы с PHP
  6. Настройте расширение FastCGI для работы с PHP с помощью скрипта конфигурации
  7. Вручную настройте расширение FastCGI для работы с PHP
  8. Тест PHP CGI

от Руслан Якушев

Вступление

Язык программирования PHP уже много лет является важным игроком в сфере веб-приложений. Несмотря на то, что PHP не был разработан Microsoft, поддержка этой технологии очень важна для нас, поэтому вы можете установить ее на любой автономный сервер IIS, а также встроить в нашу облачную систему. Веб-сайты Windows Azure (WAWS) Платформа. В этой статье объясняется, как использовать расширение Microsoft IIS FastCGI для настройки и запуска приложений PHP в операционных системах Windows XP и Windows Server® 2003.

Что такое FastCGI?

FastCGI - это стандартный протокол, который позволяет исполняемым файлам CGI для каркасов приложений взаимодействовать с веб-сервером. Он отличается от стандартного протокола CGI тем, что FastCGI повторно использует процессы CGI для нескольких запросов, что обеспечивает значительное повышение производительности по сравнению с CGI. Поддержка IIS FastCGI позволяет IIS размещать обычные CGI-программы, такие как PHP или Ruby on Rails, с использованием протокола FastCGI, а также обеспечивает высокую производительность и стабильность при развертывании таких сред приложений.

Использование поддержки IIS FastCGI включает в себя следующее:

  • Веб-сервер IIS
  • Расширение IIS FastCGI
  • Программа CGI (например, php-cgi.exe)

Веб-сервер отправляет HTTP-запросы вашему приложению в компонент FastCGI, который, в свою очередь, запускает исполняемый файл программы CGI и перенаправляет запрос на обработку. Как только запрос завершен, и ответ возвращается обратно на сервер и отправляется клиенту, процесс CGI повторно используется для последующего запроса. Это помогает избежать потери высокой производительности при запуске нового процесса для каждого запроса, что приводит к повышению производительности и масштабируемости в производственной среде.

Чтобы узнать больше о протоколе FastCGI, см. http://www.fastcgi.com/devkit/doc/fcgi-spec.html ,

Установите расширение FastCGI для IIS 6.0 и IIS 5.1

Вы можете скачать расширение FastCGI для 32-битной и 64-битной Windows XP и Windows Server 2003 здесь:

https://www.iis.net/downloads/microsoft/fastcgi-for-iis

При запуске установщика FastCGI он копирует специфичные для FastCGI файлы в папку% windir% \ system32 \ inetsrv, а затем регистрирует и включает расширение веб-сервера FastCGI. Из файлов, которые копирует установщик, обратите внимание на следующее:

  • fcgiext.dll - это фактический обработчик FastCGI, который связывается с процессами с поддержкой FastCGI для обработки запросов.
  • fcgiext.ini - это файл конфигурации, который содержит сопоставление расширений файлов процессам FastCGI. Он также содержит конфигурацию пулов процессов FastCGI.
  • fcgiconfig.js - это настраивает расширение FastCGI. Сценарий обновляет файл fcgiext.ini, изменяет метабазу IIS и при необходимости перезапускает пулы приложений веб-службы.

Скачать и установить PHP

Расширение FastCGI полностью совместимо с текущим официальным дистрибутивом PHP 4.4.x и PHP 5.x для Windows, доступным по адресу https://windows.php.net/download , Поскольку расширение FastCGI размещает и выполняет процессы php однопоточным образом, рекомендуется загрузить и установить не поточно-ориентированную сборку PHP, доступную для Windows. Не поточно-ориентированная сборка PHP обеспечивает повышение производительности из-за отсутствия безопасности потоков, что приемлемо для среды с одним параллелизмом, такой как FastCGI.

Настройте расширение FastCGI для работы с PHP

После установки PHP в Windows у вас есть два варианта настройки FastCGI: используйте сценарий конфигурации, который поставляется с установкой расширения FastCGI, или выполните все задачи по настройке вручную, изменив параметры конфигурации IIS и файл fcgiext.ini.

Настройте расширение FastCGI для работы с PHP с помощью скрипта конфигурации

Сценарий конфигурации с именем fcgconfig.js предоставляется вместе с установкой расширения FastCGI. Он находится в% windir % \ system32 \ inetsrv.

Чтобы настроить расширение FastCGI для работы с PHP:

  1. Откройте командную строку.
  2. Измените текущий каталог на% windir % \ system32 \ inetsrv.
  3. Зарегистрируйте программу PHP CGI как программу, которая будет обрабатывать расширения .php, запустив следующий конфигурационный скрипт:

    cscript fcgiconfig.js -add -section: "PHP" -extension: php -path: "C: \ PHP \ php-cgi.exe"

    Замените C: \ PHP \ php-cgi.exe на путь к php-cgi.exe, если вы установили в каталог, отличный от C: \ PHP.

    Заметка

    Если вы не хотите регистрировать расширение PHP, которое будет обрабатываться компонентом FastCGI на всем сервере, и хотите зарегистрировать его только для определенного веб-сайта, добавьте аргумент «–site: [siteId]», например:

    cscript fcgiconfig.js -add -секция: «PHP» -расширение: php -path: «C: \ PHP \ php-cgi.exe» –сайт: 1

    Заметка

    Полный список параметров конфигурации, которые поддерживаются расширением FastCGI, см. В документации расширения FastCGI.

Вручную настройте расширение FastCGI для работы с PHP

Чтобы вручную настроить расширение IIS и FastCGI, необходимо создать сопоставления сценариев для расширения PHP в метабазе IIS и изменить файл fcgiext.ini, который находится в% windir % \ system32 \ inetsrv.

Чтобы создать сопоставление сценария:

  1. Запустите inetmgr.exe.
  2. Дважды щелкните значок машины для локального компьютера.
  3. Щелкните правой кнопкой мыши Веб-сайты и выберите Свойства .
  4. Нажмите вкладку Домашний каталог .
  5. Нажмите кнопку Конфигурация… .
  6. Нажмите кнопку Добавить ...
  7. В диалоговом окне « Добавить / изменить сопоставление расширения приложения » нажмите « Обзор ...» . Перейдите к файлу fcgiext.dll, который находится в% windir % \ system32 \ inetsrv.

    Заметка

    Если вам нужно использовать FastCGI в 32-битном режиме на 64-битной машине, перейдите к% windir % \ SysWOW64 \ inetsrv.

  8. В текстовом поле Расширение введите .php .

  9. В разделе « Глаголы» в текстовом поле « Предел» введите GET, HEAD, POST .

  10. Убедитесь, что флажок «Обработчик сценариев» и « Проверить наличие файла» установлен.

  11. Нажмите ОК .

Чтобы изменить файл fcigext.ini:

После добавления сопоставления сценария измените файл fcgiext.ini.

  1. Добавьте расширение для отображения приложений (php = PHP) в раздел [Types] .
  2. Добавьте раздел [PHP] с помощью ExePath = c: \ php \ php-cgi.exe (при условии, что вы установили файлы PHP в папку C: \ PHP).

    [Типы]… php = PHP… [PHP] ExePath = c: \ php \ php-cgi.exe

  3. После сохранения изменений в файле fcgiext.ini перезапустите пул приложений, связанный с веб-сайтом, на котором размещены ваши приложения PHP.

Чтобы настроить документ по умолчанию в IIS:

Большинство приложений PHP используют файл с именем index.php в качестве документа приложения по умолчанию. Настройте IIS для обработки этого файла в качестве страницы содержимого по умолчанию.

  1. Запустите inetmgr.exe.
  2. Дважды щелкните значок машины для локального компьютера.
  3. Щелкните правой кнопкой мыши Веб-сайты и выберите Свойства .
  4. Откройте вкладку « Документы ».
  5. Нажмите кнопку Добавить ...
  6. В диалоговом окне Добавление страницы содержимого в текстовом поле Страница содержимого по умолчанию введите index.php .
  7. Нажмите ОК .

IIS фокусируется на полной поддержке функциональности PHP и производительности приложений PHP, работающих на расширении FastCGI. В сотрудничестве с Zend Technologies IIS идентифицировал набор параметров конфигурации для расширения FastCGI и PHP, которые обеспечили бы оптимальную функциональность и производительность для приложений PHP при работе в Windows с помощью расширения FastCGI.

Чтобы получить оптимальную функциональность и производительность, настройте свой сервер следующим образом:

  1. Измените файл php.ini следующим образом:

    • Установите fastcgi.impersonate = 1 . FastCGI в IIS поддерживает возможность олицетворения маркеров безопасности вызывающего клиента. Это позволяет IIS определять контекст безопасности, в котором выполняется запрос.
    • Установите cgi.fix_pathinfo = 1 . cgi.fix_pathinfo обеспечивает * реальную * PATH_INFO / PATH_TRANSLATED поддержку CGI. Ранее в поведении PHP было задано значение PATH_TRANSLATED равным SCRIPT_FILENAME, а не определение PATH_INFO. Для получения дополнительной информации о PATH_INFO см. Спецификации cgi. Установка этого значения в 1 приведет к тому, что PHP CGI исправит свои пути, чтобы соответствовать спецификации.
    • Установите cgi.force_redirect = 0 .
  2. Установите параметры конфигурации FastCGI для раздела PHP, запустив fcgiconfig.js следующим образом:

    • Установите для свойства пула процессов FastCGI InstanceMaxRequests значение 10000 . Этот параметр указывает, что расширение FastCGI будет перезапускать php-cgi.exe после успешной обработки 10000 запросов.

      > cscript fcgiconfig.js -set -section: "PHP" -InstanceMaxRequests: 10000

  3. Настройте расширение FastCGI, чтобы задать для переменных среды PHP_FCGI_MAX_REQUESTS для процесса PHP значение 10000 . Этот параметр указывает php-cgi.exe перезапускать себя после успешной обработки 10000 запросов.

    > cscript fcgiconfig.js -set -section: "PHP" -EnvironmentVars: PHP_FCGI_MAX_REQUESTS: 10000

    Заметка

    Можно настроить InstanceMaxRequests и PHP_FCGI_MAX_REQUESTS для использования чисел, отличных от 10000. Как общее правило, убедитесь, что значение InstanceMaxRequests меньше или равно значению PHP_FCGI_MAX_REQUESTS .

Тест PHP CGI

После установки расширения FastCGI, а также регистрации и настройки PHP CGI вы можете запросить приложение PHP и использовать его в обычном режиме.

Чтобы протестировать приложение PHP, создайте и запросите страницу phpinfo.php на своем сайте, которая содержит следующее:

<? php phpinfo (); ?>

Вы должны увидеть что-то вроде следующего:

Вы должны увидеть что-то вроде следующего:

Обратите внимание, что поле Server API указывает, что PHP размещен в режиме FastCGI .

Используйте форумы FastCGI, чтобы обсудить использование расширения FastCGI или подать отчеты об ошибках:

Для получения дополнительной информации о том, как запускать различные приложения PHP на IIS, смотрите:

Php phpinfo (); ?

Читайте так же:

  • Лимо-такси (LIMO-TAXI)
  • По Днепру была запущена «речная маршрутка»
  • Эконом такси Чайка
  • Трамвайные линии Екатеринослава 1897-1906 гг.
  • Каприз такси

Комментарии запрещены.

Новости