FireStats error : FireStats: Unknown commit strategy
6
Compilar Extensión “mssql.so” para PHP 5

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.so

Ya 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.

Es importante verificar que tengamos deshabilitada la extensión “SyBase” ya que de lo contrario podría interferir con el módulo “MSSQL”.

Desinstalar el paquete “php5-sybase” es preferible.



Comentarios


Patrocinadores

Publicidad