Forum Programmation.web Problème avec MySQL et php

Posté par  .
Étiquettes :
0
1
juil.
2005
Sur un serveur Linux, nous avons plusieurs sites hébergés.

Jusqu'à hier, tout fonctionnait parfaitement. Quatre sites sont hébergés sur ce serveur, deux font appel à PHP-MySQL (un site SPIP, un site maison), deux sont en HTML (+css mais bon ça ne change rien).

Seulement, depuis hier, les sites faisant appel à PHP et Mysql n'affichent plus rien. Quand on pointe sur l'adresse on a une page vide, sans message d'erreur.

La seule différence, c'est qu'hier nous avons essayé d'installer la bibliothèque libpg2. Après redémarrage d'Apache, rien ne va plus, sur les sites faisant appel à PHP-MySQL. Les autres en HTML classique fontionnent bien par contre. Après avoir enlevé cette bibliothèque, ainsi que les paquets associés, et redémarré Apache, le site SPIP et l'appli maison ne marchent plus... du tout.

Paquets installés:
    Apache2 est installé
    PHP4.3.10-15 est installé
    LibApache2-mod-php4 est installé
    php4-gd est installé
    MySQL 4 est installé (et fonctionne en ligne de commande)
    PHPMysql est installé, dans le fichier /etc/php4/apache2/php.ini, l'extension mysql est chargée (extension=mysql.so).

PHPMyAdmin est installé, mais renvoi le message "PHP ne peut charger l'extension mysql, veuillez vérifier votre configuration de PHP et un lien vers Documentation"

Je reprécise qu'hier, PHPMyAdmin fonctionnait, un des sites en SPIP aussi, seulement depuis l'installation de libpg2 et après redémarrage d'Apache, rien ne va plus.

Une autre bizarrerie que je ne comprends pas: dans le fichier php.ini, il y a une ligne mentionnant (sous la rubrique Extension Windows): extension=msql.dll, et plus rien sous la partie UNIX de la même section, alors qu'auparavant j'avais bien vu extension=mysql.dll et sous Unix extension=mysql.so, que j'avais décommenté et qui avait permit simplement de pouvoir utiliser mysql sous php. J'ai bien ajouté la ligne manquante extension=mysql.so.

Dernière précision: le serveur est sous Debian Sarge (enfin une Woody mise à jour).

C'est d'autant plus rageant que je me suis pris dans la tronche qu'un autre serveur nouvelle installé, sous W2000 fonctionne du feu de dieu... et qu'il est probable que notre pingouin aille s'échouer sur sa banquise et que W2000 le remplace. J'enrage.
  • # RE: Problème avec MySQL et php

    Posté par  . Évalué à 3.

    Bonjour,

    C'est d'autant plus rageant que je me suis pris dans la tronche qu'un autre serveur nouvelle installé, sous W2000 fonctionne du feu de dieu... et qu'il est probable que notre pingouin aille s'échouer sur sa banquise et que W2000 le remplace. J'enrage.

    Les menaces de changement d'OS ne servent à rien si apache fonctionnait la veille et qu'il ne fonctionne plus le lendemain c'est qu'il y a eu une manipulation de l'utilisateur. Le probleme est le plus souvent entre la chaise et le clavier, c'est valable pour tous les OS.

    Pour ta question, as-tu essayé un $dpkg-reconfigure php4 ?
    As-tu essayé de faire une page avec <?php phpinfo() ?> pour t'assurer que php fonctionne toujours ?
    Tu n'as pas joué avec les extentions de tes fichiers ?


    --
    Debian, il y a pire mais c'est plus cher.
    • [^] # Re: RE: Problème avec MySQL et php

      Posté par  (site web personnel) . Évalué à 2.

      Tu peux donner un cat de /var/log/apache/"fichier_d_erreur" ?

      Est ce que le bloc mysql apparait bien dans ton phpinfo? (a priori non)

      Je pense que ton problème est vraiment basique et qu'il devrait se regler avec un simple
      apt-get install php4-mysql
      au pire, remove le et réinstalle le.
      • [^] # Re: RE: Problème avec MySQL et php

        Posté par  . Évalué à 1.

        apt-get install php4-mysql => pas utile car php4-mysql is already the newest version (sans ça, ça n'aurait pas dû pouvoir fonctionner avant, non ?).

        J'ai essayé de réinstaller php4-mysql (apt-get remove, puis install, puis ajout dans /etc/php4/apache2/php.ini de extension=mysql.so, puis redémarrage d'Apache [/etc/init.d/apache2 restart]).

        La page d'info de PHP me donne (extrait bien sûr):

        Dans Configure command ('--without-mysql'), mais aussi dbx support enabled, version 1, supported databases Mysql, etc.).

        (pour couper toute remarque, j'ai noté moi-aussi que la date système était ridicule, ce sera corrigé, je n'y peux rien si c'est comme ça, mais ça changera...). N'ai pas voulu la changer pour ne pas tromper l'analyse.

        Par contre le fichier "error.log" est plus interressant:
        ------------------------------- EXTRAIT -------------------------------------------------
        PHP Warning: Unknown(): Unable to load dynamic library './gd.so' - ./gd.so: cannot open shared object file: No such file or directory in Unknown on line 0
        PHP Warning: Unknown(): Unable to load dynamic library './msql.so' - ./msql.so: cannot open shared object file: No such file or directory in Unknown on line 0
        PHP Warning: Unknown(): Unable to load dynamic library './mysql.so' - ./mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
        PHP Warning: Unknown(): Unable to load dynamic library './mssql.so' - ./mssql.so: cannot open shared object file: No such file or directory in Unknown on line 0
        [Fri Apr 01 23:02:37 2005] [notice] Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-15 configured -- resuming normal operations
        --------------------------- EXTRAIT (FIN) ---------------------------------------------
        Que faut-il en penser ?

        Comme j'ai enlevé/remis le paquet, qu'est-ce qui cloche ?
        • [^] # Re: RE: Problème avec MySQL et php

          Posté par  (site web personnel) . Évalué à 2.

          A priori le probleme viens de la config de php.
          Mysql est bien là, php aussi, mais les deux refusent de cohabiter ensemble.
          J'ai eu le meme probleme récement en essayant d'installer la librairie gd.

          J'ai pas trop compris pourquoi mais tout s'est réglé à grand coup de remove puis install.

          Je te conseille de commencer par supprimer php4-mysql et php4-gd (puisqu'il est aussi incriminé dans le message d'erreur) avec l'option purge (apt-get remove --purge php4-gd php4-mysql), tu réinstalle php4-mysql, tu vérifie dans php.ini (normalement dans /etc/php4/apache/php.ini) que la ligne extension=mysql.so est bien là et que tu n'a pas la ligne extension=gd.so, vérifie bien aussi que toute les extension en .dll sont commentées, elles ne nous sont d'aucun intérêt.
          Tu relance apache, normalement ca devrait re-rouler.
          Après tu réinstalle gd...
          Ca "devrait" remarcher
          • [^] # Re: RE: Problème avec MySQL et php

            Posté par  . Évalué à 1.

            Bon, ça bouge.

            J'ai purgé les fichiers sus-mentionnés (php4-mysql / php4-gd), puis les ais réinstallés: résultat, à l'appel de la page phpmyadmin (que j'avais donc aussi remis) j'accède bien à l'interface d'administration et peut aller voir les fichiers des bases de données.

            Par contre, en appelant la page d'un des sites PHP-mysql, je n'ai rien qu'une page vide, sans message d'erreur, mais sans contenu non plus.

            En allant voir du côté de /etc/php4/apache ou /etc/php4/apache2 (en fait, c'est apache2 qui tourne), il n'y a pas de fichier php.ini. Là je nage !

            J'ai bien essayé de regarder dans les fichiers de log, mais je sèche.
        • [^] # Re: RE: Problème avec MySQL et php

          Posté par  (site web personnel) . Évalué à 1.

          je pense qu'il ne trouve pas les extensions.

          Vérifie dans le fichier php.ini la directive suivante :

          ; Directory in which the loadable extensions (modules) reside.
          extension_dir = "/path/to/extensions/"


          et remplace /pathto/extensions/ par le répertoire des extensions de php
          (fait un find / -type f -name mysql.so -print pour le trouver si nécessaire )

          redémarre Apache et ça devrait être bon.

          Honor.
          • [^] # Re: RE: Problème avec MySQL et php (résolu ?)

            Posté par  . Évalué à 1.

            Bon, là je vais pouvoir penser au week-end après une petite sauvegarde (j'avais appris entre temps que les données avaient été modifiées, j'ai d'ailleurs ajouté un petit script dans la crontab afin de mettre en place des sauvegardes automatiques...).

            Il semble que les dernières opérations ont réglé le problème (purge des paquets, puis réinstallation et modification du script php.ini (ajout du chemin pour trouver la bibliothèque mysql.so).

            Par contre, j'ai dû modifier la ligne extension=mssql.so (oui) en extension=mysql.so. Je ne comprends toujours pas pourquoi le fichier php.ini n'était pas recrée après réinstallation de php4-mysql.

            J'ai aussi "activé" la bibliothèque GD, et maintenant tout fonctionne, même les graphes...

            L'honneur de Linux est peut être sauf (merci à vous), pas le mien (mais c'est , normal, et ça n'est pas bien grave). Je sais bien que je suis au bas de la montagne, mais je me la taperais bien, quand même.

            Pour conclure, merci de vos conseils, de votre aide et de votre temps... si j'en abusais, j'aimerais bien vous solliciter encore sur mes dernières questions, parce que je ne vois pas (à priori) pourquoi ces choses là sont possibles (mssql au lieu de mysql et php.ini absent), alors qu'au départ je n'avais pas eu ce soucis...
            • [^] # Re: RE: Problème avec MySQL et php (résolu ?)

              Posté par  . Évalué à 1.

              Je n'ai pas pu trop t'aider. ( depart en WE :-)) )
              Mais je suis content que tt soit redevenu ok.

              A++
              • [^] # Re: RE: Problème avec MySQL et php (résolu ?)

                Posté par  . Évalué à 1.

                Merci quand même. Il faut aussi penser à sa vie...
                Effectivement, maintenant ça roule, et d'ailleurs la plupart des apports se font maintenant sur le serveur Debian... Une petite victoire pour notre système, mais une victoire quand même.
                Encore merci à la communauté qui a permit la sauvegarde des données et une indisponibilité somme toute courte du serveur.
                Chapeau bas!
  • # Amateur, va!!!

    Posté par  . Évalué à 1.

    Voilà ce qui se passe lorsqu'on est pas capable de prévoir un retour en arrière lors d'une manip, aussi banale soit-elle (ne JAMAIS se fier aveuglément aux outils fournis par l'OS, le produit, toujours prévoir une solution de secours !!!)!

    Admin système sa ne s'improvise pas !!!!

    T'as fait une sauvegarde, au moins avant d'installer ton nouveau truc? Seule solution, redescendre les sauvegardes !!!

    (Si j'étais méchant je dirais 'bien fait!' mais comme ce matin je suis gentil ...).

    Je ne sais pas trop par contre qui blamer dans cette situation: ton employeur qui sous pretexte d'economiser quelques euros a embauché un admin 'au rabais' ou toi qui n'a pas pris les précautions nécessaires à ce genre de manip en ayant sous-estimé l'impact.

    Au moins j'espère que ca t'aura appris quelque chose.
    • [^] # Re: Amateur, va!!!

      Posté par  . Évalué à 1.

      c'est pas tres gentil comme remarque !

      >Je ne sais pas trop par contre qui blamer dans cette situation: ton employeur qui sous pretexte d'economiser quelques euros a embauché un admin 'au rabais'

      Ne mets tu pas de l'eau au moulin des pro microsoft ?
      Pour le meme admin, le W2K marche mais linux marche pas !
      Une petite license W2K server est moins cher que d'investir ds l'humain ... CQFD.

      Sinon pour le pb , il ne faut pas paniquer, ca va retomber en marche.
      Il faut juste verifier un par un les elements.
      -Est ce que php est ok ?
      -essaie de te connecter en ligne de commande sur mysql ?
      -Regarde les fichiers de conf ds etc qui aurait été modifé recemment : find /etc -type f -mtime 2
      • [^] # Re: Amateur, va!!!

        Posté par  . Évalué à 1.

        Non, ça n'est pas très gentil, et puis à quoi ça sert ? Peu importe.
        Si c'est pour me dire de retourner faire "mumuse" chez moi et de laisser les affaires sérieuses aux autres, alors je m'arrête-là et je ne polluerais plus les forums.

        Ceci dit, je n'aime pas quand les choses ne fonctionnent pas, je me permet de poster pour trouver une solution plus rapidement que ne me le permettra ma "montée" en connaissances.

        Il y a eu une fenêtre possible pour le libre chez nous et je me suis dit, essayons de l'ouvrir. Si ça ne marche pas, la conclusion sera que je ne suis pas compétant (et je l'ai clamé dès le début), pas que Linux n'est pas mur pour l'entreprise (le contraire est là pour le prouver tous les jours...).

        En me connectant sous mysql par mysql -u -p etc. ça marche et la commande status m'indique que le serveur est fonctionnel.

        Je n'ai pas trouvé de modifs dans les fichiers conf (et pourtant il doit bien y en avoir une) et la commande find /etc -type f -mtime 2 ne me retourne rien (est-ce normal ?).
        • [^] # Re: Amateur, va!!!

          Posté par  . Évalué à 1.

          >Je n'ai pas trouvé de modifs dans les fichiers conf (et pourtant il doit >bien y en avoir une) et la commande find /etc -type f -mtime 2 ne me >retourne rien (est-ce normal ?).
          Oui en fait 2 c 2 * 24 h ==> Donc c ds le cas ou il y a eu des modifs ds les 48h . Maintenant si les modifs ont eu lieu il ya 3/ 4 jours il faut ajuster !
        • [^] # Re: Amateur, va!!!

          Posté par  . Évalué à 2.

          Non, ça n'est pas très gentil, et puis à quoi ça sert ? Peu importe.
          Si c'est pour me dire de retourner faire "mumuse" chez moi et de laisser les affaires sérieuses aux autres, alors je m'arrête-là et je ne polluerais plus les forums.


          Désolé, je ne voulais pas être blessant, mais comme précisé par ailleurs, il y a certaines situations qui m'exasperent, et je me suis laissé un peu emporter.

          Je n'ai pas trouvé de modifs dans les fichiers conf (et pourtant il doit bien y en avoir une) et la commande find /etc -type f -mtime 2 ne me retourne rien (est-ce normal ?).

          Si des fichiers ont été supprimés, c'est normal.

          Essaie de faire la meme chose sur les répertoires ou sont installés PHP, Apache et MySQL.
      • [^] # Re: Amateur, va!!!

        Posté par  . Évalué à 3.

        Ne mets tu pas de l'eau au moulin des pro microsoft ?
        Pour le meme admin, le W2K marche mais linux marche pas !
        Une petite license W2K server est moins cher que d'investir ds l'humain ... CQFD


        Non, c'est un problème de méthode. Que ce soit sous Linux ou sous windows ne change rien. Il faut toujours, lorsque l'on fait une manip, prévoir que la manip risque de planter, et se ménager une issue de secours.
    • [^] # Re: Amateur, va!!!

      Posté par  . Évalué à 1.

      C'est vrai, je suis amateur, et même pas administrateur. Maintenant, le leçon est là et oui j'ai bien des sauvegardes dans un coin, mais j'aimerais trouver une solution au problème.

      Je ne suis pas employé comme informaticien (alors administrateur...). Maintenant, si le fait d'essayer d'introduire du libre dans une société est un mal, je pourrais très bien ne pas me faire suer et laisser tout ce qui traine trouner sous Windows.

      En fait, pour se replacer dans le contexte, nous avons un administrateur , mais qui a été formé et connait Windows. Nous avions un vieux serveur dans un coin, et il se disait que faire tourner Linux dessus ne serait pas un mal. Je l'y ait encouragé en quelque sorte. Là dessus, je l'ai aidé à passer son système en Sarge, puis à installer tout ce qui était nécessaire pour avoir un serveur hébergeant plusieurs pages.

      Je suis nul en réseaux, mais j'ai quelques pages qui tournent pourtant chez moi très bien, avec du HTML et des contenus PHP-mysql.

      Donc mon employeur n'embauche pas au rabais, mais ne s'interresse pas au libre, sauf quand on donne les coûts. Et puis pourquoi pas, si ça permet d'étendre Linux en entreprise ?

      Voilà, je ne souhaite pas être agressif, je veux juste replacer les choses dans leur contexte. Ceci dit, jusqu'à présent ça tournait, avec quatres sites dont deux en PHP-mysql. Merci à la communauté de commenter aussi bien les fichiers, ce qui m'avait permis ça.
      • [^] # Re: Amateur, va!!!

        Posté par  (site web personnel) . Évalué à 2.

        En attendant si tu donne pas les fichiers de log comme on te le demande, on risque pas pouvoir t'aider.
        C'est beau de te justifier mais on est pas là pour ca, on est là pour t'aider à ce que ca remarche.
        • [^] # Re: Amateur, va!!!

          Posté par  . Évalué à 1.

          Moi je te soutiens completement !
          Introduire du libre autant que l'on peut est un tres bon debut !
          De plus je rajouterai que bon admin ou pas, des fois ca marche pas !
          • [^] # Re: Amateur, va!!!

            Posté par  . Évalué à 1.

            Merci de ton soutien, j'ai acheté des bouquins, je tâche (ça me va bien ça...) de me former rapidement, mais il faut le temps et bon... ça doit tourner. enfin je ne ferais plus ces mêmes erreurs stupides.
            • [^] # Re: Amateur, va!!!

              Posté par  . Évalué à 2.

              C'est en fait plus contre la situation que tu vis que je me suis énervé, pas contre toi.

              Pour prouver que le libre et linux fonctionne:
              - on installe et héberge 4 serveurs sur une machine
              - le mec qui l'a fait ne connait pas trop.
              - Bien sur ce gars est bien gentil, mais il doit faire ca en plus de son boulot de tous les jours.
              - on le regarde faire
              - le jour ou ca plante (parce que dans ce genre de situation ca plante tôt ou tard), on dit 'Voyez, y a un serveur win2K qui tourne sans problème a coté. Voyez, Linux ca ne marche pas, en plus il faut être super-compétent pour le remettre en marche ... ', sans préciser que le serveur win2K, il a un admin dédié, et que le pauvre gars qui s'occupe du Linux est toujours interrompu lorsqu'il essaie de remettre le serveur en état.

              Que ce soit sous linux ou window, l'administration c'est pas si simple. Si tu veux apprendre, je te conseille la lecture du livre 'les bases de l'administratiopn systeme' chez O Reilly. Tu y trouvera des infos techniques relatives à plusieurs OS, mais plus important, des conseils plus généraux, du style 'toujours prévoir un moyen de revenir en arriere, etc ..."

              Je te souhaite quand même bon courage.
        • [^] # Re: Amateur, va!!!

          Posté par  . Évalué à 1.

          Merci Uld, j'avais bien noté, mais on m'intérompt tout le temps (je suis au boulot). J'ai bien noté que tu me proposais ton aide, mais au passage je voulais me justifier.
      • [^] # Re: Amateur, va!!!

        Posté par  . Évalué à 3.

        En fait, pour se replacer dans le contexte, nous avons un administrateur , mais qui a été formé et connait Windows.

        C'est pour ca que le serveur sous Windows marche, et pas celui sous Linux.

        Maintenant, si le fait d'essayer d'introduire du libre dans une société est un mal, je pourrais très bien ne pas me faire suer et laisser tout ce qui traine trouner sous Windows.

        C'est a double tranchant. Soit tu réussis à remettre en état le bousin, auquel cas tu peux retourner la situation a ton avantage ( "Voyez, chef, j'suis pas informaticien, même pas admin, et j'ai réussi a remettre le truc en marche. Alors notre admin winwin2000, s'il s'y met uin peu il devrait pouvoir s'en sortir ...), ou alors, tu laisseras une mauvaise image du libre et de linux.

        Désolé si ma réaction a été un peu agressive, mais je passe une bonne partiede mon temps à réparer des erreurs de personne plus ou moins 'autoproclamées' admin système, ou par des personnes qui ne sont pas suffisamment expérimentées et qu'on parachute comme admin système, juste parce qu'on espère faire des économies (Note que je n'ai rien contre ceux qui n'y connaissent rien, bien au contraire je suis toujours disposé à aider, mais il faut un peu d'humilité de temps en temps et admettre qu'il y a des choses qu'on est pas en mesure de faire).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.