En este post voy a explicar la manera que me funcionó para poder configurar PHP para que se pueda conectar a SQL Server 2017.
Para poder realizar esta configuración, estaré en el supuesto que ya se tiene instalado lo siguiente:
Ya teniendo instalado todo ésto, vamos a proceder a ejecutar lo siguiente para la configuración.
Para comenzar nos convertiremos en usuario root.
javoaxian@vboxlinuxmintjx $ sudo su -
Ya como root, realizamos lo siguiente:
root@vboxlinuxmintjx # pear config-set php_ini `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` system
root@vboxlinuxmintjx ~ # pecl install sqlsrv
Si obtenemos el siguiente error:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
Instalamos el siguiente paquete para corregirlo:
root@vboxlinuxmintjx # apt-get install autoconf
Continuamos con la instalación y si ahora obtenemos el siguiente error:
root@vboxlinuxmintjx # checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/tmp/pear/temp/pear-build-rootTlVXJL/sqlsrv-4.3.0':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
ERROR: `/tmp/pear/temp/sqlsrv/configure --with-php-config=/usr/local/php/bin/php-config' failed
Instalamos el siguiente paquete para corregirlo:
root@vboxlinuxmintjx # apt-get install g++
Continuamos con la instalación y si ahora ya se instaló correctamente mandándonos el siguiente mensaje:
Build process completed successfully
Installing '/usr/local/php/lib/php/extensions/no-debug-zts-20170718/sqlsrv.so'
install ok: channel://pecl.php.net/sqlsrv-4.3.0
Extension sqlsrv enabled in php.ini
Entonces continuamos con la instalación del siguiente paquete:
root@vboxlinuxmintjx # pecl install pdo_sqlsrv
Una vez instalado correctamente se muestra el siguiente mensaje:
Build process completed successfully
Installing '/usr/local/php/lib/php/extensions/no-debug-zts-20170718/pdo_sqlsrv.so'
install ok: channel://pecl.php.net/pdo_sqlsrv-4.3.0
Extension pdo_sqlsrv enabled in php.ini
Esta instalación agregó las siguientes líneas en el archivo php.ini y si no las colocó, entonces hay que agregarlas:
extension="pdo_sqlsrv.so"
extension="sqlsrv.so"
Ahora reiniciamos el servidor Apache:
root@vboxlinuxmintjx # apachectl restart
Ahora podemos crear un archivo con la siguiente línea. En mi caso creé el archivo phpinfo.php en el directorio /usr/local/apache/htdocs:
<?php phpinfo(); ?>
Al ejecutar el archivo, nos mostrará la configuración y ahí podremos ver que ya se encuentra la extensión PDO de SQL Server la cual se llama pdo_sqlsrv.
Con esto ya tenemos configurado nuestro PHP para conectar con SQL Server.
Aquí dejo un archivo que obtuve de este artículo para que puedan comprobar la conexión a la base de datos, sólo se deberán cambiar los parámetros para conectarse a la base de datos. Sólo hay que quitar las extensión .txt para ejecutarlo.
Buen dia, disculpa estoy empezando a usar php, pero en un a ambiente macos el capitan, funciona la misma configuracion que usas para conectar mi pagina a una base de datos sql?
Hola buenos días, en general debería funcionar la configuración, pero hay ciertas cosas como la instalación del autoconf sería diferente, tendrías que realizar los pasos y si tienes todo lo necesario o cuando ejecutas los comandos con pecl te manda algún error.
Recuerda que aunque Mac OS X esté basado en BSD, no todo funciona de la misma manera.
Saludos!!!