Este artículo detalla la forma en la que se debe compilar la extensión “mssql.so” para PHP versión 5.x, necesaria para lograr conectar a una base de datos Microsoft SQL Server sobre un sistema controlado GNU/Linux Debian Inestable (puede aplicarse a casi cualquier otra distribución ajustando las rutas y paquetes).
Hace poco me vi en la necesidad de usar bases de datos Microsoft SQL Server para una aplicación PHP. Realizar esta conectividad sobre Windows no representa ningún problema, ya que los binarios de PHP para esta plataforma vienen con la extensión necesaria (“php_mysql.dll”) lista para ser usada, sin embargo, en Linux la historia es muy diferente.
Tengo un Debian Sid con PHP5, pero en pero en los repositorios del “apt” no se encuentra la extensión de “mssql.so” así que puse manos a la obra para compilar la extensión.
A continuación describo los pasos que realice para la compilación, que de seguro puede ser aplicada para otras extensiones de PHP. Espero que sea de ayuda.
Primero deberemos de revisar que nuestro Debian tenga las lineas necesarias para el acceso a los repositorios.
#/etc/apt/sources.list # Debian unstable Primary repository deb http://ftp.debian.org/debian/ unstable main non-free contrib deb-src http://ftp.debian.org/debian/ unstable main non-free contrib
A continuación debemos bajar tanto el paquete de desarrollo de módulos como las fuentes de PHP5
apt-get install php5-dev apt-get source php5
La primera línea descarga e instala un conjunto de archivos, entre los cuales destacan: el binario “phpize5″, y el archivo “php-config5″, los cuales nos serán de utilidad mas adelante
La última línea descarga tres archivos, en mi caso “php5_5.1.4.orig.tar.gz”, “php5_5.1.4-0.1.diff.gz” y “php5_5.1.4-0.1.dsc”, además que descomprime el primero en un directorio llamado “php5-5.1.4″ dentro de “/usr/src/”.
La intención de todo esto es compilar únicamente la extensión que queremos usar, sin tener que compilar todo el PHP, así que a continuación entramos en el directorio de las fuentes y directamente en la extensión que queremos compilar, para realizar algunas acciones:
cd /usr/src/php5-5.1.4/ext/mssql/ export PHP_PREFIX="/usr" $PHP_PREFIX/bin/phpize5
En la primera línea entramos al directorio de la extensión, en la segunda, exportamos una variable de entorno llamada “PHP_PREFIX”, y en la tercera línea, realizamos la configuración de “phpize5″, teniendo en cuenta que este archivo se encuentra en “/usr/bin/phpize5″, lo cual nos devolverá algo parecido a lo siguiente:
Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20050922 Zend Extension Api No: 220051025
Después debemos realizar la configuración adecuada. Cada extensión tiene sus propias reglas de compilación que podemos verificar con:
./configure --help
En mi caso pongo lo que use para la compilación de la extensión “mssql”
./configure --with-mssql --with-php-config=$PHP_PREFIX/bin/php-config5 make
La extensión se compila y se guarda en un directorio llamado “modules”. Con esto, lo único que falta es copiar la extensión al lugar adecuado y cambiarle sus permisos.
cp /usr/src/php5-5.1.4/ext/mssql/modules/mssql.so /usr/lib/php5/20051025/ chmod -x /usr/lib/php5/20051025/mssql.so
Y agregar o descomentar la linea correspondiente en “/etc/php5/apache2/php.ini”
extension=mssql.soYa solo es necesario reiniciar apache si es que PHP corre como módulo, para terminar podemos verificar que este funcionando correctamente, creando un archivo, por ejemplo “info.php” con el siguiente contenido:
El cual a la hora de ejecutarlo podremos verificar su correcta carga en PHP5.
Desinstalar el paquete “php5-sybase” es preferible.
Publicado el 22 de febrero de 2010 en 


22/02/2010 en 10:06 pm
[...] el artículo que escribí anteriormente sobre como Compilar la Extensión “mssql.so” para PHP 5, esta vez trate de hacerlo en un PHP 4 más o menos con el mismo procedimiento, pero ahora en un [...]
22/02/2010 en 10:24 pm
[...] un artículo que escribí anteriormente (Compilar Extensión “mssql.so” para PHP 5), vamos a ver como se cargan las extensiones de forma dinámica. Lo cual se puede aplicar a [...]