Configuración PHP 7 con MS SQL Server en servidor web IIS y Apache

(Last Updated On: 8 julio, 2018)

Cabe destacar que PHP7 es casi imprescindible en cualquier nuevo desarrollo web, por todas las optimizaciones y mejoras realizadas. Normalmente cuando trabajamos con cualquier web utilizamos mysql, pero si queréis trabajar con MS SQL Server o es inevitable porque ya tenéis otro sistema trabajando con dicha base de datos, deberemos hacer ciertas configuraciones para que podamos acceder a ella desde PHP.

Para configurar PHP7 con MS SQL Server, debemos realizar los siguientes pasos:

  1. Crear fichero “phpinfo.php” en la raíz de nuestra web con el siguiente contenido:
<?php
echo phpinfo();
?>
  1. Ejecutar el fichero desde el navegador (http://sitioweb/phpinfo.php). A continuación aparecerá toda la configuración de nuestra instalación de PHP:

Debemos fijarnos en los siguientes parámetros de configuración:

phpinfo

 

  • PHP Version: 7.0.9
  • Architecture: x86
  • Compiler: MSVC14 (Visual C++ 2015)
  • Thread Safety: enabled
  1. Descargar el driver sqlsrv según nuestra versión de PHP desde https://www.microsoft.com/en-us/download/details.aspx?id=20098. Por ejemplo, para PHP 7, deberemos descargar la versión SQLSRV40.EXE:

driver sqlserver

 

Al descomprimir el archivo descargado, deberemos coger el fichero que corresponda a nuestra configuración PHP (parámetros “Architecture” y “Thread Safety”). Por ejemplo:

  • Para x86 y Thread Safety habilitado: php_sqlsrv_7_ts_x86.dll
  • Para x86 y Thread Safety deshabilitado: php_sqlsrv_7_nts_x86.dll
  • Para x64 y Thread Safety habilitado: php_sqlsrv_7_ts_x64.dll
  • Para x64 y Thread Safety deshabilitado: php_sqlsrv_7_nts_x64.dll

Debemos copiar este fichero en la carpeta “PHP/ext”. Abrimos el fichero “php.ini” y buscamos la sección “Dynamic Extensions”, para cargar al final de dicha sección el fichero que acabamos de copiar. Por ejemplo, en nuestro caso quedaría así:

Configuración SQL Server

 

  • NOTA: Evidentemente debe estar sin “;” al principio, ya que estos indican que están desactivados.
  1. Descargar e instalar “Visual C++ Redistributable”, según la versión que nos apareció en la página de configuración de PHP. En nuestro caso “MSVC14 (Visual C++ 2015)”, el cual podemos descargarlo desde https://www.microsoft.com/es-ES/download/details.aspx?id=48145.
  1. Descargar e instalar “Microsoft ODBC Driver for SQL Server”. Podemos descargar cualquiera de estas versiones:
    – ODBC Driver 13 (https://www.microsoft.com/es-ES/download/details.aspx?id=50420): Compatible con SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014 y SQL Server 2016.
    – ODBC Driver 11 (https://www.microsoft.com/es-ES/download/details.aspx?id=36434): Compatible con SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 y SQL Server 2012.

Una vez instalado y configurado todo, reiniciamos Apache o IIS y debería funcionar la conexión perfectamente.

Rate this post

Rubén González Platas

Programador web. Ayudo a empresas y emprendedores a crear su web corporativa y canal de venta online. ¿Tienes un proyecto en mente y no sabes cómo llevarlo a cabo? Contacta conmigo y te ayudaré.

18 comentarios en «Configuración PHP 7 con MS SQL Server en servidor web IIS y Apache»

  1. Buenas
    me sale este mensaje

    Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\xampp\htdocs\phpSql\conexion2.php:6 Stack trace: #0 {main} thrown in C:\xampp\htdocs\phpSql\conexion2.php on line 6

    Responder
    • Hola Sandro,
      La verdad es que es complicado responderte a qué puede ser debido, pero básicamente no te está realizando la conexión. No está cogiendo correctamente la DLL o te falta algún componente por instalar. Debería ver cómo tienes configurado todo para poder ayudarte con la configuración, ya que hace bastante tiempo que hice esta configuración. Si no consigues hacerlo funcionar, escríbeme de nuevo y lo vemos con más detalle.
      Gracias.
      Un saludo.

      Responder
  2. hola buenos dias estoy tratando de instalar la version de php con sql 2016 me pudieras ayudar no, me reconoce la libreria mssql que puedo hacer y por lo mismo no corre un programa que tengo en php y no da acceso ala base de datos

    Responder
  3. Rubén, buenas

    Seguí el procedimiento y al reiniciar el apache desde XAMPP – Control me muestra este error:

    no se encuentra el punto de entrada del procedimiento call_user_function en la biblioteca de vínculos dinámicos c:\xampp\php\ext\php_sqlsrv_7_ts_x86.dll

    no encontré alguna referencia sobre este error en google

    Espero puede ayudarme, mil gracias!

    Responder
  4. Hola que tal, fijate que sigo los pasos pero me marca este error httpd.exe – error del sistema el programa no puede iniciarse porque falta php7.dll en el equipo. al momento de iniciar el servicio de apache, ¿Sabes porque sera? de antemano gracias..

    Responder
    • Hola Abraham,
      Este artículo fue escrito hace ya bastante tiempo, quizás haya cambiado algo en las versiones de PHP o los conectores de SQL Server.
      Tendría que verlo en profundidad… siento no poder ayudarte.

      Un saludo.

      Responder
  5. Excelente explicación lo felicito brother, yo pude hacer bien la configuración y muchas gracias.
    Solo sería añadir que en el mismo fichero que se creó el “phpinfo.php”, después de haber hecho las configuraciones, al ejecutarse en el navegador debe aparecer reflejada la configuración en el área PDO, algo así:

    PDO support enabled
    PDO drivers sqlsrv, mysql, sqlite

    Y en nuestro caso debemos asegurarnos que aparezca ¨sqlsrv¨, si aparece entonces todo quedó bien.

    Responder

Deja un comentario