Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/04/2007, 14h44   #1
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
Par défaut PHP5 ne veut pas se connecter à MySQL5 !

Bonjour,
J'espère que je suis dans le bon forum
Bon voilà, j'ai manuellement installé apache2 + php 5.3 + apc + mysql 5 + phpMyAdmin, le tout sous debian.
Le problème c'est mes scripts PHP ne peuvent pas se connecter sur la base, la fonction mysql_connecte me sort ceci :
Citation:
Fatal error: Call to undefined function mysql_connect() in /var/www/test/inc/db_connect.inc.php on line 9
Pourtant, dans le fichier apache2/php.ini, j'ai bien décommenté la ligne extension=mysql.so, mais je ne sais pas comment il va trouver ce fichier !! je n'ai pas changé la valeur de exension_dir (= "./.")
En plus, phpinfo() ne donne rien concernant mysql !!! mais le plus bizarre dans tout ça c'est que phpmyadmin peut parfaitement accéder à la bdd !!!
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 16h00   #2
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
un autre truc que je ne comprends pas : où est-ce que je dois mettre mes fichiers php ? sur le dossier /var/www/ ou /var/www/apache2-default/ ?? est-ce qu'il y a une différence ?
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 16h33   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
phpMyAdmin peut fonctionner avec l'extension mysql comme mysqli. Ainsi vous pourriez très bien ne pas avoir l'extension mysql mais mysqli. La directive extension_dir doit pointer vers le ou les répertoires où php trouvera les extensions compilées sous forme dynamique (fichiers *.so) sinon il sera incapable de les charger. Mais si vous l'avez compilé à la main vous devez savoir si cette extension a été compilé et comment d'autant plus que cette extension n'est plus active par défaut (voir configure --help).

Citation:
Envoyé par sami_c
un autre truc que je ne comprends pas : où est-ce que je dois mettre mes fichiers php ? sur le dossier /var/www/ ou /var/www/apache2-default/ ?? est-ce qu'il y a une différence ?
Regardez la valeur de la directive DocumentRoot dans le fichier de configuration d'Apache.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 10h52   #4
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
sachant que exension_dir="./."
comment se fait-il que apc.so ne pose aucun problème ? sachant que ce fichier se trouve dans le dossier
/usr/lib/php5/20060613+lfs/apc.so
pourquoie apc.so marche et non mysql.so ??!! où est-ce que je doit copier mysql.so ?
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 11h20   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par sami_c
exension_dir="./."
A moins que les extensions se trouvent dans le répertoire courant (par rapport au script ?), je doute qu'avec ce genre de chemin php puisse les trouver.

Citation:
Envoyé par sami_c
comment se fait-il que apc.so ne pose aucun problème ? sachant que ce fichier se trouve dans le dossier
/usr/lib/php5/20060613+lfs/apc.so
pourquoie apc.so marche et non mysql.so ??!! où est-ce que je doit copier mysql.so ?
Il est situé où ce mysql.so ? Normalement vous devriez avoir vos extensions dans /usr/lib/php5/20060613+lfs (suivant la procédure que vous avez suivi) et vous devriez ajouter ce même chemin à extension_dir. Pourquoi trouve-t-il apc et pas mysql ? Bonne question : vous vous êtes peut être trompés de fichier php.ini, vous avez peut être une configuration qui permet l'utilisation de multiples fichiers .ini et l'extension apc aurait le sien, ... Mais tous ces points sont vérifiables en consultant la sortie de phpinfo.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 12h54   #6
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
voilà mon phpinfo() :
http://88.191.29.115/phpinfo.php

Franchement je n'y comprends plus rien !!!
J'ai bien décommenté la ligne extension=mysql.so dans deux fichiers php.ini
Voici la liste des fichiers php.ini :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sd-5066:~# locate php.ini
/etc/php4/apache/php.ini
/etc/php4/apache/php.ini.OLD
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/usr/share/doc/php4-common/examples/php.ini-dist
/usr/share/doc/php4-common/examples/php.ini-paranoid
/usr/share/doc/php4-common/examples/php.ini-recommended
/usr/share/doc/php5-common/examples/php.ini-dist
/usr/share/doc/php5-common/examples/php.ini-paranoid
/usr/share/doc/php5-common/examples/php.ini-recommended
/usr/share/php4/php.ini-dist
/usr/share/php5/php.ini-dist
/usr/share/php5/php.ini-dist.cli
j'ai bien modifié ces deux fichiers :
Code :
1
2
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
j'ai bien redémarré apache2 mais j'ai tjr le meme pb !!!

Voilà où se trouve le fameux mysql.so :
Code :
1
2
3
4
5
6
sd-5066:~# locate mysql.so
/usr/lib/mysql.so
/usr/lib/perl5/auto/DBD/mysql/mysql.so
/usr/lib/php4/20020429/mysql.so
/usr/lib/php5/20060613+lfs/mysql.so
/usr/lib/php5/20060613+lfs/pdo_mysql.so
PS : tout au début, j'ai installé apache 1.3/php4/mysql (4 je pense) ensuite j'ai installé dessus apache2+php5+mysql5
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 13h55   #7
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Attention parce que vous n'utilisez probablement pas le même fichier php.ini suivant que vous exécutez votre script via votre naviagteur (module Apache voir CGI) et en console (CLI).

D'après le phpinfo que vous donnez :
  • le fichier php.ini principal est /etc/php5/apache2/php.ini et il est bien lu
  • tous les fichiers .ini situé dans le répertoire /etc/php5/apache2/conf.d seront lus (vous en avez un certain nombre qui sont lus pour : mysql, mysqli, pdo, pdo_mysql)
  • extension_dir semble être convenablement rensignée par rapport aux éléments fournis

Comment avez-vous installé PHP et/ou l'extension MySQL pour PHP5 précisément (sources ou paquets) ? Avez-vous des messages d'erreur (type 'incapable de charger l'extension mysql ...') - à regarder éventuellement dans le log d'erreur d'Apache ? La librairie mysql.so doit impérativement correspondre à l'extension PHP de MySQL pour la version de PHP donnée. Vous pouvez tenter de la recompiler :
Code :
1
2
3
4
5
cd /répertoire/sources/de/php5/ext/mysql
phpize
./configure # Peut être faudra-t-il lui fournir des paramètres pour qu'il puisse trouver la librairie mysql
make
make install
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 14h17   #8
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
je me rappelle pas bien comment j'ai installé php5, j'ai essayé plusieurs trucs pour y arriver
Je me rappelle que j'ai installé ceci (en utilisant apt-get install)
php5
php5-mysql
php5-cli
mysql-server

sinon comment je peux compiler le mysql.so ? je n'ai pas de dossier php5/ext/mysql !! Comment je fais pour telecharger le code ?
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 11h12   #9
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
aucune réponse ? en fait j'ai fini par adapter mes scripts afin d'utiliser mysqli mais j'aimerais bien trouver la solution à ce pb !
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 14h52   #10
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
C'est compréhensible : il était marqué Résolu ...

Sinon sur une debian 4.0 j'avais installé les paquets que vous aviez mentionné et je n'ai eu aucun soucis avec l'extension mysql. Si vous avez un trou de mémoire sur les paquets installés il est facile de vérifier avec dpkg -l par exemple. Par hasard, avez-vous tenté de réinstaller le paquet php5-mysql (en ajoutant l'option --purge lors de la suppression) ?

Selon moi, deux possibilités : c'est le résultat d'une "mauvaise" configuration ou alors il y a un problème avec le binaire de l'extension auquel cas PHP devrez vous l'indiquer :
Citation:
Envoyé par julp
Avez-vous des messages d'erreur (type 'incapable de charger l'extension mysql ...') - à regarder dans le log d'erreur d'Apache si log_errors à On ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 16h39   #11
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
Je vais consulter le log d'apache
sinon je voudrais éviter de désintaller php car j'ai installé APC dessus et j'ai galéré pour le faire fonctionner (je voulais utiliser un script d'upload avec barre de progression)
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 16h48   #12
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par sami_c
Jje voudrais éviter de désintaller php
Je parle bien du paquet php5-mysql donc ça ne concernera pas le corps de php mais uniquement l'extension. J'ai oublié de vous demander : en ligne de commande avec php -i est-ce que l'extension mysql apparaît ?

Citation:
Envoyé par sami_c
j'ai installé APC dessus et j'ai galéré pour le faire fonctionner (je voulais utiliser un script d'upload avec barre de progression)
N'y aurait-il pas confusion ? APC est une extension proposant des fonctionnalités de "cache".
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 16h10   #13
Membre habitué
 
Avatar de sami_c
 
Inscription : mai 2002
Messages : 633
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 633
Points : 147
Points : 147
Citation:
Envoyé par julp
N'y aurait-il pas confusion ? APC est une extension proposant des fonctionnalités de "cache".
en effet, APC propose des fonctionnalité de caches necessaires pour développer un module de barre de progression en temps réel, je voulais juste dire que je ne voulais pas me retapper l'installation de ce module !
__________________
'...parfois l'informatique peut vous rendre fou...'
sami_c est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2007, 14h16   #14
Invité de passage
 
Inscription : mai 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 3
Points : 3
Points : 3
Par défaut la solution

Call to undefined function mysql_connect() in /var/www/test/inc/db_connect.inc.php on line

j'avais le meme probleme sur linux suse, et finalement s'etait un probleme de configuration du php

tu lance <?php php_info() ?>
et tu verifie ou se trouve Mysql.sock pour la configuration du php
au meme temps tu vas chercher ou se trouve reelement Mysql.sock

tu vas ensuite au php.ini et tu change ce repertoire au block [Mysql] au vrai repertoire ou se trouve Mysql.sock
ça marchera.....

Bonne continuation
lukkphp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h30.


 
 
 
 
Partenaires

Hébergement Web