Installation du module MSSQL pour PHP 5 sur Ubuntu Dapper Drake
Le module Microsoft SQL Server pour PHP n'est pas disponible sur Ubuntu Dapper Drake. Cet article vous guide au travers de sa compilation, son installation et sa configuration.
Installation via apt
Si vous ne souhaitez pas vous embêter à compiler le module, j'ai mis en ligne un dépôt le contenant. Dans le cas contraire, passez à la section suivante de cet article.
Dans un premier temps, ajouter ce dépôts à votre configuration apt. Pour ce faire, exécutez les lignes suivantes :
sudo sh -c 'echo "# Modules PHP5 pour Ubuntu Dapper Drake
deb http://falcon.landure.fr dapper php5
deb-src http://falcon.landure.fr dapper php5" \
>> /etc/apt/sources.list.d/dapper-landure-php5.list'
Téléchargez la clef signant ces dépôts :
wget http://falcon.landure.fr/9FA7DC39.gpg -O- | sudo apt-key add -
Mettez à jour la liste des paquets disponibles
sudo apt-get update
Et installez le module MsSQL pour PHP 5.
sudo apt-get install php5-mssql
Vous pouvez maintenant aller à la fin de cet article pour configurer ce module.
Compilation
Installation des prérequis
En premier lieu, nous installons les paquets nécessaires à la compilation du paquet PHP 5 :
sudo apt-get build-dep php5
Nous installons ensuite les paquets nécessaires à l'intégration de MSSQL dans PHP 5 :
sudo apt-get install freetds-dev fakeroot
Enfin, nous téléchargeons les sources du paquet PHP 5 :
mkdir ~/SOURCES
cd ~/SOURCES
apt-get source php5
Compilation du module
En premier lieu, nous entrons dans le répertoire des sources :
cd ~/SOURCES/php5-*
Nous modifions ensuite le fichier modulelist :
echo "mssql MSSQL" >> debian/modulelistNous modifions le fichiers rules :
sed -i -e '/--with-mysql=shared,\/usr/i\
\t\t--with-mssql=shared,/usr \\' debian/rules
Enfin, nous modifions le fichier control :
echo "Package: php5-mssql
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends}, \${php:Depends}, php5-common (= \${Source-Version}), tdsodbc
Description: MSSQL module for php5
This package provides a module for MSSQL using FreeTDS.
.
PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
from C, Java and Perl with a couple of unique PHP-specific features thrown
in. The goal of the language is to allow web developers to write
dynamically generated pages quickly.
" >> debian/control
Et nous en profitons pour ajouter les dépendances de contruction:
sed -i -e 's/\(Build-Depends: .*\)/\1, freetds-dev/' debian/control
Enfin, nous pouvons lancer la compilation de PHP 5 :
dpkg-buildpackage -rfakeroot
Si tout s'est bien passé, vous disposez à présent d'un paquet contenant le module MSSQL. Nous installons le module PHP 5 que nous venons de compiler :
cd ..
sudo dpkg -i ~/SOURCES/php5-mssql*.deb
Configuration du module MSSQL
Maintenant que vous avez installé le module MSSQL, il vous faut le configurer. Nous commençons par installer les paquets FreeTDS nécessaires :
sudo apt-get install tdsodbc
Nous renseignons les paramètres de connexion à notre Microsoft SQL Server :
SQLSERVER_HOST=mssql.localdomain
SQLSERVER_PORT=1433
SQLSERVER_DATABASE=database
Nous configurons tdsodbc pour qu'il puisse se connecter à notre SQL Server :
sudo sh -c "echo '
[$SQLSERVER_HOST]
host = $SQLSERVER_HOST
port = $SQLSERVER_PORT
tds version = 8.0' >> /etc/freetds/freetds.conf"
Remarque : Si vous rencontrez des problèmes de lenteur dans la connexion à la base de données, vous pouvez essayer de remplacer le nom d'hôte du serveur SQL par son adresse IP.
Remarque 2 : Si vous rencontrez des problèmes de conversion d'encodage, vous pouvez essayer en ajoutant la ligne suivante à votre configuration:
client charset = ISO-8859-1
Une fois ceci fait, nous configurons l'ODBC pour tenir compte du pilote FreeTDS :
sudo sh -c "echo '
[FreeTDS]
Description = FreeTDS 0.61-5 Deb
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
FileUsage = 1
CPTimeout = 5
CPReuse = 5' >> /etc/odbcinst.ini"
Enfin, nous configureons notre serveur de base de données dans l'ODBC :
sudo sh -c "echo '
[$SQLSERVER_DATABASE]
Description = $SQLSERVER_DATABASE on
Driver = FreeTDS
Servername = $SQLSERVER_HOST
Database = $SQLSERVER_DATABASE' >> /etc/odbc.ini"
Il ne vous reste plus qu'a relancer Apache 2 pour prendre en compte la configuration :
sudo /etc/init.d/apache2 restart
Pour vous connecter au SQL Server en PHP, utilisez comme paramètres de connexion :
Hostname : $SQLSERVER_HOST
Database : $SQLSERVER_DATABASE
Attention : Le nom de la base de données ne doit pas contenir de "-", car les tirets ne sont pas supportés par PHP.
Attention 2 : Dans le cas ou vous utilisez le framework PHP Symfony, pensez à désactiver la conversion des dates :
sudo sed -i -e 's/mssql\.datetimeconvert = On/mssql.datetimeconvert = Off/' /etc/php5/apache2/php.ini
Remerciements
- Merci à Panthar pour son article PHP with MSSQL on Ubuntu 6.06.
- Merci à Pintmaster pour son article How to compile MSSQL support into PHP in Ubuntu Dapper Drake.
connexion php/sqlserver
Article obsolète
cet article est obsolète. Pour vous connecter à un serveur MSSQL, vous pouvez utiliser le module mssql présenté dans cet article et suivre la documentation PHP:
http://fr2.php.net/manual/fr/function.mssql-connect.php
Vous pouvez aussi utiliser le module Sybase présent de base dans PHP (avec freetds).
Ou encore : http://php.net/manual/en/ref.pdo-dblib.php
Je ne peut vous aider plus.
Sincèrement,
Pierre-Yves Landuré
https://howto.biapy.com/
connexion php/sqlserver
merci