Configure php on iis server

Установка и настройка PHP

Самый быстрый и простой способ установить PHP в службах IIS — использовать установщик веб-платформы Майкрософт® (Web PI). Web PI полностью автоматизирует настройку IIS, FastCGI и последней версии PHP с веб-сайта php.net. С помощью web PI можно перейти на вкладку «Веб-платформа» и выбрать «PHP» в разделе «Настройка платформы и среды выполнения». Кроме того, используйте инструкции, приведенные в качестве инструкций по установке PHP с помощью установщика Windows® или установки сжатого (ZIP-файла).

Существует две сборки для каждой версии PHP: одна является потокобезопасной, а другая — нет (называется непотобезопасной [NTS] версией). Потокобезопасная версия предназначена для сред, в которых ядро веб-сервера может хранить обработчик PHP в памяти, выполняя несколько потоков выполнения для разных веб-запросов одновременно. Архитектура IIS и расширение FastCGI предоставляют модель изоляции, которая отделяет запросы, избавляя от необходимости в потокобезопасной версии. Версия NTS не содержит ни одного кода, который позволяет PHP управлять несколькими потоками. В результате при использовании версии NTS в службах IIS улучшена производительность по сравнению с версией с защитой от протектора, так как версия NTS позволяет избежать ненужных проверок безопасности потока (FastCGI обеспечивает однопотоковую среду выполнения).

Установка PHP

Существует два main способов установки PHP на компьютере под управлением Windows®: скачать установщик Windows или использовать ZIP-файл Windows с веб-сайта PHP. Любой из этих методов обеспечит работу PHP, но оба имеют некоторые дополнительные шаги, необходимые для обеспечения правильной работы PHP.

Установщик Windows

Версия установщика Windows может запустить полную среду PHP, но установка расширений может запутать. По умолчанию расширения не устанавливаются, что может отрицательно сказаться на полезности установки PHP. Кроме того, можно установить все расширения; это приводит к нестабильной системе, так как некоторые расширения могут конфликтовать с другими. Как правило, проще использовать установку ZIP-файла.

Установка ZIP-файла

Чтобы использовать установку ZIP-файла, следуйте инструкциям в статье Использование FastCGI для размещения приложений PHP в IIS 7.0 и более поздних версий. При установке ZIP-файла устанавливаются многие расширения, доступные для версии установщика Windows; однако ни одно из расширений не включено, пока не будут настроены их записи в файле Php.ini.

  1. Скачайте последний непотобезопасный ZIP-пакет с двоичными файлами PHP. В разделе Двоичные файлы Windows щелкните самый актуальный непотобезопасный ZIP-пакет PHP, чтобы скачать файлы PHP.
  2. Распакуйте файлы в каталог по своему выбору (например, C:\PHP ) на сервере IIS.
  3. Переименуйте рекомендуемыйPhp.iniнаphp.ini.
  4. Откройте файлPhp.ini в текстовом редакторе, а затем раскомментируйте и измените параметры следующим образом:
    • Задайте fastcgi.impersonate = 1.
      FastCGI под управлением служб IIS поддерживает возможность олицетворения токенов безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос.
    • Задать cgi.fix_pathinfo = 0
      Cgi.fix_pathinfo обеспечивает поддержку PATH_INFO/PATH_TRANSLATED для общего интерфейса шлюза (CGI). Установка значения 1 приведет к тому, что PHP CGI исправит свои пути в соответствии со спецификацией.
    • Задайте cgi.force_redirect = 0.
    • Задайте open_basedir , чтобы указать папку или сетевой путь, где находится содержимое веб-сайтов.
    • Задайте extension_dir , чтобы указать расположение, в котором находятся расширения PHP. Для PHP 5.2.X обычно это extension_dir = «./ext».
    • Задайте error_log=»C:php_errors.log»
      Это может помочь в устранении неполадок.
    • Включите необходимое расширение PHP, отменив комментарии соответствующих строк. Дополнительные сведения см. в разделе Расширения. Снимок экрана: содержимое текстового файла extensions.
      Рис. 1. Расширения Windows
  5. Щелкните Пуск, Параметрыпанель управления, а затем дважды щелкните значок Система (в представлении классов).
  6. Щелкните ссылку Дополнительные параметры системы в левом столбце.
  7. В окне Свойства системы перейдите на вкладку Дополнительно и нажмите кнопку Переменные среды внизу.
  8. Выберите переменную Path в разделе Системные переменные и щелкните Изменить. Добавьте в c:\php системный путь. Снимок экрана: диалоговое окно
    Рис. 2. Изменение системной переменной
  9. Нажимайте кнопку ОК, пока не завершите окно свойств Системы.
  10. Запустите диспетчер IIS, щелкнув Пуск, Программы, Администрирование, а затем Диспетчер служб IIS.
  11. В диспетчере IIS щелкните имя узла сервера на панели Подключения слева.
  12. Дважды щелкните значок Сопоставления обработчиков . Снимок экрана: окно браузера с диспетчером IS на вкладке. Стрелка указывает на значок Сопоставления обработчика.
    Рис. 3. Диспетчер служб IIS
  13. На панели Действиясопоставления обработчиков щелкните Добавить сопоставление модулей. Снимок экрана: экран диспетчера I IS. Сопоставления обработчиков отображаются в области main, а стрелка указывает на область Действия.
    Рис. 4. Сопоставления обработчиков
  14. Введите следующие сведения в соответствующие текстовые поля и нажмите кнопку ОК.
    • Путь запроса: *.php
    • Модуль : FastCGImodule
    • Исполняемый файл: C:\php\php-cgi.exe
    • Имя: FastCGI

Рис. 5. Добавление карты скриптов

Снимок экрана: страница сведений о P H P.

  • Теперь вы увидите страницу сведений о PHP по адресу http://localhost/phpinfo.php .
    Рис. 6. Страница сведений о PHP
  • Расширения

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

    • Расширения базы данных . Большинство приложений с открытым кодом, использующих MySQL для ядра СУБД, используют расширения php_mysql или php_mysqli . Для новых работ по разработке любое из этих расширений работает хорошо, или рассмотрите возможность использования PDO-версий драйвера MySQL (PDO — это расширение PHP, предоставляющее уровень абстракции доступа к данным, который можно использовать с различными базами данных); Этот дополнительный уровень абстракции предоставляет более широкий набор функций и элементов управления базой данных объектов. Если ядром СУБД является Microsoft® SQL Server ® (или экспресс-версия, например Microsoft® SQL Server ® 2008 Express или Microsoft® SQL Server ® 2005 Express Edition), используйте расширение php_mssql для приложений с открытым кодом. Для новых работ по разработке используйте версию PDO драйвера SQL.
    • Расширения обработки изображений . Многие приложения с открытым кодом, которые позволяют работать с изображениями, используют расширение GD2 — php_gd2, которое имеет ряд хороших базовых интерфейсов программирования приложений (API) для обработки изображений. В некоторых приложениях используется приложение и библиотеки ImageMagick. Существует также php_exif библиотека для работы с расширенной информацией, которую современные цифровые камеры хранят в изображениях.
    • Расширения для интернационализации и локализации&mdash— два наиболее часто используемых расширения для i18n и l10n: php_mbstring (многобайтовая строка) и php_gettext (поддержка собственного языка). Многие из приложений с открытым кодом используют один или оба из них.
    • Расширения веб-служб — выберите расширения веб-служб в зависимости от требуемых служб. Для PHP широко используется расширение SOAP. Расширение XML-RPC часто используется в сочетании с SOAP и другими службами.
    Читайте также:  Кавычки елочки html верхние

    Параметры файла PHP.INI

    Файл Php.ini предоставляет PHP сведения о конфигурации и среде. Ниже приведен ряд параметров для файла Php.ini, которые помогают PHP лучше работать с Windows.

    Необходимые параметры

    • extension_dir = . Extension_dir должен указывать на каталог, в котором хранятся расширения PHP. Путь может быть полным (например, C:\PHP\ext ) или относительным (например, .\ext). Расширения, указанные ниже в файле Php.ini, должны находиться в extension_dir. Если указанные расширения отсутствуют в extension_dir, PHP выдаст предупреждающее сообщение в начале выполнения скрипта, и приложение может отобразить ошибки из-за отсутствия функциональных возможностей.
    • extension = xxxxxx.dll Для каждого включенного расширения необходима соответствующая директива extension= , которая сообщает PHP, какие расширения в extension_dir загружать во время запуска.
    • log_errors=Включено Ошибки PHP также могут проходить через средство ведения журнала ошибок PHP. Его можно использовать для отправки ошибок в файл или службу (например, системный журнал) и работать с error_logdirective, описанными ниже. При выполнении под управлением служб IIS log_errors следует включить с действительной директивой error_log. В противном случае FastCGI считает любые сообщения о запуске (которые могут быть неопасными) как условие ошибки, которое создает код ошибки HTTP 500, возвращаемый браузеру.
    • error_log= В error_log необходимо указать полный или относительный путь к файлу, в котором хранится журнал ошибок PHP. Этот файл должен быть записываемым для службы IIS. Наиболее распространенные места для этого файла находятся в различных временных каталогах (например, C:\inetpub\temp\php-errors.log ). Это помещает журнал в место, которое могут использовать СЛУЖБЫ IIS, а также сохраняет журнал близко к месту выполнения приложений PHP.
    • cgi.force_redirect = 0 Эта директива необходима для выполнения в IIS. Это средство безопасности каталогов, необходимое для многих других веб-серверов; Однако включение этого параметра в IIS приведет к сбою обработчика PHP в Windows.
    • cgi.fix_pathinfo = 1 Это позволяет PHP получать доступ к сведениям о реальном пути в соответствии со спецификацией CGI. Для реализации FastCGI IIS требуется задать данное расширение.
    • fastcgi.impersonate = 1 FastCGI в iis поддерживает возможность олицетворения маркеров безопасности вызывающего клиента. Это позволяет СЛУЖБАм IIS определить контекст безопасности, в котором выполняется запрос.
    • fastcgi.logging = 0 Ведение журнала FastCGI должно быть отключено в IIS. Если он не включен, то все сообщения любого класса обрабатываются FastCGI как условия ошибки, что приведет к созданию исключения HTTP 500.

    Необязательные параметры

    • max_execution_time=## Эта директива задает максимальное время, которое может быть затрачено на выполнение любого заданного скрипта. По умолчанию это 30 секунд. Некоторым приложениям требуется больше времени на обработку пакетных операций (например, загрузка Gallery2 нескольких изображений с удаленного ресурса). Однако не рекомендуется устанавливать время выполнения более 300 секунд, так как обычно имеются другие части соединения, которые не могут поддерживать настолько длительное время выполнения.
    • memory_limit=###M Объем памяти, доступной для процесса PHP (в МБ). Значение по умолчанию — 128 МБ, что подходит для большинства приложений PHP.
    • display_errors=Off Эта директива определяет, следует ли включать какие-либо сообщения об ошибках в потоке, возвращаемом на веб-сервер. Если этот параметр включен, PHP будет отправлять классы ошибок, определенные с помощью директивы error_reporting , обратно в iis как часть потока ошибок. Многие из приложений с открытым исходным кодом обходят сообщение об ошибках путем выполнения команд, начинающихся со знака коммерческого at [@]. Это позволяет приложениям управлять обработкой ошибок.
    • Функции почты Php по умолчанию настроен для отправки исходящей почты через SMTP-сервер, расположенный в той же системе, что и веб-сервер. Обратите внимание, что большинство установок Windows обычно имеют веб-серверы и почтовые серверы в разных системах.

    Включение состояния сеанса PHP

    1. В Windows® Обозреватель создайте подкаталог сеанса в каталоге установки PHP.
    2. Щелкните правой кнопкой мыши каталог сеанса и выберите Свойства.
    3. На вкладке Безопасность нажмите кнопку Изменить.
    4. Нажмите кнопку Добавить и введите IIS_IUSRS для параметра Введите имена объектов для выбора.
    5. Нажмите кнопку ОК.
    6. Выберите поле Изменить проверка разрешения и нажмите кнопку ОК.
      Рис. 7. Разрешения для папки сеанса
    7. Нажмите кнопку ОК в окне Свойства сеанса .
    8. Откройте php.ini в каталоге установки PHP и задайте для параметра session.save_path подкаталог сеанса :
    session.save_path = "C:\php\session" 

    Снимок экрана: окно командной строки администратора.

  • Сохраните файл и закройте его.
  • Нажмите кнопку Пуск, а затем выберите Командная строка.
  • Введите runas /user:administrator cmd.exe , чтобы включить повышенные разрешения.
  • Введите iisreset в командной строке и нажмите клавишу ВВОД.
    Рис. 8. Команда IISRESET Обратите внимание, что PHP по умолчанию использует состояние сеанса на основе файла. Вы можете изменить ряд дополнительных параметров сеанса, включая то, следует ли использовать сеансы cookie или URL-адреса, а также следует ли создавать сеансы по первому запросу или создавать их явным образом.
  • Проверьте состояние сеанса с помощью Windows Обозреватель, перейдите по адресу C:\inetpub\wwwroot .
  • Создайте папку и переименуйте ее в phpapp.
  • Создайте файл session.php в каталоге phpapp .
  • Вставьте в него следующее:

    См. также раздел

    Источник

  • Оцените статью