Personal tools
You are here: Home GNU / Linux Ubuntu Dapper Drake Développement et serveurs Installation du module MSSQL pour PHP 5 sur Ubuntu Dapper Drake
Document Actions
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Installation du module MSSQL pour PHP 5 sur Ubuntu Dapper Drake

by admin last modified 2007-05-23 11:58

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/modulelist
Nous 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

connexion php/sqlserver

Posted by Clovis Tresor at 2012-12-23 20:06
slt merci pour votre tuto grace a xa j'ai pu me connecter a sql server en ligne de commande maintenant j'aimerais me connecter à partir d'un script php mais je sais comment m'y prendre après toutes ces config? stp aide moi cè urgent.
merci

connexion php/sqlserver

Posted by Clovis Tresor at 2012-12-24 10:52
bonjour svp comment puis-je me connecter maintenant à partir d'un code php?

Article obsolète

Posted by Pierre-Yves Landuré at 2012-12-24 19:30
Bonjour,

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/

resp

Posted by gff at 2012-12-27 12:38
merci

BlogBang
Navigation
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards:

Wikio