Outils personnels
Vous êtes ici : Accueil Symfony Symfony, PHP 5.2.1 pour Windows / IIS et Microsoft SQL Server
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Symfony, PHP 5.2.1 pour Windows / IIS et Microsoft SQL Server

Par admin - Dernière modification 14/04/2008 06:56

Utiliser Symfony et Microsoft SQL Serveur sous Windows peut poser problème car un bug dans une dll livrée avec PHP 5.2.1 empêche la connexion à la base de donnée. Voici comment corriger ce problème.

Le problème viens de la DLL ntwdblib.dll présente dans le dossier d'installation de PHP. En premier lieu, ouvrer un "command prompt" ([Windows + R]   et tapez cmd).

Et passez dans votre dossier d'installation de PHP :

c:
cd c:\Program Files\PHP

Créez une sauvegarde de la DLL d'origine :

move ntwdblib.dll ntwdblib.dll.backup

Et récupérez la DLL présente dans le dossier System32 de Windows :

copy %windir%\system32\ntwdblib.dll

Votre installation de Symfony devrait maintenant être capable de se connecter à la base de données SQLServer.

Remarque : Si vous rencontrez des problèmes pour charger l'extension php_mssql.dll, vérifiez l'endroit le module ISAPI PHP de IIS va chercher le fichier php.ini. Il ce peut que ce ne soit pas le répertoire d'installation de PHP.

Utiliser la réécriture d'URL avec Symfony

La documentation de Symfony propose l'utilisation de Helicon Tech Isapi Rewrite pour assurer la mécanique de réécriture d'URL. J'ai cependant récemment découvert un logiciel Open Source et gratuit remplaçant avantageusement cet outil. Il s'agit de Ionics Isapi Rewrite Filter. L'installation est bien documentée, et je vous fait confiance pour y arriver par vous même :D. Une fois l'installation effectuée, voici une base de travail fonctionnelle pour créer une configuration complète pour votre site Symfony (à placer dans le fichier IsapiRewrite4.ini) :

# If the target "file" or "directory" does not exist, we redirect to the Symfony index.php (ie : if it is a 404 error, it is managed by index.php).
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php$1 [L]

Régler les problèmes de connection à la base de donnée en mode ligne de commande

Il est impossible de se connecter à une base de données MSSql en ligne de commande. Ceci est dû à un bogue de Creole. Pour corriger ce problème, il faut éditer le fichier:

C:\Program Files\PHP\PEAR\pear\symfony\vendor\creole\drivers\mssql

Et commenter les lignes suivantes:

/**
* Commented to correct a Creole bug.
 if(!empty($dsninfo['port'])) {
  $dbhost .= $portDelimiter.$dsninfo['port']; } else {
$dbhost .= $portDelimiter.'1433';
}
*/

Vous pourrez alors utiliser correctement la ligne de commande symfony.

ntwdblib.dll

Posté par patrick le 15/06/2010 11:25
le fichier ntwdblib.dll ne se trouve pas dans le dossier system32

Lone Wolf

Posté par Pierre-Yves Landuré le 15/06/2010 12:25
Il faut avoir installé le client Microsoft SQL Server pour qu'il soit disponible.


Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio