PHP на Windows. Установка и настройка PHP для использования с модулем FastCGI.
Я начинаю писать серию сообщений об установке и использовании PHP на Windows с модулем FastCGI. В этом сообщении я опишу процесс установки PHP. Согласитесь, логично установить PHP если есть желание его использовать.
Шаг 1. Скачать PHP
На сайте PHP.net нужно скачать последную версию PHP для Windows. Для использования с FastCGI рекомендуется устанавливать версию PHP без контроля безопасности потоков, поскольку сам модуль FastCGI гарантирует, что выполнение происходит в одном потоке и поддержка контроля безопасности потоков в самом PHP привносит лишние проверки и блокировки, приводящие к значительному падению производительности. Поэтому выбираем Non-thread-safe Win32 binaries (версия 5.2.6 актуальна на момент написания этого сообщения) .
Стоит отметить, что веряим Non-thread-safe была разработана специально для работы с FastCGI на IIS (первый релиз был в версии 5.2.1) и использовать в других средах не рекомендуется. Кстати, начиная с версии 5.2.2 Zend серьезно работает над оптимизацией производительности PHP под Windows, что не может не радовать. Если сравнить версии 5.2.1 и 5.2.2, то разницу в скорости обработки запросов можно легко увидеть с помощью простого нагрузочного теста.
Шаг 2. Установка PHP
Установка осуществляется совсем просто: поскольку мы скачали архив с исполнимыми файлами, достаточно развернуть этот архив (это .zip, поэтому с ним справится встроенные в оболочку Explorer архиватор). Например, установим PHP в директорию C:\Web\PHP.
В качестве базовой конфигурации воспользуемся рекомендованными установками: cделаем копию файла php.ini-recommended в php.ini в этой же директории и откроем его для редактирования, после чего пройдем файл сверху расскоментируя следующие строки, дабы обеспечить безопасность и совместимость с большинством PHP приложений:
- open_basedir = директория, где размещены PHP приложения.
Указание директории ограничит права доступа к файлам PHP приложений только этой директорией. Удобно переопределять эту настройку в файлах конфиграции непосредственно для каждого приложения, однако не помешает установить эту настройку и указать корневую директорию всех PHP приложений. Например, C:\inetpub\PhpSites. - cgi.force_redirect = 0
По умолчанию установлено 1, но необходимо установить в 0, поскольку IIS контролирует безопасность выполнения PHP и в этой настройке нет необходимости. Более того, включение может привести к неожиданным результатам. При использовании с другими web-серверами на Windows эту настройку необходимо включить. - cgi.fix_pathinfo = 1
PHP будет устанавливать имя файла в переменной SCRIPT_FILENAME, если установить значение 0, то имя файла будет в переменной PATH_TRANSLATED, что может нарушить совместимость с большинством приложений. - fastcgi.impersonate = 1;
FastCGI позволяет процессу имперсонироваться используя контекст клиента, вызывающего процесс. Этот механизм работает только под FastCGI/IIS, например на Apache на Windows это работать не будет. - short_open_tag = On
Большинство приложений используют короткие теги <? ?>, поэтому будет не лишним включить их поддержку. - display_errors = On
На время проверки и отладки PHP приложений на FastCGI стоит включить вывод сообщений об ошибках.
Шаг 3. Проверка работоспособности PHP
Пока мы не сконфигурировали IIS, проверить работоспособность интерпретатора можно просто, например, выполнив команду c:\web\php\php.exe -info > c:\test.txt
В файле test.txt будет выведена информация о параметрах, используемых PHP.
Comments
Anonymous
May 03, 2008
Если у вас у IIS7, то что-то мне подсказывает о названии вашей операционной системы - Windows Vista?Anonymous
May 13, 2008
Спасибо Гайдару за столь полное руководство. Связать с ним вы можешь через его блог: http://blogs.msdnAnonymous
June 02, 2008
Если у вас у IIS7, то что-то мне подсказывает о названии вашей операционной системы - Windows Vista?...