A veces tenemos que hacer cosas tan «anti-naturales» como esta pero como las exigencias del guión son innegociables, vamos a ello:

En primer lugar hay que instalar las extensiones necesarias:

sudo apt-get install php5-sybase php5-odbc freetds-common

Una vez instalado, vamos a reiniciar apache:

sudo service apache2 restart

Ahora tenemos que crear una conexión en el servidor y darle un nombre, esto es hace por cada servidor que queramos conectar, para eso editamos el fichero de conexiones así (con nano o con vi o como más rabia os de):

sudo nano /etc/freetds/freetds.conf

vemos algo como esto:

[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0

Está bastante claro, la línea «tds version» es la verión de SQL server a la que conectar, por ejemplo a la 2012 le corresponde la 11 y a la 2000 la 7.0 como en le ejemplo, yo he creado justo debajo esta conexión:

[conexionSQL]
host = 127.0.0.1
port = 1433
tds version = 11.0

(pongo esa ip porque voy a conectar en local) guardamos el fichero y salimos.

Ahora ya desde php conectamos con el siguiente código:


      $server = 'produccion';
      $username = 'USUARIO';
      $password = 'PASSWORD';
      $database = 'NOMBRE_BASE_DATOS';
      $connection = mssql_connect($server, $username, $password);
      if($connection != TRUE) {
            die("No se ha podido conectar.");
      }else{
           echo ("Conexión establecida");
 
      }