Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья содержит инструкции по загрузке драйверов Майкрософт для PHP для SQL Server в пространство процессов PHP.
Установите драйверы на Windows с помощью PIE
PIE, PHP-установщик для расширений, устанавливает соответствующие заранее скомпилированные драйверные файлы и включает их в командной строке PHP. Windows не нуждается в цепочке инструментов для сборки.
Установите поддерживаемую версию на PHP и драйвер Microsoft ODBC для SQL Server.
Выполните команду
php --ini. Если Loaded Configuration File —(none), скопируйте php.ini-development из каталога установки PHP в php.ini в той же директории.В php.ini, установите каталог расширений и включите
opensslи расширенияzip:extension_dir = "ext" extension=openssl extension=zipИз записываемого рабочего каталога скачайте последнюю стабильную
pie.pharверсию . Команда работает в командной строке и PowerShell:curl.exe -fL --output pie.phar https://github.com/php/pie/releases/latest/download/pie.pharЕсли у вас есть GitHub CLI, проверьте, что файл опубликовал PHP Foundation:
gh attestation verify --owner php .\pie.pharУстановите оба драйвера, используя исполняемый файл PHP на
PATH:php .\pie.phar install microsoft/sqlsrv php .\pie.phar install microsoft/pdo_sqlsrvПроверьте, что одна и та же командная строка PHP загружает оба драйвера:
php --ri sqlsrv php --ri pdo_sqlsrv
Для других методов установки PIE см. документацию по использованию PIE.
Установите драйверы на Linux и macOS
Установите драйверы и зависимости от их платформы с помощью PIE, как описано в учебнике по установке Linux и macOS.
Устанавливайте готовые драйверы вручную
Вы можете скачать готовые драйверы со страницы Microsoft Drivers for PHP for SQL Server. Файл для Windows представляет собой ZIP-архив, содержащий файлы драйверов SQLSRV и PDO_SQLSRV для всех поддерживаемых версий PHP, архитектур и режимов потокобезопасности. Выберите файлы, которые соответствуют вашей PHP-среде. См. Системные требования к списку файлов.
Вы также можете создать драйверы из источника при разработке PHP или с помощью phpize. Если вы решили создать драйверы из источника, можно создать их статически в PHP, а не в качестве общих расширений, добавив --enable-sqlsrv=static --with-pdo_sqlsrv=static (в Linux и macOS) или --enable-sqlsrv=static --with-pdo-sqlsrv=static (в Windows) в команду ./configure при компиляции PHP. Дополнительные сведения о системе сборки PHP и phpize см. в документации по PHP.
Перемещение файла драйвера в каталог расширений
Файл драйвера должен размещаться в каталоге, где среда выполнения PHP сможет его найти. Проще всего поместить файл драйвера в каталог расширения PHP по умолчанию, чтобы найти каталог по умолчанию, запустить php -i | sls extension_dir в Windows или php -i | grep extension_dir Linux или macOS. Если вы не используете каталог расширений по умолчанию, укажите каталог в файле конфигурации PHP (php.ini), используя параметр extension_dir . Например, в Windows, если вы помещаете файл драйвера в c:\php\ext каталог, добавьте следующую строку в php.ini:
extension_dir = "c:\PHP\ext"
Загрузка драйвера при запуске PHP
Чтобы загружать драйвер SQLSRV при запуске PHP, сначала поместите файл драйвера в свой каталог расширений. Затем выполните следующие действия:
Чтобы включить драйвер SQLSRV , измените php.ini , добавив следующую строку в раздел расширения, изменив имя файла в соответствии с версией PHP и потокобезопасной и непоточной установкой:
В Windows:
extension=php_sqlsrv_83_ts.dllНа Linux, если вы скачали заготовленные двоичные файлы для вашего дистрибутива:
extension=php_sqlsrv_83_nts.soЕсли вы скомпилировали бинарный файл SQLSRV с исходного кода или установили его с помощью PIE или PECL, его название — sqlsrv.so:
extension=sqlsrv.soДля включения драйвера PDO_SQLSRV должно быть доступно расширение PHP Data Objects (PDO) — либо как встроенное расширение, либо в виде динамически загружаемого расширения.
В Windows предварительно созданные двоичные файлы PHP приходят со встроенным PDO, поэтому не нужно изменять php.ini для его загрузки. Однако, если вы скомпилировали PHP из исходного кода и указали построение отдельного расширения PDO, названного
php_pdo.dll, необходимо скопировать его в каталог расширений и добавить следующую строку в php.ini:extension=php_pdo.dllВ Linux, если вы установили PHP с помощью диспетчера пакетов системы, PDO, вероятно, устанавливается в качестве динамического загруженного расширения с именем pdo.so. Расширение PDO должно быть загружено перед расширением PDO_SQLSRV, иначе произойдет сбой загрузки. Расширения загружаются с помощью отдельных .ini файлов, и эти файлы считываются после php.ini. Таким образом, если файл pdo.so загружается с использованием собственного INI-файла, то после PDO понадобится отдельный файл, загружающий драйвер PDO_SQLSRV.
Чтобы узнать, в каком каталоге находятся INI-файлы, относящиеся к расширению, запустите
php --iniи обратите внимание на каталог, указанный в разделеScan for additional .ini files in:. Найдите файл, загружающий pdo.so. Он должен быть префиксирован числом, например 10-pdo.ini. Числовый префикс указывает порядок загрузки файлов .ini, а файлы, у которых нет числового префикса, загружаются в алфавитном порядке. Создайте ini-файл для загрузки драйвера PDO_SQLSRV с именем 30-pdo_sqlsrv.ini (любое число, большее, чем число, стоящее перед pdo.ini) или pdo_sqlsrv.ini (если перед pdo.ini нет префикса с числом) и, соответствующим образом изменив имя файла, добавьте в него следующую строку:extension=php_pdo_sqlsrv_3_nts.soКак и в случае с SQLSRV, если вы скомпилировали PDO_SQLSRV бинарный файл с исходного кода или установили его с помощью PIE или PECL, его название — pdo_sqlsrv.so:
extension=pdo_sqlsrv.soСкопируйте этот файл в каталог, содержащий другие INI-файлы.
Если вы скомпилировали PHP из источника со встроенной поддержкой PDO, вам не нужен отдельный .ini файл, и вы можете добавить предыдущую строку в php.ini.
Перезагрузите веб-сервер.
Примечание.
Чтобы определить, успешно ли загружен драйвер, запустите скрипт, вызывающий phpinfo().
Дополнительные сведения о директивах php.ini см. в статье Описание встроенных директив php.ini.
Связанные материалы
- Getting Started with the Microsoft Drivers for PHP for SQL Server (Начало работы с драйверами Майкрософт для PHP для SQL Server)
- Системные требования к драйверам Microsoft для PHP для SQL Server
- Руководство по программированию драйверов Microsoft для PHP для SQL Server
- Справочник по API для драйвера SQLSRV
- Справочник по драйверу PDO_SQLSRV