Conectar Apache y PHP con MSSQL en Linux
Primero necesitamos instalar el conector dblib, para esto iniciamos sesión en una terminal como sudo e instalamos los paquete necesarios:
$ sudo apt-get install freetds-common freetds-bin unixodbc php7.0-sybase
Luego debemos reiniciar el servidor apache
$ sudo service apache2 restart
Ahora hay que modificar el archivo freetds, en este ejemplo voy a usar nano pero pueden usar el editor que deseen
$ sudo nano /etc/freetds/freetds.conf
Luego hay que agregar en él al final del archivo la conexión a la máquina que posee instalado el SQL Server
[MSSQL] host = ip de nuestro servidor (0.0.0.0) port = 1433 tds version = 8.0
Es recomendable indicar a la versión de tds la 8.0 para versiones de sql server superiores a 2005
Luego para probar la conexión ejecutamos el siguiente comando desde nuestra consola:
$ tsql -S nombreServidor -U usuario -P password -D basededatos
Y finalmente editamos en nuestro /var/www un archivo en php con el siguiente código
<?php try { $hostname = "nombreServidor"; $port = 1433; $dbname = "basededatos"; $username = "usuario"; $pw = "contraseña"; $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw"); } catch (PDOException $e) { echo "Failed to get DB handle: " . $e->getMessage() . "\n"; exit; } $stmt = $dbh->prepare("select * from tabla"); $stmt->execute(); while ($row = $stmt->fetch()) { print_r($row); } unset($dbh); unset($stmt); ?>