Drupal на IIS

Введение

Drupal – это бесплатный пакет программного обеспечения, позволяющий пользователю или группе пользователей без труда публиковать, управлять и систематизировать большой объем информации у себя на сайте. Это встроенная функциональность, совмещающая в себе множество доступных бесплатно подключаемых модулей, открывающих такие возможности как:

  • Система управления сайтом (CMS)
  • Блоги
  • Collaborative authoring environments
  • Форумы
  • Организация сети с равноправными узлами
  • Рассылка новостей
  • Подкастинг
  • Галереи изображений
  • Скачивание файлов и загрузка на удаленный компьютер

и многое другое.

В этой статье вы узнаете, как установить и подготовить Drupal к работе на Windows с IIS 6.0 и IIS 7.0. Предполагается, что все основные этапы по настройке системы к работе с PHP приложениями на IIS 6.0 или ISS 7.0 уже должны быть пройдены.

Описанное ниже руководство было удачно протестировано на следующей конфигурации:

  • Windows Server 2008 Web Edition
  • IIS 7.0
  • PHP 5.2.6
  • MySQL 5.0
  • Drupal 6

Примечание по установке PHP

Drupal не требует большого количества изменений свыше предусмотренных конфигурацией PHP по умолчанию. Чтобы Drupal заработал, необходимо будет внести следующие изменения в ваш php.ini файл:

  • Определить 'extension_dir' как 'c:\php\ext' (т.е. указать местоположение директории php extensions)
  • Раскомментировать 'extension=php_mysql.dll' в листе надстроек, чтобы активировать поддержку MySQL.

Предварительные требования

clip_image001  Чтобы Drupal работал корректно с IIS 7.0, необходимо установить обновление, а именно модуль FastCGI для IIS 7.0. Более подробную информацию можно узнать здесь.

Скачивание и разархивирование Drupal

Последняя версия Drupal-a достпна по адресу http://drupal.org/. Описанные здесь инструкции относятся к версии 6.4, однако более поздние версии крайне схожи между собой касательно их установки. После скачивания zip-архива, извлеките содержимое в C:\Inetpub\wwwroot\drupal или в любую другую директорию на ваш выбор.

Предоставление прав на запись для конфигурационного файла.

Drupal поставляется с default.settings.php, находящемся в папке sites\default. Перед тем как запустить инсталляцию, необходимо скопировать этот файл в "settings.php" и дать веб-серверу права на запись в новый файл (ПРИМЕЧАНИЕ: не переименовывайте указанный файл, а замените им существующий. Drupal-у необходим файл default.settings.php). Программа установки Drupal изменит настройки файла settings.php необходимым образом во время процесса инсталляции.

После создания нового файла вы можете дать права на запись специальной командой ( из директории установки)

C:\inetpub\wwwroot\Drupal>icacls sites\default\settings.php /grant BUILTIN\IIS_IUSRS:(M)

По окончании инсталляции Drupal выставит права обратно в read-only. Убедитесь, что всё сделано правильно. Если нет – то внесите изменения вручную. Для этого необходимо использовать следующую команду:

C:\inetpub\wwwroot\Drupal>icacls sites\default\settings.php /reset

Создание папки "Files” и предоставление прав на запись.

Drupal использует sites\default\files папку для хранения временных файлов. Поэтому необходимо иметь возможность записывать и изменять файлы в этой папке. Для этого создайте папку:

C:\inetpub\wwwroot\Drupal>md sites\default\files

Предоставьте права на модификацию:

C:\inetpub\wwwroot\Drupal>icacls sites\default\files /grant BUILTIN\IIS_IUSRS:(OI)(CI)(M)

Установка базы данных.

Перед началом процедуры установки Drupal, создайте базу данных на вашем сервере. Также создайте пользователя и дайте ему права db ownership. Следуйте инструкциям, указанным в статье Setting Up a Database for a PHP Application on IIS для базы данных MySQL. Это статья использует следующую информацию о базе данных:

  • Database Name: 'drupal'
  • Database User: 'drupal'
  • Account Password: 'drupal'

Запуск установки

Чтобы запустить установку, откройте браузер и введите в адресную строку http://localhost/drupal/. Запустится первая страница установочного скрипта:

clip_image003

Кликните на "Install Drupal in English". Если все предыдущие шаги по конфигурированию были успешно завершены, то вы перейдете к следующему шагу "Verify requirements" за которым последует "Set up database" :

clip_image005

На этой странице введите следующее:

  • Database name: drupal
  • User name: drupal
  • Password: drupal

Нажмите "Save and continue". Будут созданы необходимые для базы данных таблицы, а конфигурация сохранена в sites\default\settings.php. После выполнения этих шагов вам необходимо права на изменения файла.

Введите обязательную для конфигурации информацию.

clip_image007

Включение Clean URL-ов

По умолчанию Drupal использует параметры из строки запроса для всех URL-ов, которые создаются для вашего веб сайта. Подобное поведение может быть изменено путем включения функции под названием "Clean URLs". Тем не менее, для использования данной функции нужно, что бы она была на сервере. IIS 6.0 не способен переименовывать URL-ы. Однако вы можете воспользоваться одним из продуктов третьих компаний, таких как ISAPI_Rewrite или Ionics ISAPI Rewrite Filter. В IIS 7.0 поддерживается переименование URL, которое может быть активизировано путем установки Microsoft URL Rewrite Module for IIS 7.0. Нижеследующие инструкции объясняет, как URL Rewrite Module для IIS 7.0 может быть использован для запуска Clean URLs в Drupal.

Во-первых, необходимо скачать и установить Microsoft URL Rewrite Module. После установки создайте и откройте файл web . config , находящийся в папке C :\ inetpub \ wwwroot \ drupal . Вставьте следующий XML код в этот файл

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="Drupal Clean URLs" stopProcessing="true">
                        <match url="^(.*)$" />
                        <conditions>
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
                    </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Сохраните web.config, после чего откройте ваш браузер и перейдите по ссылке:

http://localhost/Drupal/index.php?q=admin/settings/clean-urls .

clip_image009

Используйте эту страницу для активации Clean URLs и затем сохраните конфигурацию "Save configuration". Если данный URL формат был изменен успешно, вы обнаружите, что все ссылки расположатся в иерархическом последовательности, например http://localhost/Drupal/admin/settings/clean-urls .

Дополнительная информация.

Для обсуждения специфических вопросов о FastCGI и URL Rewrite Module, или file bug reports вы можете посетить эти форумы:

Более подробную информацию относительно работы различных PHP приложений на IIS можно найти по следующим ссылкам: