Carga de los controladores de Microsoft para PHP para SQL Server

En esta página se proporcionan instrucciones para cargar los controladores de Microsoft para PHP para SQL Server en el espacio del proceso PHP.

Instala los controladores en Windows con PIE

PIE, el Instalador PHP para Extensiones, instala los archivos de controladores precompilados correspondientes y los habilita en la configuración de línea de comandos PHP. Windows no necesita una cadena de herramientas de compilación.

  1. Instala una versión compatible con PHP y el controlador Microsoft ODBC para SQL Server.

  2. Ejecute php --ini. Si el archivo de configuración cargado es (none), copie php.ini-development desde el directorio de instalación de PHP a php.ini en el mismo directorio.

  3. En php.ini, establezca el directorio de extensión y habilita las openssl extensiones y zip :

    extension_dir = "ext"
    extension=openssl
    extension=zip
    
  4. Desde un directorio de trabajo con permisos de escritura, descarga la versión estable más reciente pie.phar. El comando funciona en el Símbolo del sistema y en PowerShell:

    curl.exe -fL --output pie.phar https://github.com/php/pie/releases/latest/download/pie.phar
    

    Si tienes la CLI de GitHub, verifica que la Fundación PHP publicó el archivo:

    gh attestation verify --owner php .\pie.phar
    
  5. Instala ambos controladores usando el ejecutable PHP en PATH:

    php .\pie.phar install microsoft/sqlsrv
    php .\pie.phar install microsoft/pdo_sqlsrv
    
  6. Verifica que el mismo tiempo de ejecución en línea de comandos PHP cargue ambos controladores:

    php --ri sqlsrv
    php --ri pdo_sqlsrv
    

Para otros métodos de instalación de PIE, consulte la documentación de uso de PIE.

Instala los controladores en Linux y macOS

Instala los controladores y sus dependencias de plataforma con PIE como se describe en el tutorial de instalación de Linux y macOS.

Instala manualmente los controladores precompilados

Puedes descargar los controladores preconfigurados desde la página de Microsoft Drivers for PHP for SQL Server. La descarga para Windows es un archivo ZIP que contiene los archivos de controlador SQLSRV y PDO_SQLSRV para cada versión de PHP compatible, arquitectura y modo de seguridad de subprocesos. Selecciona los archivos que coincidan con tu entorno PHP. Consulta los requisitos del sistema para la lista de archivos.

También puede compilar los controladores desde el código fuente durante la creación de PHP o mediante phpize. Si opta por crear los controladores desde el código fuente, tiene la opción de crearlos estáticamente en PHP en lugar de crearlos como extensiones compartidas agregando --enable-sqlsrv=static --with-pdo_sqlsrv=static (en Linux y macOS) o --enable-sqlsrv=static --with-pdo-sqlsrv=static (en Windows) al comando ./configure al crear PHP. Para más información sobre el sistema de creación de PHP y phpize, consulte la documentación de PHP.

Mover el archivo de controlador al directorio de extensión

El archivo del controlador debe estar ubicado en un directorio donde el entorno de ejecución de PHP pueda encontrarlo. Es más fácil colocar el archivo de controlador en el directorio de extensión PHP predeterminado: para buscar el directorio predeterminado, ejecutarse php -i | sls extension_dir en Windows o php -i | grep extension_dir en Linux/macOS. Si no usa el directorio de extensión predeterminado, especifique un directorio en el archivo de configuración php (php.ini), con la opción extension_dir . Por ejemplo, en Windows, si coloca el archivo de controlador en el c:\php\ext directorio, agregue la siguiente línea a php.ini:

extension_dir = "c:\PHP\ext"

Carga del controlador en el inicio de PHP

Para cargar el controlador de SQLSRV cuando se inicie PHP, mueva primero un archivo del controlador al directorio de extensión. A continuación, siga estos pasos:

  1. Para habilitar el controlador SQLSRV, modifique php.ini agregando la siguiente línea a la sección de extensiones, cambiando el nombre de archivo según corresponda para la versión de PHP y la instalación segura para subprocesos (TS) o no segura para subprocesos (NTS).

    En Windows:

    extension=php_sqlsrv_83_ts.dll
    

    En Linux, si descargó los archivos binarios creados previamente para la distribución:

    extension=php_sqlsrv_83_nts.so
    

    Si compilaste el binario SQLSRV desde el código fuente, o lo instalaste con PIE o PECL, su nombre es sqlsrv.so:

    extension=sqlsrv.so
    
  2. Para habilitar el controlador PDO_SQLSRV , la extensión PHP Data Objects (PDO) debe estar disponible, ya sea como extensión incorporada o como una extensión cargada dinámicamente.

    En Windows, los archivos binarios PHP creados previamente incluyen PDO integrado, por lo que no es necesario modificar php.ini para cargarlo. Sin embargo, si ha compilado PHP desde el origen y ha especificado una extensión PDO independiente que se va a compilar, su nombre es php_pdo.dlly debe copiarlo en el directorio de extensión y agregar la siguiente línea a php.ini:

    extension=php_pdo.dll
    

    En Linux, si instaló PHP con el administrador de paquetes del sistema, es probable que PDO se instale como una extensión cargada dinámicamente denominada pdo.so. La extensión PDO debe cargarse antes que la extensión PDO_SQLSRV, o la carga fallará. Las extensiones se cargan mediante archivos .ini individuales y estos archivos se leen después de php.ini. Por lo tanto, si pdo.so se carga a través de su propio archivo .ini, se requiere un archivo independiente para cargar el controlador PDO_SQLSRV después de PDO.

    Para averiguar en qué directorio se encuentran los archivos .ini específicos de la extensión, ejecute php --ini y anote el directorio que aparece en Scan for additional .ini files in:. Busque el archivo que carga pdo.so. Debe tener un prefijo con un número, como 10-pdo.ini. El prefijo numérico indica el orden de carga de los archivos .ini, mientras que los archivos que no tienen un prefijo numérico se cargan alfabéticamente. Cree un archivo para cargar el controlador PDO_SQLSRV llamado 30-pdo_sqlsrv.ini (cualquier número mayor que el que antecede pdo.ini funcionará) o pdo_sqlsrv.ini (si pdo.ini no está prefijado con un número) y agregue la siguiente línea, cambiando el nombre de archivo según sea necesario:

    extension=php_pdo_sqlsrv_3_nts.so
    

    Al igual que con SQLSRV, si compilaste el binario PDO_SQLSRV desde el código fuente, o lo instalaste con PIE o PECL, su nombre es pdo_sqlsrv.so:

    extension=pdo_sqlsrv.so
    

    Copie este archivo en el directorio que contiene los demás archivos .ini.

    Si ha compilado PHP desde el origen con compatibilidad integrada con PDO, no necesita un archivo .ini independiente y puede agregar la línea anterior a php.ini.

  3. Reinicia el servidor web.

Nota:

Para determinar si el controlador se ha cargado correctamente, ejecute un script que llame a phpinfo().

Para obtener más información sobre las directivas de php.ini, vea el artículo Descripción de las directivas del núcleo de php.ini.