Php ne peut charger l'extension mysql

Php ne peut charger l'extension mysql - PHP - Programmation

Marsh Posté le 28-02-2006 à 00:07:28    

Bonjour,
 
J'ai installé Apache 2.0.55, Mysql 5.0, Php 5.1.2 et phpMyAdmin 2.7.0 sur Windows XP Pro SP2.
J'ai un problème lorsque j'essaie d'utiliser phpmyadmin. J'obtiens le message:
 
PHP ne peut charger l'extension mysql,
veuillez v�rifier votre configuration de PHP
 
Voici ce que j'ai fait:
 
J'ai copier le fichier libmysql.dll du dossier Php5 dans le dossier System32 de Windows.
J'ai décommenté la ligne :
 
extension=php_mysql.dll
 
dans le fichier php.ini.
J'ai correctement indiqué le dossier des extensions avec la ligne:
 
extension_dir="c:\Program Files\Php5\ext"
 
Dans config.inc.php, j'ai la ligne:
 
$cfg['Servers'][$i]['extension'] = 'mysql';
 
 
J'ai aussi essayé en mettant les lignes suivantes:
 
extension=php_mysqli.dll     ;(à la place de extension=php_mysql.dll)
$cfg['Servers'][$i]['extension'] = 'mysqli';     //à la place de $cfg['Servers'][$i]['extension'] = 'mysql';
 
Ca me donne alors le message passionnant suivant:
 
PHP ne peut charger l'extension mysqli,
veuillez v�rifier votre configuration de PHP
 
 
Pour le reste, tout semble bien fonctionner.
 
---
PS: J'ai lu ça http://forum.hardware.fr/hardwaref [...] 8603-1.htm, et la solution proposée (copier les dll de PHP dans le dossier Windows) ne fonctionne pas.
PPS: J'ai lu aussi ça http://www.apachefrance.com/Forums [...] topic=4385, où il est dit de copier le fichier libmysql.dll du dossier mysql\bin dans system32 (et non le fichier du même nom de php) et ça ne fonctionne pas non plus.

Reply

Marsh Posté le 28-02-2006 à 00:07:28   

Reply

Marsh Posté le 28-02-2006 à 10:23:05    

Si l'option "extension_dir" du php.ini est renseigné alors il faut mettre les dll dans ce dossier là.
Les mettre dans le dossier "system32" de windows, ce n'est bon que pour ceux qui veulent faire ça à la vas vite sans chercher comment ca marche. En bref, ceux qui ne renseignent pas cette option et qui forcent donc php à chercher les dll là où windows lui dira qu'il a des chances d'en trouver.
Dans ton cas, tu l'as renseigné donc tu n'as pas à les mettre dans le dossier "system32". D'ailleur, vire les de là, c'est un dossier déjà assez bordélique comme ça.
 
Quand à ton "$cfg['Servers'][$i]['extension'] ", il sert à quoi? Si c'est pour charger dynamiquement l'extension mysql ou mysqli, alors ca sert à rien si c'est déjà chargé au lancement de php et pire, essayer de charger dynamiquement un module déjà charger risque fort de ne pas marcher des masses.
Au fait, ton erreur, c'est un message affiché dans le navigateur (erreur du script) ou une fenêtre d'erreur à la windows? Les erreurs de chargement de module au lancement de php s'affichent sous forme de fenêtre d'erreur quand php est exécuté sous windows.

Reply

Marsh Posté le 28-02-2006 à 10:35:22    

+1 omega2
 
et un coup d'oeil dans les logs d'erreurs, tu as peut être un truc genre "Unable to load dynamic library"

Reply

Marsh Posté le 28-02-2006 à 11:35:16    

earendel a écrit :


dans le fichier php.ini.
J'ai correctement indiqué le dossier des extensions avec la ligne:
 
extension_dir="c:\Program Files\Php5\ext"


 
C'est une erreur qui peut arriver mais est-ce que tu as vérifié le chemin du php.ini dans phpinfo() ?
Peut être ne modifies-tu pas le bon php.ini ?
 

Reply

Marsh Posté le 28-02-2006 à 21:36:55    

Smaragdus a trouvé la solution.
Merci, oui effectivement, j'ai modifié le php.ini livré avec Php, et non pas le php.ini qu'on trouve dans le dossier Windows. Etrange que je n'ai pas trouvé d'autres forum qui relève le problème. Enfin bon, ça marche maintenant.
 
D'ailleurs, comment fait-on pour décider du dossier où php va chercher son php.ini ?

Reply

Marsh Posté le 28-02-2006 à 22:54:18    

En fait, j'ai crié victoire trop vite. J'ai bien résolu le problème en question, mais j'en ai un autre.
 
Je vois enfin le formulaire d'identification de phpMyAdmin. J'entre mon login et mon mot de passe, et je tombe sur une page qui dit:
 
Erreur
#2003 - Le serveur ne répond pas.
 
Qu'est-ce qu'il faut encore faire ?

Reply

Marsh Posté le 01-03-2006 à 01:13:26    

Le service est-il lancé ET démarré ?
Dans  les services de win, tu dois avoir un mysqld qui tourne.
 
Si c'est  le cas, essaie de te connecter avec la console mysql.exe dans le rep bin de mysql pour voir ce qu'il te dit.
 
Edit : pour le php.ini, ça se configure dans apache, c'est la variable phpinidir si je me souviens bien (il faut redemarrer apache)


Message édité par smaragdus le 01-03-2006 à 01:15:06
Reply

Marsh Posté le 01-03-2006 à 08:30:50    

Le service nommé MySQL est démarré.
Je peux utilisé MySQL en mode console.
J'ai aussi regardé du côté de mon firewall, mais je n'ai rien qui semble susceptible de bloquer? D'ailleurs, j'ai testé en local en désactivant le firewall, et j'ai la même erreur.

Reply

Marsh Posté le 01-03-2006 à 10:14:48    

earendel a écrit :

D'ailleurs, comment fait-on pour décider du dossier où php va chercher son php.ini ?

Chez moi, pour faire ça, j'ai dans l'ordre :

  • viré le php.ini situé dans le dossier de windows (endroit évitable et génant si on veut tester plusieurs versions de php)
  • copier le php.ini dans le répertoire d'exécution d'apache (celui où ce trouve l'exécutable) si php est lancé en tant qu'extension d'apache ( php5apache2.dll ou un nom approchant )  et modifié celui ci.
  • laissé le php.ini dans le dossier d'exécution de php quand il est lancé en tant que cgi par le serveur web (php-cgi.exe) ou quand il est lancé directement à la main (php.exe ou php-win.exe) .


Ce qu'est chiant, c'est IIS (le serveur web de microsoft). Pour lui, je n'ai réussit à rajouter le php qu'en extension isapi d'IIS ( php5isapi.dll ) et je n'ai pas trouver où mettre le php.ini ailleur que dans le dossier de windows. :(

Reply

Marsh Posté le 01-03-2006 à 11:49:38    

Pour moi qui ne souhaite pas tester plusieurs version de Php, qui utilise Apache2 et qui lance Php en tant que module d'Apache, est-ce vraiment gênant de laisser php.ini dans le dossier Windows ?
Et par ailleurs, est-ce que ça apporte une quelconque solution à mon problème avec MySQL ?

Reply

Marsh Posté le 01-03-2006 à 11:49:38   

Reply

Marsh Posté le 01-03-2006 à 11:56:13    

La seule différence, c'est que si t'as un php.ini qu'a un seul endroit du disque, tu ne risquerais plus de le confondre avec les autres.
Par contre, que le php.ini soit dans le dossier de windows ou dans le dossier d'apache, s'il est identique, ca ne corrigera rien à ton probléme.
 
Par contre, peut être que tu dois modifier le fichier de config de phpmyadmin pour lui indiquer à quelle adresse se trouve le serveur mysql. Par contre, je me souviens plus le nom de ce fichier là.

Reply

Marsh Posté le 01-03-2006 à 11:59:39    

earendel a écrit :

Pour moi qui ne souhaite pas tester plusieurs version de Php, qui utilise Apache2 et qui lance Php en tant que module d'Apache, est-ce vraiment gênant de laisser php.ini dans le dossier Windows ?
Et par ailleurs, est-ce que ça apporte une quelconque solution à mon problème avec MySQL ?


 
Que vaut ta variable PHPIniDir dans apache ?  

Reply

Marsh Posté le 01-03-2006 à 14:41:57    

Je ne suis pas chez moi, donc je n'ai pas accès à mes fichiers, mais lorsque j'accède à mon fichier info.php, qui me lance la fonction phpinfo(), je vois ça :
 
Configuration File (php.ini) Path:   C:\Program Files\Php5\php.ini
 
Je suppose que c'est ça qui compte. Cela, je pense que mon nouveau problème est à régler du côté de mysql, ou bien de phpmyadmin, comme le dit omega2. Cependant, j'ai bien regardé en détail le fichier de configuration de phpmyadmin (config.inc.php), et je ne vois pas ce qui cloche là dedans. Je n'ai pas regardé dans les autres fichiers de phpmyadmin, cela dit.
Pour ce qui est de la configuration de MySQL, j'ai regardé dans le fichier my.ini, mais j'ai rien trouvé de convainquant relativement à mon problème. Et puis pour ce qui est de php.ini, je ne vois pas ce que je peux faire de plus (je charge l'extension php_mydsl.dll). J'ai aussi essayé avec l'extension php_mysqli qui me donne la même erreur mais en anglais:
 
 #2003 - Can't connect to MySQL server on 'localhost' (10061)
 
Sur d'autres forum, il est indiqué d'aller voir du côté du Firewall, mais je ne refuse rien provenant de Apache, Php ou MySQL.

Reply

Marsh Posté le 06-03-2006 à 13:34:37    

Après avoir bidouillé encore un peu ça marche. Je ne sais pas au juste ce qui a débloqué la situation mais tout fonctionne correctement maintenant. C'est mystérieux.

Reply

Marsh Posté le 18-12-2007 à 10:33:17    

<gras><ital><souligne>moi j'ai trouver la solution est j'ai 12 ans</souligne></ital></gras>
 
 la ligne :$fg['servers'][$i]['extension']           ='mysql'
ou          $fg['servers'][$i]['extension']           ='mysqli'
     l faut la mettre comme ceci
    pour l'extension mysql:      //$fg['servers'][$i]['extension']           ='mysql'
et pour l'extension mysqli:     //$fg['servers'][$i]['extension']           ='mysqli'
[#f0000e]
:) :) :)  :D  :D ;)  ;)  ;)  :)  :)  :)  
ps: désoler pour les faute d'aurtographe
                 vr30[#000ef0]

Reply

Marsh Posté le 19-12-2007 à 06:58:52    

Remonter un post d'un an et demi pour poster n'importe quoi et n'importe comment, c'était vraiment pas la peine.
 
Pour le moment c'est le seul message que tu as posté ainsi, donc je vais juste t'encourager à lire les règles du forum, à arrêter les messages qui piquent les yeux, et à réfléchir avant de poster.


Message édité par Elmoricq le 19-12-2007 à 06:59:32
Reply

Marsh Posté le 05-03-2008 à 13:59:12    

Normalement, l'installation de WAMPSERVER 2 ne pose pas de problème, mais j'ai cependant eu le même message d'erreur pour mysqli.dll.
J'ai résolu ce problème tout simplement en désinstallant un éditeur d'évaluation PHP de la firme ZEND qui a tendance à monopoliser le PC via la configuration de fichier système dans le path.
En temps qu'amateur de programmation en PHP, je conseille l'éditeur PHP Designer 2008, pas cher du tout (+-50€) avec toutes les fonctionnalités digne d'un éditeur professionnel tel que le deboggeur, gestion de projet, aide à l'encodage et contextuelle  entre autre (il existe une version freeware également).

Reply

Marsh Posté le 05-03-2008 à 15:06:32    

déterrage 2 le retour [:pingouino]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed