Практика
Создатели PHP подумали не только об огромной аудитории системных администраторов Unix-систем, но и о тех, кому волей-неволей приходится поддерживать еще и Windows-решения для веб-серверов.
Итак, нам необходимо установить PHP на Windows WebServer. Данная шпаргалка применима к IIS версии 7 и серверу Windows WebServer 2008 или Windows Server 2008.
Скачиваем
Открываем сайт http://windows.php.net/download/ и скачиваем оттуда PHP нужной версии в виде MSI-файла (VC9 x86 Thread Safe: Installer). Ложим инсталлер, например, на рабочий стол к себе.
Для включения поддержки FastCGI на Windows :
Чтобы включить поддержку FastCGI на Windows Server:
Устанавливаем
Установщик PHP сделан очень просто и понятно - никаких заковыристых вопросов.
Запускаем файл установки. Установщик спрашивает - куда поставить. Соглашаемся с его предложением по-умолчанию (в "C:\Program Files\PHP" для x86 или "C:\Program Files (x86)\PHP" для x64-систем).
Принимаем лицензионное соглашение и двигаемся дальше.
На вопрос "к какому серверу автоматически прикрутить модуль PHP" отвечаем: "IIS FastCGI".
Далее следует вопрос - что ставить.
После этого - давим "далее" и установка проходит в автоматическом режиме.
Открываем файл "php.ini", находящийся в директории, куда мы поставили PHP. Ищем строчку: "cgi.force_redirect", раскомментируем ее и назначаем значение "0" вместо "1", которая стоит по-умолчанию.
Теперь создайте каталог для хранения сессий PHP. Например, назовем его "sessions" и создадим в каталоге, куда мы поставили PHP:
"C:\Program Files (x86)\PHP\sessions"
Понятно, что для 32-битной системы приставки "(x86)" не будет в пути.
В файле php.ini теперь найдем директиву "session.save_path" и установим ей путь к нашему каталогу с сессиями:
ЗЫ. В моем случае путь уже был установлен в "C:\Windows\Temp". В целом, тоже неплохо, учитывая, что PHP сам подчищает файлы сессий.
Следующие шаги позволят вам создать IIS обработчик для PHP в Интерфейсе управления IIS:
В Windows меню Пуск выберите команду "Выполнить:", введите в клавиатуры команду "inetmgr" и нажмите "Ok";
В Интерфейсе управления IIS выберите сервер в дереве "Подключения";
На "Начальной странице" откройте "Сопоставления обработчиков";
На вкладке "Действия" выберите "Добавить сопоставление модуля...";
В окне "Добавление сопоставления модуля" введите следующее:
Нажмите кнопку "Огараничения запроса" и сконфигурируйте сопоставление вызывать обработчик только при сопоставлении с файлом или каталогом;
Нажмите OK во всех диалогах для сохранения конфигурации.
Используйте команды приведенные ниже для создания пула процессов IIS FastCGI который будет использовать php-cgi.exe выполняемый для PHP запросов. Замените значение параметра fullPath на абсолютный путь к файлу php-cgi.exe.
Проверяем
Открываем оснастку "Диспетчер служб IIS" (Пуск-->Администрирование). В левой части видим список серверов, подключенных через эту оснастку. Выбираем наш сервер (по-умолчанию только он и подключен) кликая по нему левой кнопкой мыши. В правой части появляется окно с некоторым количеством иконок.
В разделе IIS находим и запускаем иконку "Сопоставления обработчиков". Открывается окно со списком обработчиков и расширений файлов. Ищем ".php" и если видим, что напротив него написано что-то вроде "PHP_via_FastCGI", то значит все нормально - PHP прописал свой модуль в IIS для работы. Если строчки с расширением ".php" не нашли - значит, где-то система накосячила и не дала инсталлеру PHP прописать себя (или Вы неправильно выбрали сервер для интеграции во время установки - не "IIS FastCGI").
В случае не-успеха можно попробовать вручную прописать обработчик. Для этого нажмите в правой части на пункт "Добавить сопоставление модуля". В открывшемся окне введите:
и нажмите "ОК".
Для окончательной проверки создайте новый сайт в оснастке IIS (предполагается, что Вы знаете, как работать с IIS), создайте внутри папки сайта файл index.php, укажите "Документ по-умолчанию" на файл "index.php", а в сам файл index.php напишите, например:
И откройте этот сайт. Если увидите свое сообщение - значит, PHP работает.
Актуально для: IIS v7; Windows Server 2008
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)