par
sadeq » 26 avr. 2007, 13:14
Je récapitule la procédure
------------------------------
0. supposons qu'on a placé le dossier de php dans C:\Inetpub\php
1. placer php.ini dans C:\Windows
2. placer php5ts.dll et ntwdblib.dll dans C:\Windows\System32
3. editer php.ini, en fixant les paramètres suivants :
- cgi.force_redirect = 0 (pour activer le mode ISAPI et non CGI)
extension_dir = "C:/Inetpub/php/ext" (où /ext est le dossier des dll)
extension=php_mssql.dll (qui est la dll de SQL SERVER)
mssql.secure_connection = On (pour activer l'authentification Windows, sinon SQL Server doit être en mode de sécurité mixte)
4. Configurer l'extension PHP sous IIS :
- a. dans les propriétés du site Web, Onglet répertoire de base, dans la partie "paramètres de l'application" clic sur le bouton "configurer" et ajoute l'extension .php chemin : C:\Inetpub\php\php5isapi.dll
b. si t'es sous Windows server, il faut activer cette extension ISAPI dans le noeud "Extensions du service Web" du gestionnaire IIS, en cliquant sur "Ajouter une nouvelle extension" puis donner le nom "php" et le chemin "C:\Inetpub\php\php5isapi.dll" puis finalment l'autoriser en cliquant sur le bouton "Autoriser"
Maintenant, côté SQL Server, vérifie si ton serveur SQL est en mode mixte et dans ce cas tu peux ouvrir une connexion par "sa" ou autres utilisateurs créés par SQL Server ayant les droits nécessaires pour utiliser la base, les tables droits de type (SELECT, UPDATE ou DELETE)
Dans ce cas mssql.secure_connection = Off dans php.ini.
Si ton server SQL n'est pas en mode mixte, il n'accepte pas donc les connexions par "sa" ou tout autre utilisateur créé par SQL Server mais seulement les utilisateurs de Windows, dans ce cas il faut créer une connexion sur le serveur pour l'utilisateur "IUSR_xxxxx" (xxxxx = nom de ton poste) qui représente l'accès anonyme via le Web et lui donner les droits nécessaires sur les bases et les tables. Dans ce cas : mssql.secure_connection = On dans php.ini.
Finalement, penses à redémarrer le server IIS, dans son gestionnaire : premier noeud (nom du poste)+clic droit+toutes les tâches+Redémarrer IIS.
ça c'est la procédure générale, mais toi, ton problème se situe alors dans le non chargement de l'extension "php_mssql.dll". Pour l'atteindre, IIS qui lit dans son PHP.ini dans C:\Windows la directive
extension_dir = "C:/Inetpub/php/ext" doit trouver dans le chemin
C:/Inetpub/php/ext le fichier
php_mssql.dll pour le charger.