A carregar os drivers da Microsoft para PHP para SQL Server

Descarregar o driver PHP

Esta página fornece instruções para carregar os Microsoft Drivers para PHP para SQL Server no ambiente de processos do PHP.

Pode descarregar os drivers pré-criados para a sua plataforma na página de projeto Microsoft Drivers for PHP para o SQL Server no GitHub. Cada pacote de instalação contém os ficheiros dos drivers "SQLSRV" e "PDO_SQLSRV", disponíveis em variantes com suporte para threads e sem suporte para threads. No Windows, também estão disponíveis em versões de 32 e 64 bits. Consulte Requisitos de Sistema para os Microsoft Drivers for PHP para SQL Server para uma lista dos ficheiros de drivers contidos em cada pacote. O ficheiro do driver deve ser compatível com a versão PHP, arquitetura e modo de segmentação do seu ambiente PHP.

No Linux e macOS, podes instalar os drivers com PIE ou PECL, como descrito no tutorial de instalação.

No Windows, pode instalar os drivers com o PIE, o PHP Installer for Extensions, na versão 5.13.3 e versões posteriores. O PIE substitui o sistema obsoleto de pacotes PECL e permite a extensão para ti, por isso não descarregas um ficheiro de driver nem php.ini editas manualmente. O Windows não necessita de uma cadeia de ferramentas de compilação, porque as extensões são distribuídas como DLLs pré-compiladas. O próprio PIE requer PHP 8.1 e versões posteriores para funcionar, embora possa instalar uma extensão em qualquer outra instalação PHP na máquina.

pie install microsoft/sqlsrv
pie install microsoft/pdo_sqlsrv

Instala cada driver com o seu próprio comando. Para instruções sobre como instalar o PIE, consulte a documentação do PIE.

No Windows, o PIE precisa da openssl extensão para chegar ao repositório de pacotes. Uma instalação do PHP a partir do pacote .zip do php.net usa o ficheiro php.ini-development predefinido, o que não o ativa, e o PIE termina com The package "composer/ca-bundle" requires the extension "openssl". Defina extension_dir e ative a extensão em php.ini antes de executar o PIE:

extension_dir = "ext"
extension=openssl

Instalações PHP geridas por pacotes no Linux e macOS já ativamopenssl, por isso esta etapa aplica-se apenas ao Windows.

Também podes construir os drivers a partir do código-fonte, seja ao compilar PHP ou usando phpize. Se escolheres construir os drivers a partir da fonte, tens a opção de os compilar estaticamente em PHP em vez de os construir como extensões partilhadas, adicionando --enable-sqlsrv=static --with-pdo_sqlsrv=static (no Linux e macOS) ou --enable-sqlsrv=static --with-pdo-sqlsrv=static (no Windows) ao ./configure comando ao compilar PHP. Para mais informações sobre o sistema de compilação PHP e phpize, consulte a documentação PHP.

Mover o ficheiro do driver para o seu diretório de extensões

O ficheiro do driver deve estar localizado num diretório onde o runtime PHP o possa encontrar. É mais fácil colocar o ficheiro do driver na tua pasta de extensão PHP predefinida – para encontrar o diretório predefinido, correr php -i | sls extension_dir no Windows ou php -i | grep extension_dir no Linux/macOS. Se não estiveres a usar a pasta de extensão por defeito, especifica um diretório no ficheiro de configuração PHP (php.ini), usando a opção extension_dir. Por exemplo, no Windows, se colocar o ficheiro do driver na sua c:\php\ext diretoria, adicione a seguinte linha à php.ini:

extension_dir = "c:\PHP\ext"

Carregamento do driver no arranque do PHP

Para carregar o driver SQLSRV quando o PHP for iniciado, primeiro mova um ficheiro do driver para o seu diretório de extensões. Em seguida, siga estes passos:

  1. Para ativar o driver SQLSRV, modifique php.ini adicionando a seguinte linha à secção de extensão, alterando o nome do ficheiro conforme apropriado para a sua versão PHP e instalação thread safe ou não-thread safe:

    No Windows:

    extension=php_sqlsrv_83_ts.dll
    

    No Linux, se descarregaste os binários pré-construídos para a tua distribuição:

    extension=php_sqlsrv_83_nts.so
    

    Se compilaste o binário SQLSRV a partir do código-fonte, ou o instalaste com PIE ou PECL, o seu nome é sqlsrv.so:

    extension=sqlsrv.so
    
  2. Para ativar o driver PDO_SQLSRV , a extensão PHP Data Objects (PDO) deve estar disponível, seja como extensão incorporada, quer como extensão carregada dinamicamente.

    No Windows, os binários PHP pré-construídos vêm com PDO incorporado, por isso não é necessário modificar php.ini para o carregar. Se, no entanto, compilaste PHP a partir do código-fonte e especificaste uma extensão PDO separada a ser construída, o seu nome é php_pdo.dll, e deves copiá-lo para o teu diretório de extensões e adicionar a seguinte linha à php.ini:

    extension=php_pdo.dll
    

    No Linux, se instalaste o PHP usando o gestor de pacotes do teu sistema, o PDO provavelmente está instalado como uma extensão carregada dinamicamente chamada pdo.so. A extensão PDO deve ser carregada antes da extensão PDO_SQLSRV, caso contrário falha o carregamento. As extensões são carregadas usando ficheiros .ini individuais, e estes ficheiros são lidos após php.ini. Portanto, se pdo.so for carregado através do seu próprio ficheiro .ini, é necessário um ficheiro separado que carregue o driver de PDO_SQLSRV após o PDO.

    Para descobrir em que diretório se encontram os ficheiros de .ini específicos da extensão, execute php --ini e anote o diretório listado em Scan for additional .ini files in:. Encontre o ficheiro que carrega pdo.so. Deve ser precedida por um número, como 10-pdo.ini. O prefixo numérico indica a ordem de carregamento dos ficheiros de .ini, enquanto ficheiros que não têm prefixo numérico são carregados alfabeticamente. Crie um ficheiro para carregar o ficheiro do driver PDO_SQLSRV chamado 30-pdo_sqlsrv.ini (qualquer número maior do que aquele que prefixa pdo.ini funciona) ou pdo_sqlsrv.ini (se pdo.ini não tiver prefixo), e adicione a linha seguinte, alterando o nome do ficheiro conforme apropriado:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Tal como no SQLSRV, se compilaste o binário PDO_SQLSRV a partir da fonte, ou o instalaste com PIE ou PECL, o seu nome é pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Copie este ficheiro para o diretório que contém os outros ficheiros .ini.

    Se compilaste PHP a partir do código-fonte com suporte PDO incorporado, não precisas de um ficheiro .ini separado, e podes adicionar a linha anterior ao php.ini.

  3. Reinicie o servidor Web.

Observação

Para determinar se o driver foi carregado com sucesso, execute um script que chame phpinfo().

Para mais informações sobre php.ini diretivas, veja Descrição das diretivas php.ini centrais.