Comment installer l'extension php_mssql sous une Debian (peu importe la version) ?
tests effectués sur une Etch et une Sarge.
Prélude :
Ce tutorial vous expliquera comment installer et configurer l'extension php mssql pour se connecter à une base SQL SERVER (2000 ou 2005) depuis un serveur Linux Debian.
Après plusieurs essai infructueux de plusieurs méthodes glanées sur le web, j'ai finalement réussi à faire fonctionner la librairie php mssql sur un serveur linux debian
How to :
Avant de commencez, assurez-vous que votre gestionnaire aptitude est bien à jours au niveau des packets.
Pour celà, faites la commande suivante :
apt-get update
apt-get dist-upgrade
Commencez par installer apache2 à l'aide de la commande suivante :
apt-get install apache2
Ensuite, installez php4 :
apt-get install php4
apt-get install php4-dev
apt-get install libapache2-mod-php4
Installez Freetds et freetds-dev avec les commandes suivantes :
apt-get install freetds
apt-get install freetds-dev
déplacez-vous dans votre repertoire /user/src
ensuite, executez cette commande :
apt-get source php4
une fois la décompression des sources de php4 terminé, deplacez-vous dans le repertoire suivant :
cd /usr/src/php4-4.4.4/ext/mssql
tapez la commande suivante :
export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize4
Ensuite :
./configure --with-mssql --with-php-config=$PHP_PREFIX/bin/php-config4
puis :
make
Copiez le nouveau fichier compilé mssql.so dans le dossier module de php4, soit :
cp /usr/src/php4-4.4.4/ext/mssql/modules/mssql.so /usr/lib/php4/20050606+lfs/
donnez les bon droits au fichier avec l'instruction suivante :
chmod a+x /usr/lib/php4/20050606+lfs/mssql.so
et modifier le fichier php.ini avec la commande suivante :
nano /etc/php4/apache2/php.ini
recherche la section des extensions dynamiques, et sous extension=mysql.so, ajoutez :
extension=mssql.so
redemarrer appache2 à l'aide de l'instruction suivante : /etc/init.d/apache2 restart
Il ne vous reste plus qu'à configurer freetds pour ajouter une connexion sql server (qui servira ensuite dans les scripts php), soit :
nano /etc/freetds/freetds.conf
[CONSQL]
host = xxx.xxx.xxx.xxx
port = 1433
tds version = 8.0
Remarque : il est important de préciser le port TP utilisé par SQL Server (1433) et d'utiliser la version tds 8.0 (compatible sql server 2005, procédure IN / OUT, bigint)
Pour tester php / mssql :
<?php
//error_reporting(5);
$conn = mssql_pconnect("CONSQL", "$user", "$password")
or die("Error connecting host : CONSQL");
$selected = mssql_select_db('$database', $conn)
or die("Couldn't open database $database");
$proc = mssql_init("test_linux", $conn);$varin = "test";$varout = "";
mssql_bind($proc, "@varin", &$varin, SQLVARCHAR, FALSE, false);
mssql_bind($proc, "@varout", &$varout, SQLVARCHAR,TRUE, false, 50);
$resultat = mssql_execute($proc);
print $varout;
?>