Carregando os Drivers da Microsoft para PHP para SQL Server

Baixar o driver PHP

Esta página apresenta instruções para carregar os Drivers da Microsoft para PHP para SQL Server no espaço de processo do PHP.

Você pode baixar os drivers predefinidos para sua plataforma da página do projeto GitHub Microsoft Drivers for PHP for SQL Server. Cada pacote de instalação contém arquivos de driver SQLSRV e PDO_SQLSRV em variantes com thread e sem thread. No Windows, eles também estão disponíveis em variantes de 32 bits e 64 bits. Confira Requisitos do Sistema para os Drivers da Microsoft para PHP para SQL Server para obter uma lista dos arquivos de driver contidos em cada pacote. O arquivo de driver deve corresponder à versão do PHP, à arquitetura e aos threads do seu ambiente PHP.

No Linux e no macOS, os drivers também podem ser instalados usando o PECL, conforme encontrado no tutorial de instalação.

Você também pode criar os drivers com base na origem ao criar o PHP ou usando phpize. Se optar por criar os drivers com base na origem, você terá a opção de criá-los estaticamente no PHP em vez de criá-los como extensões compartilhadas adicionando --enable-sqlsrv=static --with-pdo_sqlsrv=static (no Linux e macOS) ou --enable-sqlsrv=static --with-pdo-sqlsrv=static (no Windows) ao comando ./configure ao criar o PHP. Para obter mais informações sobre o sistema de build do PHP e phpize, confira a documentação do PHP.

Movendo o arquivo de driver para o diretório de extensões

O arquivo de driver deve estar localizado em um diretório em que o runtime do PHP possa encontrá-lo. É mais fácil colocar o arquivo de driver em seu diretório de extensões do PHP padrão – para localizar o diretório padrão, execute php -i | sls extension_dir no Windows ou php -i | grep extension_dir no Linux/macOS. Se você não estiver usando o diretório de extensões padrão, especifique um diretório no arquivo de configuração do PHP (php.ini), usando a opção extension_dir. Por exemplo, no Windows, se você colocar o arquivo de driver em seu diretório c:\php\ext, adicione a seguinte linha a php.ini:

extension_dir = "c:\PHP\ext"  

Carregando o driver na inicialização do PHP

Para carregar o driver SQLSRV quando o PHP é iniciado, coloque antes o arquivo do driver no diretório de extensões. Então, siga estas etapas:

  1. Para habilitar o driver SQLSRV, modifique php.ini adicionando a seguinte linha à seção da extensão, alterando o nome do arquivo conforme apropriado:

    No Windows:

    extension=php_sqlsrv_82_ts.dll  
    

    No Linux, se você tiver baixado os binários predefinidos para sua distribuição:

    extension=php_sqlsrv_82_nts.so  
    

    Se você tiver compilado o binário SQLSRV com base na origem ou com PECL, ele terá o nome sqlsrv.so:

    extension=sqlsrv.so
    
  2. Para habilitar o driver PDO_SQLSRV, a extensão PDO (Objetos de Dados do PHP) deve estar disponível, como uma extensão interna ou carregada dinamicamente.

    No Windows, os binários do PHP predefinidos vêm com PDO interno, portanto, não há necessidade de modificar o php.ini para carregá-lo. Se, no entanto, você tiver compilado o PHP com base na origem e especificado que uma extensão PDO separada deva ser criada, ele terá o nome php_pdo.dll e você deverá copiá-lo para o diretório de extensões e adicionar a seguinte linha a php.ini:

    extension=php_pdo.dll  
    

    No Linux, se você tiver instalado o PHP usando o gerenciador de pacotes do sistema, o PDO provavelmente será instalado como uma extensão carregada dinamicamente chamada pdo.so. A extensão PDO deve ser carregada antes da extensão PDO_SQLSRV ou o carregamento falhará. Normalmente, as extensões são carregadas usando arquivos .ini individuais, os quais são lidos após php.ini. Portanto, se pdo.so for carregado por meio do próprio arquivo .ini dele, será necessário um arquivo separado que carrega o driver PDO_SQLSRV após PDO.

    Para descobrir em qual diretório os arquivos .ini específicos da extensão estão localizados, execute php --ini e observe o diretório listado em Scan for additional .ini files in:. Localize o arquivo que carrega o pdo.so. Ele provavelmente terá um prefixo numérico, como 10-pdo.ini. O prefixo numérico indica a ordem de carregamento dos arquivos .ini, enquanto os arquivos que não têm um prefixo numérico são carregados alfabeticamente. Crie um arquivo para carregar o arquivo de driver PDO_SQLSRV denominado 30-pdo_sqlsrv.ini (qualquer número maior do que aquele que é o prefixo de pdo.ini funciona) ou pdo_sqlsrv.ini (se pdo.ini não estiver prefixado por um número) e adicione a seguinte linha a ele, alterando o nome do arquivo conforme apropriado:

    extension=php_pdo_sqlsrv_82_nts.so
    

    Como ocorre com SQLSRV, se você tiver compilado o binário PDO_SQLSRV com base na origem ou com PECL, ele terá o nome pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Copie esse arquivo para o diretório que contém os outros arquivos .ini.

    Se você tiver compilado o PHP com base na origem com suporte de PDO interno, você não precisará de um arquivo .ini separado e poderá adicionar a linha apropriada acima ao php.ini.

  3. Reinicie o servidor Web.

Observação

Para determinar se o driver foi carregado com êxito, execute um script que chama phpinfo().

Para obter mais informações sobre as diretivas do php.ini, veja Descrição das principais diretivas do php.ini.

Consulte Também

Introdução aos Drivers da Microsoft para PHP para SQL Server

Requisitos do sistema para os Microsoft Drivers for PHP for SQL Server

Guia de programação do Microsoft Drivers para PHP para SQL Server

Referência da API do driver SQLSRV

Referência da API do Driver PDO_SQLSRV