Перейти к основному содержанию

Drupal 8 — установка на IIS 10

Drupal 8

Недавно поставил на новый виндовый сервер drupal 8. Пока ставил, наступил на все возможные грабли. Если вы собираетесь ставить drupal 8 на IIS — вам сюда.

Подготовка к установке

Если у вас вообще ничего нет, если вы собираетесь поставить всё с нуля, то нужно начать с установки операционной системы. Поставим Windows Server 2016.

ESXi 6.7 - установка Windows Server 2016 на виртуальную машину

Итак, операционная система установлена. Теперь поднимем web-сервер IIS 10.

Установка IIS в Windows Server 2016

Готово, веб сервер поднят. Друпал работает на PHP, ставим 7.3.1. Вместе с PHP устанавливаем модуль URL Rewrite 2.1.

Установка PHP 7.3.1 на IIS 10

PHP нужно будет потом немного донастроить, но стандартной конфигурации достаточно для установки Drupal 8. Тюнить PHP будем потом, сам Drupal нам потом и подскажет, что донастроить.

Дальше нам нужна база данных. MySQL подойдёт.

Установка MySQL 8 на Windows Server 2016

Дополнительно понадобится почтовый сервер, должен же друпал как-то слать письма. Статьи по настройке почтовика у меня пока нет, будем считать, что вы с этим моментом сами справитесь.

Что ещё нужно сделать перед установкой

Нужно создать базу данных (схему) в MySQL, создать пользователя для этой базы, дать ему полные права на базу. Записать на бумажку или в файл:

  • Имя БД
  • Имя пользователя от БД
  • Пароль пользователя от БД
  • Адрес БД
  • Порт БД

У меня веб-сервер и БД на одном сервере, порт стандартный, поэтому адрес БД у меня localhost, порт стандартный 3306.

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

  • e-mail для drupal

Нужно делегировать домен и направить трафик на соответствующие NS сервера.

Нужно создать сайт на IIS. В директорию пока ничего не кладём, можно какой-нибудь тестовый файл с текстом "hello world", чтобы убедиться, что сайт работает.

Нужно настроить права на папку с сайтом. Для простоты можно сделать полный доступ к корневой папке сайта пользователям IUSR и IIS_IUSRS. Потом полный доступ можно снять и дать только на нужные директории.

Дистрибутив Drupal

Заходим на сайт https://drupal.org и качаем дистрибутив.

drupal

Try Drupal > Download.

drupal

Качаем Download Drupal zip.

drupal

На момент написания статьи последняя версия друпала: 8.6.13. Распаковываем содержимое архива в корень нашего сайта.

drupal

Заходим на сайт через браузер.

drupal

Установка Drupal

Итак, подготовка окончена, пора приступать к установке. Мы находимся в разделе "Choose language". Нужно выбрать язык. Выбираю русский.

drupal

Появляется предупреждение, что перевод будет скачан с ftp, если не хочется качать, выбираем обратно english. Но я упёртый, хочу русский. Save and continue. И у вас есть большой шанс увидеть такую ошибку:

drupal

The translation server is offline.

The installer requires to contact the translation server to download a translation file. Check your internet connection and verify that your website can reach the translation server at http://ftp.drupal.org. Check the messages and try again.

Ну тут всё понятно, по какой-то причине установщик не может скачать файл в переводом самого себя. Есть три варианта решения проблемы.

Первый вариант решения проблемы с переводом инсталлятора drupal

Можно выбрать язык english и ничего качать не придётся. Ошибка пропадёт. Это быстрый метод, но не наш.

Второй вариант решения проблемы с переводом инсталлятора drupal

Заходим на сайт https://localize.drupal.org.

drupal

Скроллим вниз и находим язык Russain.

drupal

Тыкаем в него.

drupal

Тыкаем во вкладку Overview.

drupal

И скачиваем там перевод. Но мне не нравится, что я ставлю drupal версии 8.6.13, а перевод уже от следующей версии.

Третий вариант решения проблемы с переводом инсталлятора drupal

Прямо на странице с ошибкой кликаем на ссылку https://ftp.drupal.org/. files > translations > 8.x > drupal > drupal-8.6.x.ru.po.

drupal

Качаем drupal-8.6.x.ru.po. Кладём в папку sites\default\files\translations.

drupal

Кликаем по ссылке try again.

drupal

Инсталлятор стал русскоязычным. Мы в разделе "Выбор профиля". Есть три варианта установки:

  • Стандарт
  • Минимальный
  • Demo.

Я в демонстрационных целях выбираю Demo.

drupal

"Сохранить и продолжить".

drupal

Если инсталлятору что-то не понравится, то мы можем попасть в раздел "Проверка соответствия требованиям". Я при первой попытке увидел предупреждение:

КЕШИРОВАНИЕ PHP OPCODE

Данное предупреждение можно игнорировать и "продолжить в любом случае", а можно и сразу решить проблему, включив PHP Opcode. Для этого нужно внести в файл php.ini:

[opcache]
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60

[PHP_OPCACHE]
zend_extension=php_opcache.dll

Не включайте php_opcache.dll через PHP Manager в IIS, там это можно сделать.

drupal

Но если это сделать, то в php.ini будет написано:

[PHP_OPCACHE]
extension=php_opcache.dll

Что очень неправильно, и на эти грабли я тоже наступал. Продолжаем установку. Попадаем в раздел "Установка базы данных".

drupal

Вод здесь нам и понадобится название базы и юзер с паролем, вводим эти данные. "Сохранить и продолжить". Попадаем в раздел "Установка сайта".

drupal

Начинается установка сайта. Попадаем в раздел "Установка переводов".

drupal

Попадаем в раздел "Настройка сайта".

drupal

Указываем:

  • Название сайта.
  • E-mail адрес сайта.
  • Логин админа.
  • Пароль админа.
  • E-mail адрес админа.
  • Страну.
  • Часовой пояс.
  • И галки:
    • Проверять обновления автоматически.
    • Получать уведомления по электронной почте.

"Сохранить и продолжить". Попадаем в раздел "Завершение переводов".

drupal

Ждём. Открывается главная страница сайта.

drupal

Drupal успешно установлен, поздравляем!

Настройка Drupal 8 после установки

Логинимся под админом. Конфигурация > Отчёт о состоянии.

drupal

Видно ошибку:

В settings.php не настроена переменная trusted_host_patterns. Это потенциальная угроза безопасности вашего сайта. Крайне рекомендуется настроить этот параметр. Более подробная информация доступна на странице Защита против HTTP HOST Header атак.

Находим на сайте файл settings.php, снимаем атрибут "только чтение" и раскомментируем переменную trusted_host_patterns. Не забываем отредактировать под свой домен, пример:

$settings['trusted_host_patterns'] = array(
	'^hello\.your-domain\.ru$',
	'^192\.168\.1\.1$',
);

Ошибка пропала. Переходим в Конфигурация > Файловая система. Обращаем внимание на настройку "Базовый URL общедоступных файлов". Если ваш веб-сервер находится за прокси. вы можете увидеть такую картину:

drupal

Это никуда не годится. В файле settings.php раскоментируем параметр $settings['file_public_base_url'] и укажем верный URL:

$settings['file_public_base_url'] = 'http://hello.your-domain.ru/sites/default/files';

Временный каталог можно сменить на "C:\Windows\temp", не забываем только про права доступа. Но это не обязательно.

"Сохранить конфигурацию".

Теги

 

Похожие материалы

Перезагружаем IIS при 500-й ошибке

Недавно мой сайт на Drupal 8 стал иногда валиться с 500-й ошибкой. Началось это с очередного обновления. Проблема, как мне кажется, связана с некорректной работой системы кеширования. Помогает перезагрузка IIS.

Обновление Drupal 9 в Windows с помощью Composer

Надоело мне вручную обновлять Drupal 9. Решил я это дело немного автоматизировать. Если Drupal на Linux, то удобно обновлять через Composer. А если на Windows, то... А что мешает нам поставить Composer в Windows?

Теги

Drupal 8-9 — добавляем блок "Поделиться" в статьи

Добавим блок "Поделиться" в статьи и страницы нашего сайта. Для начала вам нужно сгенерировать HTML код блока. Вы можете воспользоваться многочисленными сервисами в Интернете. Я использую блок от Яндекса.

Теги