URL: https://linuxfr.org/forums/programmation-php/posts/phpmysql-gros-probl%C3%A8me Title: Php/Mysql : Gros problème Authors: Mars Date: 2005年09月05日T19:42:59+02:00 Tags: Score: 0 Quel est la nature de ce problème ? Apparemment impossible d'afficher une page PHP qui nécessite une connexion vers MySQL. J'ai de manière incomplète dans 2 posts précédents exposé mes malheurs. Apparement ils n'inspirent pas grand monde. Moi en premier c'est pour cela que je fait une nouvelle tentative. J'espère que vous ne m'en voudrez pas Pour être plus précis je vais vous faire un historique : **1/ **En premier lieu je me suis apperçu que quelque chose clochait lorsque j'ai voulu configurer PhpMyAdmin : Impossible d'afficher une autre page que la page d'accueil - celle où se trouve le menu déroulant permettant de sélectionner la langue. Par défaut le menu est positionné sur English (en-iso-8859-1) et il est possible d'aller sur la page française en sélectionnant French (fr-iso-8859-1) puis en tapant "Entrée sur le clavier" pour valider ! En effet ne s'affiche sur cette page que le logo de phpMyAdmin et le champ du Menu des langues. Un petit tour par l'affichage du Code Source de la Page m'informe que la page ne s'est pas complètement affiché. Son affichage s'est interrompu au niveau de : Norvegian si je suis dans la page en français et Malay dans la page en anglais. Soit environ la moitié des 112 options possibles. Bien entendu pas de balises </select> </body>, </html>, ni quoi que soit d'autres après cette dernière balise (balise de fin d'option de Norvegian ou de Malay) Je pensais que le problème provenait éventuellement de libraries/auth/cookie.auth.lib.php qui gère ce Menu . Or ce fichier est exactement le même que celui de la phpMyAdmin-2.6.3, que j'ai téléchargé en Tarball et décompressé dans un répertoire Temporaire (taille identique et abscence d'info avec la cmde 'diff' dans leur version initiale) Ci-joints uelques paramètres de mon fichier config.inc.php £spaces£ £/spaces£$cfg['PmaAbsoluteUri'] = ''; £spaces£ £/spaces£$cfg['blowfish_secret'] = 'blabla perso'; £spaces£ £/spaces£$cfg['Servers'][$i]['host'] = 'localhost'; £spaces£ £/spaces£$cfg['Servers'][$i]['port'] = ''; £spaces£ £/spaces£$cfg['Servers'][$i]['socket'] = ''; £spaces£ £/spaces£$cfg['Servers'][$i]['connect_type'] = 'tcp'; £spaces£ £/spaces£$cfg['Servers'][$i]['extension'] = 'mysql'; £spaces£ £/spaces£$cfg['Servers'][$i]['compress'] = FALSE; £spaces£ £/spaces£$cfg['Servers'][$i]['controluser'] = ''; £spaces£ £/spaces£$cfg['Servers'][$i]['controlpass'] = ''; £spaces£ £/spaces£$cfg['Servers'][$i]['auth_type'] = 'config'; £spaces£ £/spaces£$cfg['Servers'][$i]['user'] = 'monloginmysql'; £spaces£ £/spaces£$cfg['Servers'][$i]['password'] = 'monmotdepassemysql'; En fait à quelques exception près - que l'on trouve parmi les paramètres ci-dessus - j'ai conservé le paramètrage par défaut. J'ai bien essayé de modifier 2 d'entres eux $cfg['DefaultLang'] = 'en-iso-8859-1'; // $cfg['Lang'] = 'en-iso-8859-1'; en les remplaçant par leur équivalent français $cfg['DefaultLang'] = 'fr-iso-8859-1'; $cfg['Lang'] = 'fr-iso-8859-1'; Mais là le remède fut pire que le mal lui même. Comment est ce possible me direz vous puisque la page ne s'affiche pas en entier ? C'est très simple : plus d'affichage de page du tout. Pour finir il faut que je précise que je n'ai pas oublié de créer mon compte Mysql et de vérifier qu'il était bien enregistré par mysql> SELECT * FROM user; **2/** A partir de là j'ai voulu voir ce qui se passait avec Eskuel (alternative à PhpMyAdmin) : Résultat impossible d'afficher la page d'accueil, celle qui permet de le configurer. Ni même la page setup.php. En fait impossible d'afficher toutes les pages .php même si elles sont en mode 644. J'ai placé Eskuel/ dans /var/www/html/admin sous root comme phpMyAdmin **3/** N'ayant rien à me mettre sous la dent je tente le coup avec un site SPIP : J'ai testé la page index et la config du site (répertoire ecrire/) Pour le second rien. Nada. Par contre pour la page index j'ai le message suivant : Site en travaux Attention : un problème technique (serveur MySQL) empêche l'accès à cette partie du site. Merci de votre compréhension. A la suite de quoi dans le fichier /var/log/httpd/www-access_log j'ai un code de réponse des serveurs Web ayant une valeur de 301 (Moved Permanently) pour 2 appli (Eskuel, SPIP) 127.0.0.1 - - [03/Sep/2005:09:53:18 +0200] "GET /admin/Eskuel HTTP/1.1" 301 448 127.0.0.1 - - [05/Sep/2005:15:21:14 +0200] "GET /Programmes/Php/Applications/Portails/Publication/Spip/Monsite/ecrire HTTP/1.1" 301 506 **Définition du CODE 301 :** L'URL demandée n'est plus utilisée par le serveur, et l'opération précisée dans la requête n'a pas été exécutée. La nouvelle localisation pour le document demandé est précisée dans l'en-tête Location. Toute requête future pour ce document devra utiliser la nouvelle URL. ---------- Bon je veux bien mais ces appli se trouvent bien là ! En fait que dois je comprendre ? Dans "/var/log/error_log" j'ai trouvé ces messages : [Mon Sep 05 13:44:24 2005] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/apache2-suexec) [Mon Sep 05 13:44:25 2005] [notice] Digest: generating secret for digest authentication ... [Mon Sep 05 13:44:25 2005] [notice] Digest: done PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php/extensions/imagick.so' - libdotneato.so.0: cannot open shared object file: No such file or directory in Unknown on line 0 [Mon Sep 05 13:44:35 2005] [notice] Apache-AdvancedExtranetServer/2.0.53 (Mandriva Linux/PREFORK-9.1.102mdk) mod_ssl/2.0.53 OpenSSL/0.9.7e PHP/4.3.10 mod_perl/1.999.21 Perl/v5.8.6 configured -- resuming normal operations [Mon Sep 05 14:03:24 2005] [notice] child pid 9137 exit signal Segmentation fault (11) [Mon Sep 05 14:03:28 2005] [notice] child pid 9141 exit signal Segmentation fault (11) [Mon Sep 05 14:03:29 2005] [notice] child pid 9138 exit signal Segmentation fault (11) [Mon Sep 05 14:03:29 2005] [notice] child pid 9139 exit signal Segmentation fault (11) [Mon Sep 05 14:03:29 2005] [notice] child pid 9140 exit signal Segmentation fault (11) [Mon Sep 05 14:03:31 2005] [notice] child pid 10683 exit signal Segmentation fault (11) [Mon Sep 05 14:03:43 2005] [notice] child pid 10666 exit signal Segmentation fault (11) [Mon Sep 05 14:03:43 2005] [notice] child pid 10670 exit signal Segmentation fault (11) [Mon Sep 05 14:03:43 2005] [notice] child pid 10684 exit signal Segmentation fault (11) [Mon Sep 05 14:03:43 2005] [notice] child pid 10685 exit signal Segmentation fault (11) [Mon Sep 05 14:03:43 2005] [notice] child pid 10690 exit signal Segmentation fault (11) Ils proviennent de Galeon je pense. En effet celui-ci ré-affiche au Reboot les onglets ouverts lors de la fin de la session précédente. Concernant le WARNING quelque chose m'échappe néanmoins : # ll /usr/lib/php/extensions/imagick.so 592119 -rwxr-xr-x 1 root root 65044 avr 16 17:44 /usr/lib/php/extensions/imagick.so* Je ne vois pas qui fait appel à cette extension (et où - dans quel fichier ?). la Commande 'ps' m'affiche entre autre chose ps aux apache 10671 0.0 1.4 28596 1840 ? S 14:03 0:00 httpd2 -f /etc/httpd/conf/httpd2.conf -DAPACHE2 -DHAVE_PERL -DHAVE_PHP4 -DHAVE_SSL -DHAVE_SUEXEC -DHAVE_ACCESS -DHAVE_ACTIONS -DHAVE_ALIAS -DHAVE_ASIS -DHAVE_AUTH_ANON -DHAVE_AUTH_DBM -DHAVE_AUTH_DIGEST -DHAVE_AUTH -DHAVE_AUTOINDEX -DHAVE_CASE_FILTER_IN -DHAVE_CASE_FILTER -DHAVE_CERN_META -DHAVE_CGID -DHAVE_CGI -DHAVE_CHARSET_LITE -DHAVE_DIR -DHAVE_DUMPIO -DHAVE_ENV -DHAVE_EXPIRES -DHAVE_EXT_FILTER -DHAVE_HEADERS -DHAVE_IMAP -DHAVE_INCLUDE -DHAVE_INFO -DHAVE_LOG_CONFIG -DHAVE_LOG_FORENSIC -DHAVE_LOGIO -DHAVE_MIME_MAGIC -DHAVE_MIME -DHAVE_NEGOTIATION -DHAVE_REWRITE -DHAVE_SETENVIF -DHAVE_SPELING -DHAVE_STATUS -DHAVE_UNIQUE_ID -DHAVE_USERDIR -DHAVE_USERTRACK -DHAVE_VHOST_ALIAS mais rien sur les PID 9137, 9141, 9138, 9139, 9140, 10683, 10666, 10670, 10684, 10685, 10690 des Segmentation fault (11). Concernant Mysql mysql > SELECT * FROM user; J'ai bien l'affichage des comptes créés. Y a t-il un acces restrictif à MySQL à partir de Apache/PHP du fait de la configuration d'un Firewall/Shorewall ? Je dis ça sans conviction, mais comme il me semble l'avoir lu quelque part que cela pouvait restreindre des accès à certains serveurs (base de données ? - j'en doute mais n'étant pas spécialiste....). Si c'est le cas où faut-il regarder ? Je peux afficher le résultat de la fonction phpinfo() PHPINFO() [Mandriva 2005] mysql MySQL Support enabled Active Persistent Links 0 Active Links 0 Client API version 4.1.11 MYSQL_MODULE_TYPE none MYSQL_SOCKET /var/lib/mysql/mysql.sock MYSQL_INCLUDE no value MYSQL_LIBS no value Directive Local Value Master Value mysql.allow_persistent On On mysql.connect_timeout 60 60 mysql.default_host no value no value mysql.default_password no value no value mysql.default_port no value no value mysql.default_socket no value no value mysql.default_user no value no value mysql.max_links Unlimited Unlimited mysql.max_persistent Unlimited Unlimited mysql.trace_mode Off Off Identique à celui que j'ai sous la MDK 9.2 Globalement j'ai les RPM Suivants : - apache2-mod_perl-2.0.53_2.0.0-0.RC4.6mdk.i586.rpm - apache2-mod_php-2.0.53_4.3.10-7mdk.i586.rpm - apache2-mod_ssl-2.0.53-8.1.102mdk.i586.rpm - apache2-mod_suexec-2.0.53-7mdk.i586.rpm - apache2-modules-2.0.53-9.1.102mdk.i586.rpm - la vesion 4.3.10-3 de PHP - MySQL-4.1.11-1mdk.i586.rpm - MySQL-client-4.1.11-1mdk.i586.rpm - MySQL-common-4.1.11-1mdk.i586.rpm et entre autre - php-ini-4.3.10-3mdk.noarch.rpm - php-mysql-4.3.10-7mdk.i586.rpm - libmysql12-4.0.23-2mdk.i586.rpm - libmysql14-4.1.11-1mdk.i586.rpm # cat /usr/share/doc/php-mysql-4.3.10/README.mysql The php-mysql package contains a dynamic shared object (DSO) for PHP. To activate it, make sure a file /etc/php.d/34_mysql.ini is present and contains the line 'extension = mysql.so'. # ll /etc/php.d/34_mysql.ini 19263 -rw-r--r-- 1 root root 21 mar 21 16:20 /etc/php.d/34_mysql.ini # cat /etc/php.d/34_mysql.ini extension = mysql.so # ll /usr/lib/php/extensions/mysql.so 591161 -rwxr-xr-x 1 root root 44200 mar 21 16:20 /usr/lib/php/extensions/mysql.so* Il me semble qu'à ce niveau tout est OK Comme vous pouvez aisément l'imaginer je suis à l'écoute de tout conseil, de toute aide. Mais pour cela ai je fournie assez de matière et plus encore de la bonne afin que vous me mettiez sur la voie ? Si ce n'est pas le cas n'hésitez pas à me questionner. Je vous en remercie par avance.