Pb installation Php et fonctions mssql

Petit nouveau ! | 2 Messages

26 avr. 2007, 09:59

Bonjour,

Je suis tombé sur cette sympathique doc sur votre forum:

http://www.phpfrance.com/forums/voir_reponse-103838.php


Php marche très bien mais il ne reconnaît pas mes fonctions mssql :(
Ex : Fatal error: Call to undefined function mssql_connect()

Malgré les modif de php.ini et le téléchargement d'une dll (ntwdblib.dll) plus récente rien de marche.

J'ai donc utilisé phpinfo() et je constate qu'il va chercher php.ini dans C:\Winnt au lieu C:/Inetpub/Php

Configuration File (php.ini) Path C:\WINNT
Et si je place php.ini dans C:\WINNT, j’ai droit a ça quand je lance une page php :
$select

"; //Appel de la page centrale //
et le reste du code source

Ce qui est curieux , il ne m’affiche pas le code qui est avant select et $select s’affiche en bleu

Par contre si je retire php.ini les script marchent de nouveau sauf ceux qui utilisent les fonction mssql.

Je commence un peu a tourner en rond et j'apprécierait énormément si on me donnait une piste a suivre.

La config Windows 2000 et son IIS et sql est hebergé sur un serveur sql 2000 /windows 2000.
Modifié en dernier par Tribe le 26 avr. 2007, 15:29, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

26 avr. 2007, 11:10

as-tu activé l'extension php_mssql.dll?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

26 avr. 2007, 12:30

Oui j'ai enlevé le ; devant extension = php_mssql.dll

Et dans phpinfo() je ne trouve rien qui s'appelle mssql et il n'y a absoluement rien dans la partie module

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

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.
Modifié en dernier par sadeq le 27 avr. 2007, 09:01, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Petit nouveau ! | 2 Messages

26 avr. 2007, 15:26

Tout d'abord merci pour ton aide :)


Par précaution j'ai tout revérifié et la oui grosse erreur une des dll que j'ai copié dans system32 n'était pas la bonne.

Depuis tout marche j'arrive accéder a la base qui m'intéresse.

Et il faut bien php.ini dans C:\windows pour tout marche

Encore merci ^^