Développer en PHP5 avec MS SQL Server sur Ubuntu
Translate original post with Google Translate
Dernièrement, j’ai développé une application web pour un de mes clients. Cette application devait être en PHP5 mais devait utiliser une base de données existante sous Microsoft SQL Server 2005. Étant donné que je suis sur Ubuntu (8.10), j’ai dû adapter mon environnement de développement. Et vu le peu de documentation récente que j’ai trouvé, j’ai decidé d’en écrire un article.
Pour commencer j’ai créé une machine virtuelle (VirtualBox)avec Windows Server 2008 comme système d’exploitation (franchement pas le meilleur choix: c’est du Vista. Mais bon, ça m’a permit de tester un système merdique de plus :p ), sur lequel j’ai installé SQL Server 2005 et j’y ai importé la base de données existante. Pour que mon serveur web (Apache) puisse se connecter sur le serveur SQL (virtuel, donc), j’ai paramétré la partie réseau de la machine virtuelle: En effet, j’ai mis le mode d’accès réseau sur “réseau par pont“. Ma machine virtuelle a ainsi acquis une IP locale via mon routeur sur le même réseau que mon serveur web (192.168.0.11 dans mon cas).
En ce qui concerne le serveur SQL, il faudra paramétrer un port fixe pour s’y connecter et indiquer ce port lors de l’appel à la fonction PHP mssql_connect(). Pour configurer le port du côté serveur, il faut configurer le protocole TCP/IP de SQL Server comme indiqué sur la copie d’écran ci-contre. Indiquer l’IP utilisée, le port et ne rentrer aucune valeur dans le champ “ports TCP dynamiques”. Car par défaut, ce champ a pour valeur 0, et il est donc impossible de se connecter à SQL Server via PHP car le port change à chaque connexion.
Ensuite, pour le serveur web, il faut que PHP puisse faire les appels aux fonctions pour SQL Server. Pour cela j’ai installé les paquetages php5-sybase et tdsodbc (commande sudo apt-get php5-sybase tdsodbc). Le fichier /etc/php5/apache2/conf.d/mssql.ini a été créé. Il contient la ligne uniquement la ligne suivante:
extension=mssql.so
Il faut ensuite configurer TDS pour permettre à PHP de se connecter à SQL Server. Pour cela ouvrez le fichier /etc/freetds/freetds.conf (commande sudo gedit /etc/freetds/freetds.conf). À la fin du fichier j’y ai ajouté les lignes suivantes:
[192.168.0.11]
host = 192.168.0.11
port = 1434
tds version = 8.0
client charset = UTF-8
En ce qui concerne l’encodage des caractères (“UTF-8″ dans mon exemple), si vous rencontrez des problèmes d’encodage, indiquez ISO-8859-1 à la place.
Et voilà! Vous pouvez maintenant développer en PHP avec Microsoft SQL Server sur Ubuntu!
Ce lien peut alors vous être utile: Documentation PHP des fonctions mssql.
Je pense avoir listé toutes les étapes et les détails de la procédure. Si j’ai oublié quelque chose, n’hésitez pas à utiliser les commentaires.
Sources: surtout pour configurer TDS
Tags: freetds, mssql, PHP, SQL Server, Ubuntu, Virtualbox, Windows



