[manual]php&iis 7.0

Underworld

Student-Maniac
#1
Не секрет что до версии 7.0, Microsoft всячески препятствовал возможности установки поддержки php на IIS. В этом руководстве я постараюсь предельно понятно объяснить, как можно установить поддержку php на IIS.

Включение поддержки FastCGI в IIS 7.0

Windows Server 2008
Для того чтобы добавить CGI роль необходимо выбрать: Диспетчер сервера -> Роли -> Добавить Роли. Это позволит использовать как CGI так и FastCGI услуги:

Windows Vista SP1
Для того чтобы добавить CGI роль необходимо выбрать: Панель управления -> Программы и компоненты -> Включение или отключение компонентов Windows


Внимание!
Необходимо установить следующие обновления
Обновление для IIS 7.0 модуля FastCGI, устраняет несколько известных проблем совместимости с популярными приложениями PHP.
Установка и конфигурирование php
Рекомендуется использовать non-thread safe сборки PHP в IIS 7.0 FastCGI. Non-thread safe сборки PHP, обеспечивают существенную прибыль в производительности по отношению к обычным сборкам.
  1. Скачать последнюю non-thread safe версию php c _http://www.php.net/downloads.php (Обычно 6 слыка с верху).
  2. Распаковать файлы в выбранную директорию (например C:\php). Переименновать php.ini-dist в php.ini
  3. Открыть php.ini и раскомментировать или изменить следующие значения:
    • Установите fastcgi.impersonate = 1. FastCGI под IIS поддерживает возможность имперсонации безопасности билетов вызываемых клиентом. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос.
    • Установите cgi.fix_pathinfo=1
    • Установите cgi.force_redirect = 0
    • Установите open_basedir. Укажите папку или сетевой путь где находится Web контент
    • Установите extension_dir. Укажете на место, где находятся расширения PHP.
    • Для использования необходимых расширений PHP, раскомментируйте соответствующие линии, например:
      • extension=php_mssql.dll
      • extension=php_mysql.dll
Настройка IIS 7.0 для обработки PHP запросов
Откройте диспетчер IIS, а затем выберите и откройте "Сопоставления обработчиков" на уровне сервера:

Выберите действия "Добавить сопоставление модуля" и укажите параметры конфигурации как показано ниже:

  • Путь запроса: *.php
  • Модуль: FastCgiModule
  • Исполняемый файл: "C:\[Путь до php]\php-cgi.exe"
  • Имя: PHP via FastCGI
Нажмите кнопку ОК.


Для проверки того что обработчик работает правильно, в папке C:\Inetpub\wwwroot создайте файл phpinfo.php содержащий следующий код:
Код:
<?php phpinfo(); ?>
Откройте браузер и перейдите на _http://localhost/phpinfo.php. Если все настройки правильно, то вы увидите стандартную страницу информации о PHP:


Данная статья является переводом английской версии расположенной по данному адресу
 

Underworld

Student-Maniac
#4
Сегодня думаю дополнить... добавить пару советов по улучшению безопастности и пару советов по увеличению быстродействия работы в целом))
 

pchayka™

You're an amateur
#5
можешь вкратце рассказать, стоит ли для php юзать IIS, ведь все же более стандартным решением будет nix?

Красиво сделали Windows Server 2008 R2 Enterprise
 

pchayka™

You're an amateur
#6
вот что меня смутило: по дефолту IIS ведет огромное кол-во логов доступа к ресурсам.... это ж сколько он их наберет на живом сервере... и еще в текстовички то
 

Underworld

Student-Maniac
#7
можешь вкратце рассказать, стоит ли для php юзать IIS, ведь все же более стандартным решением будет nix?

Красиво сделали Windows Server 2008 R2 Enterprise
Если стоит задача использовать как php так и ASP.NET, то да... По производительности IIS сейчас не уступает apache 2.x, а в некоторых моментах даже и превосходит (подчеркиваю в некоторых)

R2 как помню еще в бета тесте))
вот что меня смутило: по дефолту IIS ведет огромное кол-во логов доступа к ресурсам.... это ж сколько он их наберет на живом сервере... и еще в текстовички то
Он их удаляет по истечению определенного срока, примерно через 30 дней
 

pchayka™

You're an amateur
#8
любопытно сделано в новых серверных ОС, то ли это попытка разграничить доступ к файлам более жестко... но у меня теперь все скрипты просят разрешение на запись как в никсах))

можешь дать пример простенького сайтика на ASP чтобы посмотреть как это работает?
 

Underworld

Student-Maniac
#9
любопытно сделано в новых серверных ОС, то ли это попытка разграничить доступ к файлам более жестко... но у меня теперь все скрипты просят разрешение на запись как в никсах))

можешь дать пример простенького сайтика на ASP чтобы посмотреть как это работает?
http://la2base.ru/forum/index.php?s=&s...st&p=200248 )) Запихиваеш все в default.aspx и сохраняешь. Потом расскажешь что выведет)))
 

pchayka™

You're an amateur
#14
Статья хорошая, в плане безопасности мне кажется маловато сказано...
 

pchayka™

You're an amateur
#16
а то я и смотрю... все с картинками так... простенько

есть что продвинутее?
 

Underworld

Student-Maniac
#17
а то я и смотрю... все с картинками так... простенько

есть что продвинутее?
Конечно!! Если интересно то вот _http://blogs.iis.net/tags/PHP/default.aspx и вот _http://www.experts-exchange.com/tag/Security%2C+IIS%2C+PHP#allResults, найдешь много интересных статей по защите и не только))
 

pchayka™

You're an amateur
#18
по первой ссылке что-то не вижу... а вторая - вообще платный ресурс оО
 

Underworld

Student-Maniac
#19
по первой ссылке что-то не вижу... а вторая - вообще платный ресурс оО
Если честно там надо каждую статью читать и выискивать необходимое, так что если есть время и желание удачи))), а насчет 2-го хоть он и платный но там тоже много че интересного можно найти, но опять же читать нужно все
 

Вверх