Загрузка драйверов Майкрософт для PHP для SQL Server

Скачать драйвер PHP

Эта статья содержит инструкции по загрузке драйверов Майкрософт для PHP для SQL Server в пространство процессов PHP.

Вы можете загрузить готовые драйверы для вашей платформы со страницы проекта Microsoft Drivers for PHP for SQL Server на GitHub. Каждый пакет установки содержит файлы драйверов SQLSRV и PDO_SQLSRV в потоках и непоточных вариантах. В Windows они также доступны в 32- и 64-разрядной версиях. Список файлов драйверов, содержащихся в каждом пакете, см. в статье System Requirements for the Microsoft Drivers for PHP for SQL Server (Системные требования драйверов Майкрософт для PHP для SQL Server). Файл драйвера должен соответствовать версии PHP, архитектуре и потоковости среды PHP.

В Linux и macOS драйверы можно также установить с помощью PECL, как описано в учебнике по установке.

Вы также можете создать драйверы из источника при разработке 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, сначала поместите файл драйвера в свой каталог расширений. Затем выполните следующие действия:

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

    В Windows:

    extension=php_sqlsrv_83_ts.dll
    

    На Linux, если вы скачали заготовленные двоичные файлы для вашего дистрибутива:

    extension=php_sqlsrv_83_nts.so
    

    Если вы скомпилировали двоичный файл SQLSRV из источника или с помощью PECL, его имя sqlsrv.so:

    extension=sqlsrv.so
    
  2. Чтобы включить драйвер 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 из источника или с помощью PECL, его имя равно pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Скопируйте этот файл в каталог, содержащий другие INI-файлы.

    Если вы скомпилировали PHP из источника со встроенной поддержкой PDO, вам не нужен отдельный .ini файл, и вы можете добавить предыдущую строку в php.ini.

  3. Перезапустите веб-сервер.

Примечание.

Чтобы определить, успешно ли загружен драйвер, запустите скрипт, вызывающий phpinfo().

Дополнительные сведения о директивах php.ini см. в статье Описание встроенных директив php.ini.