
Drupal официально поддерживает работу с SQL Server начиная с версии 9, что позволяет использовать его возможности в корпоративных средах, где уже внедрены решения Microsoft. Для корректной установки необходимы SQL Server 2017 или выше, PHP версии 7.4–8.2 и расширение pdo_sqlsrv. Отдельное внимание стоит уделить настройке базы данных: рекомендуется создавать отдельный логин с минимально необходимыми правами для Drupal, чтобы ограничить доступ к системным таблицам.
Перед началом установки следует подготовить сервер: убедиться, что SQL Server настроен на прием TCP-соединений, активирован SQL Server Authentication, а также создана база данных с collation SQL_Latin1_General_CP1_CI_AS, совместимая с требованиями Drupal. Это критично для корректного сохранения многоязычных данных и предотвращения ошибок при миграции.
На этапе установки Drupal необходимо указать точный DSN для подключения к SQL Server через PDO. В DSN следует включать имя сервера, порт и имя базы данных. Оптимальная конфигурация включает charset=UTF-8 и отключение режимов строгой проверки дат, чтобы избежать конфликтов с форматом datetime в SQL Server. После завершения установки рекомендуется проверить корректность создания всех таблиц и индексов, используя системные представления SQL Server.
Подготовка окружения: проверка совместимости PHP, IIS и SQL Server

Для корректной установки Drupal с SQL Server требуется PHP версии 8.0–8.2 с включёнными расширениями pdo_sqlsrv и sqlsrv. Проверку версий PHP выполняют через команду php -v, а наличие расширений – php -m | findstr sqlsrv. При отсутствии расширений их необходимо установить через Microsoft Drivers for PHP for SQL Server, соответствующие версии PHP и архитектуре Windows (x64/x86).
IIS должен работать на Windows Server 2019 или новее с активированными компонентами: CGI, ISAPI Extensions, ISAPI Filters, и поддержкой URL Rewrite. Проверку запуска IIS выполняют через inetmgr, убедившись, что версия не ниже 10.0. Обязательна настройка пула приложений с версией .NET CLR «No Managed Code» и режимом интегрированной обработки запросов.
SQL Server требуется версии 2017 или выше, с включенной аутентификацией SQL Server и TCP/IP. Проверку доступности сервера выполняют через SQL Server Management Studio, подключившись по адресу localhost,1433 или через sqlcmd -S localhost -U sa -P <пароль>. Необходимо создать базу данных и пользователя с правами db_owner для корректного функционирования Drupal.
Для совместимости PHP с IIS и SQL Server рекомендуется использовать драйвер SQLSRV версии 5.11 или выше. В php.ini необходимо включить extension=sqlsrv и extension=pdo_sqlsrv, после чего перезапустить IIS с помощью iisreset. Проверка соединения с базой выполняется через скрипт phpinfo() или тестовый скрипт с PDO: $conn = new PDO("sqlsrv:Server=localhost;Database=имя_бд", "пользователь", "пароль");.
Соблюдение указанных версий и настроек предотвращает ошибки при установке Drupal, такие как «Database connection error» или отсутствие поддержки PDO. Все компоненты должны работать в 64-битной конфигурации для максимальной производительности и совместимости модулей Drupal.
Создание базы данных и пользователя SQL Server для Drupal

Для корректной работы Drupal на SQL Server необходимо создать отдельную базу данных и пользователя с минимально необходимыми правами. Запустите SQL Server Management Studio (SSMS) и подключитесь к вашему серверу.
Создание базы данных выполняется через T-SQL команду:
CREATE DATABASE DrupalDB
ON PRIMARY
(
NAME = N'DrupalDB_Data',
FILENAME = N'C:\SQLData\DrupalDB.mdf',
SIZE = 50MB,
MAXSIZE = 500MB,
FILEGROWTH = 10MB
)
LOG ON
(
NAME = N'DrupalDB_Log',
FILENAME = N'C:\SQLData\DrupalDB_log.ldf',
SIZE = 20MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
);
После создания базы данных создайте отдельного пользователя с ограниченными правами для Drupal:
CREATE LOGIN drupal_user WITH PASSWORD = 'СложныйПароль123!';
USE DrupalDB;
CREATE USER drupal_user FOR LOGIN drupal_user;
ALTER ROLE db_owner ADD MEMBER drupal_user;
Рекомендуется использовать отдельный каталог для файлов данных и логов базы данных, а также задавать ограничения на рост файлов, чтобы предотвратить неконтролируемое потребление ресурсов.
Убедитесь, что пользователь имеет роль db_owner только на этой базе данных. Это позволит Drupal выполнять все необходимые операции, включая создание таблиц, индексов и управление схемой, без риска затрагивания других баз.
Проверка соединения выполняется через SSMS или утилиту sqlcmd:
sqlcmd -S localhost -U drupal_user -P 'СложныйПароль123!' -d DrupalDB
При успешном подключении пользователь готов к использованию в процессе установки Drupal.
Скачивание и разархивирование Drupal на сервер

Для установки Drupal на сервер с SQL Server необходимо сначала получить актуальную стабильную версию системы. Перейдите на официальный сайт Drupal.org и выберите пакет .zip или .tar.gz для вашей серверной платформы. Минимальная рекомендуемая версия Drupal – 10.5.x.
Для загрузки на сервер используйте команду wget или curl в терминале:
| Команда | Описание |
|---|---|
| wget https://www.drupal.org/download-latest/tar.gz | Скачивание последней версии Drupal в формате tar.gz |
| curl -O https://www.drupal.org/download-latest/zip | Скачивание последней версии Drupal в формате zip |
После загрузки распакуйте архив в директорию веб-сервера. Для tar.gz используйте:
| Команда | Назначение |
|---|---|
| tar -xzvf drupal-*.tar.gz -C /var/www/html/ | Распаковка архива в каталог веб-сервера |
Для zip-архива выполните:
| Команда | Назначение |
|---|---|
| unzip drupal-*.zip -d /var/www/html/ | Распаковка архива в целевой каталог |
После разархивирования убедитесь, что структура папок соответствует стандартной: корень сайта содержит папки core, modules, profiles, sites и файлы index.php, update.php. Проверьте права доступа: веб-сервер должен иметь полный доступ к директории sites/default/files и права на чтение для остальных файлов.
Рекомендуется удалить архив после распаковки, чтобы освободить место на сервере и исключить возможность повторного развертывания старой версии.
Настройка подключения Drupal к SQL Server через драйвер PDO

Для работы Drupal с SQL Server необходимо использовать драйвер pdo_sqlsrv. Поддерживаются PHP 8.1 и выше. TCP/IP должен быть включен в конфигурации SQL Server.
- Установка драйвера
- Скачайте
pdo_sqlsrvс официального сайта Microsoft. - Поместите
php_pdo_sqlsrv.dllв папку расширений PHP. - В php.ini добавьте:
extension=php_pdo_sqlsrv.dll
- Перезапустите веб-сервер и проверьте загрузку командой
php -m | grep pdo_sqlsrv.
- Скачайте
- Создание базы данных и пользователя
- Создайте базу данных:
drupal_db. - Создайте пользователя с правами db_owner:
CREATE LOGIN drupal_user WITH PASSWORD = 'StrongPassword123!'; USE drupal_db; CREATE USER drupal_user FOR LOGIN drupal_user; ALTER ROLE db_owner ADD MEMBER drupal_user;
- Создайте базу данных:
- Настройка settings.php
- Добавьте блок подключения в
sites/default/settings.php:$databases['default']['default'] = array ( 'database' => 'drupal_db', 'username' => 'drupal_user', 'password' => 'StrongPassword123!', 'prefix' => '', 'host' => 'localhost', 'port' => '1433', 'namespace' => 'Drupal\\Core\\Database\\Driver\\sqlsrv', 'driver' => 'sqlsrv', );
- Проверить доступность порта 1433 и корректность логина и пароля.
- Добавьте блок подключения в
- Проверка подключения
- При установке Drupal через веб-интерфейс должна пройти проверка соединения с базой данных.
- В случае ошибки:
- Проверьте наличие
pdo_sqlsrvв PHP. - Убедитесь, что SQL Server доступен по указанному хосту и порту.
- Проверьте права пользователя и корректность пароля.
- Проверьте наличие
Рекомендуется использовать Mixed Mode Authentication и установить кодировку UTF-8 для базы данных для правильного отображения данных. Настройка должна быть выполнена до запуска установки Drupal.
Запуск веб-установки и выбор базы данных SQL Server

Для запуска веб-установки Drupal перейдите в браузере по адресу вашего сайта, например: http://localhost/drupal. Система автоматически перенаправит на страницу выбора языка и предложит начать установку.
На шаге выбора профиля установки рекомендуется использовать «Стандартный», так как он сразу включает основные модули, необходимые для работы с SQL Server.
При выборе базы данных в списке драйверов отметьте «Microsoft SQL Server». Для успешного подключения убедитесь, что на сервере установлен драйвер SQLSRV для PHP версии вашего окружения. Проверка доступности драйвера отображается на странице проверки требований.
Заполните поля подключения: Сервер – имя или IP SQL Server с указанием порта (например, localhost,1433), Имя базы данных – существующая база для Drupal, Пользователь и Пароль – учетные данные с правами на создание и изменение таблиц. Рекомендуется создавать отдельного пользователя с ограниченными правами только для работы Drupal.
Если SQL Server настроен с использованием Windows Authentication, выберите соответствующий метод авторизации и убедитесь, что веб-сервер работает под учетной записью с доступом к базе.
После заполнения данных нажмите «Сохранить и продолжить». Drupal проверит соединение с SQL Server. В случае ошибок проверьте: правильность имени сервера, наличие драйвера PHP, открытые порты и корректность учетных данных.
При успешной проверке система создаст необходимые таблицы и продолжит установку модулей. Важно на этом этапе не прерывать процесс и не менять параметры соединения с базой.
Проверка корректности конфигурации и прав доступа
После завершения установки Drupal с SQL Server необходимо убедиться, что конфигурация соединения и права доступа настроены корректно. Первым шагом выполните проверку файла settings.php, расположенного в директории sites/default. Убедитесь, что параметры $databases[‘default’][‘default’][‘database’], [‘username’], [‘password’] и [‘host’] соответствуют учетным данным SQL Server и адресу сервера.
Для проверки подключения используйте команду sqlcmd или любой GUI-клиент SQL Server, например SQL Server Management Studio, чтобы выполнить простой запрос: SELECT 1. Отсутствие ошибок подтверждает корректность соединения и доступность базы данных.
Проверьте права пользователя базы данных. Учетная запись должна обладать разрешениями на CREATE TABLE, ALTER, INSERT, UPDATE, DELETE и SELECT в рамках выбранной базы данных. В SQL Server это можно проверить через запрос: SELECT * FROM fn_my_permissions(NULL, 'DATABASE');. Результат должен включать все перечисленные права.
Настройте параметры совместимости SQL Server для Drupal. Рекомендуется установить уровень совместимости базы данных на 2017 или выше, чтобы обеспечить поддержку функций JSON и новых типов данных. Проверка осуществляется запросом: SELECT compatibility_level FROM sys.databases WHERE name = 'Имя_вашей_БД';.
Убедитесь, что порт подключения (обычно 1433) открыт и доступен для веб-сервера, а firewall не блокирует соединение. Для теста можно использовать утилиту telnet: telnet IP_сервера 1433. Успешное подключение подтверждает отсутствие сетевых ограничений.
В завершение проверьте права файлов на сервере. Каталоги sites/default, sites/default/files и файлы settings.php и services.yml должны иметь корректные права записи и чтения для пользователя веб-сервера. Для Linux это обычно chmod 644 для файлов и chmod 755 для директорий.
Тщательная проверка всех перечисленных параметров предотвращает ошибки установки модулей, проблемы с кэшированием и сбои при обновлениях Drupal. Любое несоответствие необходимо исправить до перехода к финальной настройке сайта.
Установка дополнительных модулей и расширений для работы с SQL Server
Для стабильной работы Drupal с SQL Server необходимо установить дополнительные модули и расширения, обеспечивающие совместимость и расширенные возможности базы данных.
-
Модуль SQL Server Driver:
Этот модуль предоставляет драйвер для взаимодействия Drupal с Microsoft SQL Server. Установка выполняется через Composer:
composer require drupal/sqlsrv
После установки необходимо активировать модуль в админ-панели Drupal через Extend → SQL Server.
-
PHP-расширение SQLSRV и PDO_SQLSRV:
Для работы драйвера требуется два расширения PHP:
- sqlsrv – основной драйвер для соединения с SQL Server.
- pdo_sqlsrv – обеспечивает совместимость с PDO API Drupal.
Установка на Windows выполняется через PECL или загрузку DLL-файлов с официального сайта Microsoft. На Linux можно использовать:
sudo pecl install sqlsrv pdo_sqlsrv
После установки необходимо добавить расширения в php.ini:
extension=sqlsrv.so extension=pdo_sqlsrv.so
-
Модуль Schema Update:
Рекомендуется для корректного управления схемой базы данных при использовании SQL Server. Устанавливается через Composer:
composer require drupal/schema_update
Активируется в админ-панели Drupal и обеспечивает автоматическую корректировку таблиц и индексов при обновлениях модулей.
-
Модуль Views и Entity API:
Для расширенного взаимодействия с данными SQL Server требуется актуальная версия модулей Views и Entity API. Установка через Composer:
composer require drupal/views drupal/entity
Обеспечивают поддержку сложных запросов и связей между сущностями, совместимых с T-SQL.
-
Оптимизация индексов и производительности:
Рекомендуется использовать модуль DB Tuner для анализа индексов и выполнения SQL-запросов. Установка через Composer:
composer require drupal/db_tuner
Модуль помогает выявлять медленные запросы и автоматически предлагает оптимизацию для SQL Server.
После установки всех модулей необходимо проверить совместимость версий PHP, SQL Server и драйверов. Это обеспечивает корректное выполнение миграций, создание сущностей и обработку сложных запросов без ошибок.
Тестирование работы сайта и устранение возможных ошибок подключения
После завершения установки Drupal с SQL Server необходимо проверить корректность подключения к базе данных. Для этого откройте файл `settings.php`, расположенный в каталоге `sites/default`, и убедитесь, что параметры `database`, `username`, `password`, `host` и `driver` соответствуют конфигурации SQL Server. Значение `driver` должно быть установлено как `sqlsrv`.
Для первичной проверки откройте сайт в браузере. Если отображается стандартная страница Drupal без ошибок, это подтверждает успешное подключение. В случае появления ошибок типа «PDOException» или «Unable to connect», проверьте следующие моменты: SQL Server запущен и доступен по указанному хосту и порту (обычно 1433); учетная запись пользователя имеет права на выбранную базу данных; включен TCP/IP протокол в настройках SQL Server Configuration Manager.
Если ошибки сохраняются, активируйте режим отображения ошибок в Drupal, установив в `settings.php`: `\$config[‘system.logging’][‘error_level’] = ‘all’;`. Это позволит получить точные сообщения о проблемах подключения. Особое внимание уделите кодировке сервера и базы данных: рекомендуется использовать `UTF-8` для предотвращения проблем с отображением текста.
Для тестирования выполнения SQL-запросов используйте встроенный модуль Devel или подключитесь к базе через SQL Server Management Studio, выполнив простой запрос `SELECT 1;`. Отсутствие ошибок подтвердит корректную работу соединения.
После устранения ошибок убедитесь, что кэш Drupal очищен через `/admin/config/development/performance`, нажав «Очистить все кэши». Это исключает влияние старых данных на работу сайта и предотвращает повторные ошибки подключения при тестировании модулей.
Дополнительно проверьте лог ошибок SQL Server и Drupal (`/admin/reports/dblog`) на предмет повторяющихся или критических сообщений, связанных с подключением. Любые несоответствия типов данных между Drupal и SQL Server (например, `NVARCHAR` vs `VARCHAR`) требуют корректировки схемы базы данных через миграции или изменения структуры таблиц.
Вопрос-ответ:
Какие версии SQL Server поддерживаются для установки Drupal?
Drupal поддерживает несколько версий SQL Server, начиная с SQL Server 2012 и выше. Однако важно учитывать совместимость конкретных модулей и драйверов, используемых для подключения. Рекомендуется использовать последнюю стабильную версию драйвера Microsoft для PHP, чтобы избежать проблем с кодировкой и типами данных при работе с базой.
Какие шаги необходимы для подготовки базы данных перед установкой Drupal?
Перед началом установки необходимо создать новую базу данных для Drupal и пользователя с достаточными правами для чтения, записи и изменения структуры таблиц. Также стоит проверить, чтобы выбранная кодировка и сортировка поддерживали кириллицу, если планируется работа с русскоязычным контентом. Кроме того, рекомендуется убедиться, что SQL Server разрешает удалённые подключения и использует совместимый драйвер ODBC для подключения с PHP.
Как правильно настроить соединение Drupal с SQL Server во время установки?
Во время установки в разделе настройки базы данных необходимо указать тип соединения «SQL Server», затем указать имя сервера, имя базы данных, пользователя и пароль. Также нужно убедиться, что драйвер PHP для SQL Server установлен и активирован. Если соединение не удаётся, следует проверить сетевые настройки сервера и наличие необходимых расширений PHP, таких как sqlsrv или pdo_sqlsrv, в зависимости от версии PHP и Drupal.
Что делать, если при установке появляются ошибки совместимости с SQL Server?
Если возникают ошибки совместимости, сначала проверьте, что версия SQL Server поддерживается Drupal и драйвер PHP установлен правильно. Некоторые ошибки могут быть связаны с ограничениями типов данных или особенностями запросов T-SQL. В таких случаях стоит проверить журнал ошибок Drupal и SQL Server, а также обновить драйверы или внести изменения в конфигурацию базы. Иногда помогает использование схемы базы данных, предложенной для SQL Server, чтобы соответствовать требованиям Drupal.
