С появлением IIS7 в составе Windows Server 2008 у владельцев сайтов на «Битриксе» появилась альтернатива. Если раньше установка Битрикса на Windows была сопряжена с огромными трудностями (особенно в плане производительности), то под IIS7 «Битрикс» заработал в полную силу. FastCGI, очереди запросов, а также отсутствие необходимости в применении nginx позволяет сконфигурировать web-сервер практически без «танцев с бубном».

В этой статье содержится пошаговая инструкция по установке и базовой настройке всех элементов web-сервера, необходимых для запуска сайта на «1С-Битрикс: Управление сайтом».

Установка IIS7

Запустите Server Manager, откройте в дереве оснастки Roles, нажмите Add Roles, выберите Web Server (IIS).

Если вы планируете использовать стандартный SMTP- или FTP-сервер от Microsoft, то необходимо в списке Role Services отметить IIS6 Management Compatibility (управление этими серверами производится только из старой оснастки on IIS6).

IIS7 можно администрировать удалённо, подключаясь к нему не с помощью RDP, а с помощью оснастки. Для этого надо отметить Management Service.

Если вы планируете использование FTP-сервера от Microsoft, то отметьте FTP Publishing Service.

Для работы с PHP в режиме FastCGI (основное достоинство IIS7 для «Битрикса») необходимо отметить пункт Application Development - CGI.

Скорее всего, вам также пригодятся Logging Tools.

Все эти дополнительные функции вы сможете добавить и позже, выбрав в дереве оснастки Roles - Web Server (IIS) и нажав Add Role Services.

Дальнейшая работа может производиться с помощью оснастки IIS7, которая разительно отличается по внешнему виду и количеству настроек от оснастки IIS6.

Установите апдейт для IIS, дабы избежать возможных проблем с Redirection.

Настройка PHP

Воспользуйтесь этой инструкцией, чтобы настроить поддержку FastCGI (далее встречаются выдержки из неё).

Скачайте дистрибутив PHP5 (Microsoft рекомендует non-thread-safe, однако eAccelerator с ним не очень-то работает).

Установите (например, в папку C:\Websrv\PHP) из MSI, включив следующие Extensions (их также можно будет прописать позже вручную в виде extension=имяфайларасширения.dll):

  • MySql
  • GD2
  • LDAP (если будете изпользовать LDAP-авторизацию)
  • OpenSSL
  • SMTP
  • Win32ps
  • Win32scheduler
  • zip

Откройте файл php.ini в Блокноте и установите (или раскомментируйте) следующие параметры:

  1. fastcgi.impersonate = 1
  2. cgi.fix_pathinfo = 1
  3. cgi.force_redirect = 0
  4. open_basedir = C:\Inetpub (или другая папка, в которой будут ваши сайты)
  5. short_open_tag = On (в Битриксе используется <? вместо <?php)
  6. extension_dir = “C:\Websrv\PHP\ext”
  7. upload_tmp_dir=”C:\inetpub\temp”
  8. session.save_path=”C:\inetpub\temp”
  9. allow_call_time_pass_reference = On
  10. display_errors = On


Вы можете в CMD запустить команду:

C:\Websrv\PHP\php -info

Если вы сделали всё правильно, то будет выдан этот же файл конфигурации.

Теперь нужно настроить IIS таким образом, чтобы php-файлы обрабатывались модулем FastCGI. На Home-странице в оснастке IIS выберите Handler Mappings, затем Add Module Mapping.

Перезапустите IIS7 с помощью оснастки, чтобы изменения вступили в силу.

Проверьте корректность привязки. Для этого в папке C:\Inetpub\wwwroot создайте файл test.php, содержащий строку <? phpinfo(); ?>. Откройте в браузере http://localhost/test.php.

Имейте в виду, что по умолчанию в Windows Server 2008 запись в папку Inetpub можно производить только в том случае, если прогрмма, с помощью которой вы собираетесь создать файл, запущен в режиме эскалации. Вы можете либо перенастроить разрешения на эту папку, либо запускать Проводник (или другую программу, с помощью которой вы будете создавать и редактировать файлы) в режиме эскалации (Run as administrator).

Теперь осталось добавить пару хитрых настроек. Выполните в CMD, запущенного в режиме эскалации, следующие команды:

%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /fullPath=’C:\Websrv\PHP\php-cgi.exe’].instanceMaxRequests:10000

%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /+fullPath=’c:\Websrv\PHP\php-cgi.exe’].environmentVariables.name=’PHP_FCGI_MAX_REQUESTS’,value=’10000′]

Теперь следует настроить таймауты.

%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='C:\Websrv\PHP\php-cgi.exe'].activityTimeout:600

Этой командой мы установим заведомо большое время ожидания IIS’ом окончания выполнения скрипта - 600 секунд.

Теперь в php.ini можно указать, например, следующие значения:

max_execution_time = 240

max_input_time = 240

Установка MySQL

Скачайте MySQL.

В мастере настройки сервера укажите, что это Server Machine.

Выберите Transactional Database Only, чтобы использовать только InnoDB.

Выберите OLTP, чтобы обеспечить выполнение большого количества запросов.

Выберите cp1251, если вы собираетесь работать со старыми проектами на «Битриксе» (в старой кодировке) или Best Support for Multilingualism для новых установок Битрикса.

Поставьте галку Include Bin Directory in Windows PATH, чтобы проще было работать из CMD.

Чтобы нормально работать с cp1251 из консоли, пропишите в my.ini в секции [client] строку

character-sets-dir=”C:/Websrv/MySQL/MySQL Server/share/charsets”

Установка eAccelerator

Скачайте бинарный дистрибутив eAcceleretor.

Переименуйте DLL-файл в eaccelerator.dll и поместите его в папку C:\Websrv\PHP\ext.

В php.ini добавьте строки

[eaccelerator]

extension=eaccelerator.dll

eaccelerator.shm_size=”16″

eaccelerator.cache_dir=”C:\inetpub\temp\eaccelerator”

eaccelerator.enable=”1″

eaccelerator.optimizer=”1″

eaccelerator.check_mtime=”1″

eaccelerator.debug=”0″

eaccelerator.filter=”"

eaccelerator.shm_max=”0″

eaccelerator.shm_ttl=”0″

eaccelerator.shm_prune_period=”0″

eaccelerator.shm_only=”0″

eaccelerator.compress=”1″

eaccelerator.compress_level=”9″

Установка Bitrix

Скачайе программу Zend Optimizer (после ввода лицензионного ключа и загрузки исходных кодов её можно будет деинсталлировать). Если не охота заполнять регистрационную информацию, то можно перейти прямо сюда.

При установке вам нужно будет указать C:\Websrv\PHP в качестве папки с php.ini и папку С:\Inetpub - в качестве корневой папки вебсервера.

Добавьте сайт в консоли IIS. В качестве имени хоста можно выбрать имя компьютера (при условии, что других сайтов на этом сервере нет). В нашем примере это Independence.

Спозиционируйте сайт на новую папку (например, C:\Inetpub\wwwroot\bitrixtest).

Добавьте для этой папки разрешение Modify для группы IUSR.

Скопируйте в эту папку содержимое сайта.

Удалите из этой папки web.config, входящий в поставку «Битрикса», так как с IIS7 этот файл несовместим. Привязка к PHP уже выполнена средствами консоли IIS, остаётся привязать страницу по умолчанию и страницу 404-й ошибки.

Спозиционируйтесь на сайт bitrixtest в консоли IIS, выберите Default Document, нажмите Add и добавьте index.php.

Создайте пустой файл C:\inetpub\wwwroot\bitrixtest\404.php.

Спозиционируйтесь на сайт bitrixtest в консоли IIS, выберите Error Pages, выберите 404, снимите галку Try to return the error file in the client language (этим будет заниматься не IIS, а непосредственно «Битрикс») и выберите файл C:\inetpub\wwwroot\bitrixtest\404.php.

Всё, можно заходить из браузера по адресу http://independence и запускать Мастер установки «Битрикса» (детали установки).

Обратите внимание! Если в папке вашего сайта на UNIX-системе использовались хардлинки или симлинки, то вам стоит воспользоваться командой

Mklink /D <путь к новому линку> <путь к исходной папке>

Заключение

Конечно же, после того, как «Битрикс» заработает на сервере, потребуются процедуры по дополнительной оптимизации. Об этом, а также о нагрузочном тестировании - в следующих статьях.