Page 1 sur 1

modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 30 sept. 2011, 21:37
par imperga
Salut à tous,

J'ai installé Mysql, Php5 en tant que module sur apache2, ainsi que les modules PDO.
Tout a déjà bien fonctionné.
Mais dès l'install de phpmyadmin, les PDO ne sont plus utilisables.

Par ex. voilà ce qu'il se passe à l'utilisation d'un prog connexion_db.php :
Fatal error: Class 'PDO' not found in /var/www/tuto/connexion_db.php on line 4
Il fonctionnait très bien avant phpmyadmin.

Tous les modules PDO sont bien présents dans le répertoire créé à l'install: ( /usr/lib/php5/20060613+lfs/ ) . Et tout a déjà fonctionné avant l'install de phpmyadmin.
Un peu étonné du nom du répertoire (/20060613+lfs/) créé lors de l'install des PDO. Mais ça a très bien fonctionné avant phpmyadmin.
Install des PDO: (pas déjà présents sur php5.1 ?)
# apt-get install dh-make-php
# pecl install pdo
# pecl install pdo_mysql
# pecl install pdo_sqlite


Le path est bien indiqué dans /etc/php5/apache2/php.ini
/usr/lib/php5/20060613+lfs# ls -l
total 1596
-rw-r--r-- 1 root root 32092 juil. 1 19:07 mcrypt.so
-rw-r--r-- 1 root root 102052 juil. 1 19:07 mysqli.so
-rw-r--r-- 1 root root 44860 juil. 1 19:07 mysql.so
-rw-r--r-- 1 root root 24708 juil. 1 19:07 pdo_mysql.so
-rw-r--r-- 1 root root 239225 sept. 27 17:06 pdo.so
-rw-r--r-- 1 root root 1170830 sept. 27 17:25 pdo_sqlite.so
/usr/lib/php5/20060613+lfs #

J'ai effectué plusieurs fois la manip. Dès l'install de phpmyadmin, les PDO ne sont plus utilisables.
(pour info mon environnement est une Debian lenny 5.0.3)

Connaissez-vous une solution ?
Merci de votre aide.

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 30 sept. 2011, 22:35
par moogli
salut,

tu n'a pas besoin de pecl pour utiliser pdo c'est de base avec php 5

comment installe tu phpmyadmin ? le plus simple étant quand même de télécharger l'archive sur le site et de la "dezipper" dans le répertoire root d'apache (/var/www par défaut).

suivant ta version de débian obsolèteou

est ce que le paquet d'installation de phpmyadmin ne changerais pas la version de php ou ne la réinstallerais pas ?

@+

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 30 sept. 2011, 23:25
par imperga
Salut,

Merci de ta réponse.
Évidemment, je suis au courant qu'il n'y a pas besoin de pecl pour utiliser les modules PDO avec php5.
Pourtant ça ne fonctionnait pas.
Alors j'ai fait l'install par pecl ça s'est mis à fonctionner.

Ensuite j'ai installé phpmyadmin à manière classique debian, c-à-d aptitude install phpmyadmin
Ça s'est très bien déroulé.

Au moment de l'install de phpmyadmin, il y a aussi lancement automatique d'un utilitaire de configuration du phpmyadmin pour qu'il soit utilisable ensuite avec apache, ou apache2, ou lighthttp, ou autres... au choix.

C'est peut-être ça leproblème... Aucune idée.

Ma version Debian n'est pour l'instant pas obsolète, mais stable.
Et l'install de phpmyadmin ne réinstalle pas un autre php. Je serais averti à ce moment-là.
Donc aucun souci là-dessus.

Honnêtement, je ne comprends pas pourquoi phpmyadmin empêche l'utilisation des PDO.
Je vais essayer la ré-install des PDO avec phpmyadmin déjà présent, pour voir.
À suivre.

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 01 oct. 2011, 00:05
par Berzemus
Que dit un phpinfo() ?

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 01 oct. 2011, 00:30
par moogli
Honnêtement, je ne comprends pas pourquoi phpmyadmin empêche l'utilisation des PDO.
ce n'est pas possible phpmyadmin ce n'est "qu'un" script il s'agit nu plus ni moins que de fichier php, donc soit le paquet debian installe une autre version de php soit y a un truc mystique :)


la dernière version de php sur une debian stable est une 5.3.5 (ou 8 sais plus) install phpmyadmin a part => phpmyadmin.net

@+

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 01 oct. 2011, 09:44
par imperga
Salut,

je sais que phpmyadmin est un script. Du php en l'occurence.
C'est pour ça qu'on peut penser à une congif de phpmyadmin qui empêcherait l'utilisation des PDO...
Ou autre...
Si vous avez une idée.

Merci

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 01 oct. 2011, 09:57
par imperga
D'ailleurs, la tentative de ré-install des modules PDO par pecl est inutile.
Voilà ce que ça donne:

/# pecl install pdo
Ignoring installed package pecl/pdo
Nothing to install


Évidemment, puisqu'ils sont déjà installés !

Il n'y aurait pas une question de config ?
Si vous avez une idée...
merci

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 03 oct. 2011, 10:45
par moogli
vire les paquets installe simplement le paquet php5 (et ceux qu'il indique comme obligatoire (php5-common, il y a aussi php5-suhosin, php5-cli, libapache2-mod-php5 et apache si pas installé) avec ça tu devrais avoir une version 5.3.8 de php installée (bon mon sources.liste est en testing ou sid je sais plus mais ça doit pas changer grand chose c'est une 5.3).
pense a installer les modules complémentaire genre gd, curl et consort

la tu devrais avoir une version de php avec PDO ! pour le vérifier un simple phpinfo() dans un fichier texte suffit.
il est aussi d'utiliser get_loaded_extension pour voir tous ce que php utilise comme extension
ou plus simplement extension_loaded pour vérifier une extension spécifique (if (extension_loaded('PDO') === 1) echo 'PDO est actif'; else 'PDO kaput'; (par exemple :mrgreen: )

n'oublie pas que la version 5.3 de php embarque un shell interactif, pour l'utiliser tape simplement php -a dans une console et tu pour vérifier tous ce que j'ai mis ci dessus rapidement sans soucis :)

d'après synaptic le paquet phpmyadmin n'install pas grand chose de plus que php5 (php5 gd,mcrypt mysql) reste à voir si l'un de ces paquets ne vire l'utilisation de pdo.

le plus simple étant de NE PAS UTILISER le paquet phpmyadmin et d'utiliser l'archive fournis directement par le site (clique sur download dans le p'tit carrée vert à droite). après il suffit de "détarrer" l'archive dans le /var/www (si c'est l'emplacement du ServerRoot de ton apache et tout roule :)

s'il y a un problème c'est avec le paquet en lui même ou un de ceux qui en dépendent mais pas phpmyadmin lui même, qui en aucun cas ne peux modifier la conf de php (sauf pour son exécution à lui) et ne peux donc pas joueur sur les autres script :)

et vu que je ne suis pas un peu borné, j'ai installé, sur une vm debian squeeze php 5 (donc la 5.3.3-7+squeeze3 la console merdois ... en 5.3.5 #-o c'est bon ...)) il installe tous ce que j'ai mis au dessus, j'ai pris aussi gd, l'extension mysql, curl, mcrypt, sqlite, pgsql;

un test tout con d'utilisation de pdo (connexion + un select version() sur un serveur postgresql sur un autre vm) ok
alle j'installe le paquet phpmyadmin
et la Image
bon aller on installe tout ça => pas de problème avec pdo, bon je redémarre à la mode windoze => ça fonctionne toujours et j'ai toujours accès a phpmyadmin (bon mysql c'est mal installé mais tanpis c'est pas le problème :) edit => qu'il est con l'a pas installé mysql :mrgreen: mais bon même avec ça fonction toujours XD)

il faut faut que vois exactement ce que tu fait au pire installe phpmyadmin a la main ce n'est pas un problème !


@+

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 03 oct. 2011, 12:30
par imperga
Salut,

Merci du tuyau.
Beaucoup de choses. Tout casser pour mettre php5.3.
Mon sources.list me donne pour l'instant uniquement du php5.2
J'ai les lignes:
deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

où trouver un dépôt avec php5.3 ?

Avant de faire tout ça, voilà ce que retourne le script get_loaded.php:

Array (
[0] => zip
[1] => xmlwriter
[2] => libxml
[3] => xml
[4] => wddx
[5] => tokenizer
[6] => sysvshm
[7] => sysvsem
[8] => sysvmsg
[9] => session
[10] => SimpleXML
[11] => sockets
[12] => soap
[13] => SPL
[14] => shmop
[15] => standard
[16] => Reflection
[17] => posix
[18] => mime_magic
[19] => mbstring
[20] => json
[21] => iconv
[22] => hash
[23] => gettext
[24] => ftp
[25] => filter
[26] => exif
[27] => dom
[28] => dba
[29] => date
[30] => ctype
[31] => calendar
[32] => bz2
[33] => bcmath
[34] => zlib
[35] => pcre
[36] => openssl
[37] => xmlreader
[38] => apache2handler
[39] => PDO
[40] => mysql
)

À la dernière ligne on peut lire qu'un module PDO est chargé, et qu'il y a une gestion des bases mysql.


Et puis j'avais oublié la ligne extension=pdo.ini dans /etc/php5/apache2/php.ini
Je l'ai ajoutée.
Evolution:
Maintenant, lorsque je tente une connexion sur une base de donnée avec un script cnx.php
http://localhost/tuto/cnx.php
il retourne Erreur : could not find driver
Donc ça voudrait dire que PDO est installé et fonctionnel.
Si PDO avait été mal installé, il aurait eu une erreur du genre "PDO undefined class ...", et pas "Could not find driver".

Ça indique peut-être que PDO est là, mais qu'il ne trouve pas les drivers pour se connecter à une base mysql.

Pourtant je sais où sont installés ces drivers, et je l'ai bien indiqué dans php.ini avec la ligne
extension_dir=/usr/lib/php5/20060613+lfs

À suivre...

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 04 oct. 2011, 00:02
par moogli
manque pdo_mysql, pdo_truc etc etc :)

pour les depots, en fait faut mettre a jour ta distrib http://www.debian.org/releases

la dernière stable est squeeze (v6) lenny c'est la v5.

il faut modifier ton souces.list dans ce sens (tu peux t'aider de http://www.debian-fr.org/ par exemple).

par exemple pour mon sources.list (une partie)

Code : Tout sélectionner

## squeeze deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free ## squeeze multimedia deb http://www.debian-multimedia.org squeeze main non-free deb-src http://mirror.home-dn.net/debian-multimedia squeeze main # squeeze security deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free # squeeze update deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
@+

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 04 oct. 2011, 13:27
par imperga
Salut,

Ok, merci des sources.list pour mise-à-jour.

En regardant dans le error.log de apache2, je trouve qu'il n'arrive pas à charger le driver PDO_MYSQL.

La raison est que php5 est construit avec des extensions PDO statiques. il n'est pas possible de les utiliser en partagé.
Or le module php5 sur apache2 et les modules PDO sont des extensions partagées dynamiques.
Donc pour que ça fonctionne, il faudrait recompiler php5 (donc avoir les sources) et en spécifiant bien

--with-pdo=shared
--with-pdo-sqlite=shared
--with-pdo-mysql=shared

dans le ./config

À suivre

Re: modules PDO incompatibles avec phpMyAdmin ?!!

Posté : 05 oct. 2011, 00:54
par moogli
hum le paquet 5.3 de debian est fonctionnel, bon après faut faire un dist-upgrade pour l'avoir :/

quand a compiler php pourquoi tu trouvera les source sur php.net (5.3.8) et bien entendu la doc tout cour pour la compilation :)


@+