IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

PHP5 ne veut pas se connecter à MySQL5 !


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    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 :
    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...'

  2. #2
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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...'

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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.

  4. #4
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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...'

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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.

  6. #6
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...'

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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...'

  9. #9
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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...'

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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 ?

  11. #11
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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...'

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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".

  13. #13
    Membre averti Avatar de sami_c
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2002
    Messages : 750
    Points : 354
    Points
    354
    Par défaut
    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...'

  14. #14
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 4
    Points
    4
    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

Discussions similaires

  1. JBoss ne veut pas se connecter à une base Oracle
    Par SuperPat dans le forum Wildfly/JBoss
    Réponses: 7
    Dernier message: 07/03/2009, 12h53
  2. SMTP ne veut pas se connecter !
    Par dva2tlse dans le forum Réseau
    Réponses: 21
    Dernier message: 21/01/2008, 20h43
  3. Réponses: 8
    Dernier message: 13/06/2007, 22h57
  4. java web start qui veut pas se lancer
    Par calvin dans le forum JWS
    Réponses: 4
    Dernier message: 30/06/2004, 11h42
  5. [Kylix] Un programme compilé ne veut pas se lancer
    Par LightBeam dans le forum EDI
    Réponses: 1
    Dernier message: 05/08/2003, 10h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo