Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1735 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Php ne peut charger l'extension mysql

 

 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Php ne peut charger l'extension mysql

n°1314960
earendel
Posté le 28-02-2006 à 00:07:28  profilanswer
 

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.

mood
Publicité
Posté le 28-02-2006 à 00:07:28  profilanswer
 

n°1315070
omega2
Posté le 28-02-2006 à 10:23:05  profilanswer
 

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.

n°1315080
soju
One shot !
Posté le 28-02-2006 à 10:35:22  profilanswer
 

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

n°1315157
smaragdus
whores, drugs & J.S. Bach
Posté le 28-02-2006 à 11:35:16  profilanswer
 

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 ?
 

n°1315660
earendel
Posté le 28-02-2006 à 21:36:55  profilanswer
 

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 ?

n°1315715
earendel
Posté le 28-02-2006 à 22:54:18  profilanswer
 

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 ?

n°1315809
smaragdus
whores, drugs & J.S. Bach
Posté le 01-03-2006 à 01:13:26  profilanswer
 

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
n°1315829
earendel
Posté le 01-03-2006 à 08:30:50  profilanswer
 

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.

n°1315901
omega2
Posté le 01-03-2006 à 10:14:48  profilanswer
 

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. :(

n°1315998
earendel
Posté le 01-03-2006 à 11:49:38  profilanswer
 

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 ?

mood
Publicité
Posté le 01-03-2006 à 11:49:38  profilanswer
 

n°1316005
omega2
Posté le 01-03-2006 à 11:56:13  profilanswer
 

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à.

n°1316008
smaragdus
whores, drugs & J.S. Bach
Posté le 01-03-2006 à 11:59:39  profilanswer
 

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 ?  

n°1316193
earendel
Posté le 01-03-2006 à 14:41:57  profilanswer
 

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.

n°1319371
earendel
Posté le 06-03-2006 à 13:34:37  profilanswer
 

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.

n°1659733
vr30
salut
Posté le 18-12-2007 à 10:33:17  profilanswer
 

<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]

n°1660434
Elmoricq
Modérateur
Posté le 19-12-2007 à 06:58:52  profilanswer
 

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
n°1697541
GLJ
A force d'y croire on y arrive
Posté le 05-03-2008 à 13:59:12  profilanswer
 

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).

n°1697590
soulmanto
Chat Noir replica
Posté le 05-03-2008 à 15:06:32  profilanswer
 

déterrage 2 le retour [:pingouino]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Php ne peut charger l'extension mysql

 

Sujets relatifs
MySql : jointure externephp/mysql
Signification d'une ligne de code en PHPProblème avec memory_limit de PHP.ini
[MySQL] Verrous tables MyISAM / InnoDBvalidation formulaire en php avec Mysql
Mysql et optimisation ?Travail en Local puis mise a jour ( Mysql et PHPmyAdmin)
PHP MAJ table, formulaire ds un tableauPHP ne peut charger l'extension mysql ! Why and Help pliz!
Plus de sujets relatifs à : Php ne peut charger l'extension mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR