Problème Mysqlnd

Bonjour,

Tout d’abord, voici ma config :

  • Debian GNU/Linux 7.4
  • PHP 5.4.4-14+deb7u8

Pour un serveur en prod consommant pas mal de ressources côté MySQL, j’ai besoin d’installer le module mysqlnd_ms.

Pour cela je lance la commande :

La compilation se lance mais j’obtiens comme erreur :

Niveau packages, php5-mysqlnd est bien installé, tout comme php5-dev.
J’ai même été installer libmysqlclient-dev. Quoi qu’il en soit aucune trace sur mon serveur de ce mysqlnd.h (oui car j’ai lu qu’il pouvait y avoir des erreurs de chemins).
Bref, j’avoue ne rien y comprendre mais surtout ne pas savoir quoi faire. Tous mes packages sont à jour, je ne comprends pas.

Toute l’aide que vous pourriez m’apporter sera fortement appréciée :slightly_smiling:

Merci d’avance.

Bonjour,
pourquoi cherche tu a compiler ce logiciel alors qu’il existe un paquet debian ?
packages.debian.org/sid/php5-mysqlnd-ms

Un problème de version ?

Je n’avais pas pensé à aller voir dans les packages :laughing: , il ne m’est pas proposé dans mon arbre.

J’ai essayé un dpkg mais j’ai un soucis de dépendance :

J’avoue que je ne suis pas expert debian. Je m’en sert depuis 4 ans, j’ai des besoins très basiques habituellement, donc ce qui est dispo via aptitude me suffit amplement.
Là je suis sur un serveur en prod, je veux bien changer mon source list, mais il ne faudrait pas que ça me casse tout. Actuellement j’ai :

[code]deb http://debian.mirrors.ovh.net/debian/ wheezy main
deb-src http://debian.mirrors.ovh.net/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
[/code]

Ai-je un moyen sûr de mettre tout ça à jour sans tout casser ?

Merci pour ton aide fort appréciable.

Salut,

[quote=“FRogers”]J’ai essayé un dpkg mais j’ai un soucis de dépendance :

[mono]php5-mysqlnd-ms dépend de libc6 (>= 2.14)[/mono]

Là je suis sur un serveur en prod, je veux bien changer mon source list, mais il ne faudrait pas que ça me casse tout.[/quote]

Ce serait une bien mauvaise idée sur un serveur Stable (Wheezy) en prod.

[mono][14:07:35]:~$ aptitude -s install php5-mysqlnd-ms

[…]

Mettre à jour les paquets suivants :
15) apache2 [2.2.22-13+deb7u1 (now, stable) -> 2.4.7-1 (testing, unstable)]
16) apache2-mpm-prefork [2.2.22-13+deb7u1 (now, stable) -> 2.4.7-1 (testing, unstable)]
17) fontconfig-config [2.9.0-7.1 (now, stable) -> 2.11.0-2 (testing)]
18) libapache2-mod-php5 [5.4.4-14+deb7u8 (now, stable) -> 5.5.9+dfsg-1 (testing, unstable)]
19) libapache2-mod-python [3.3.1-9+b3 (now, stable) -> 3.3.1-11 (testing, unstable)]
20) libapr1 [1.4.6-3+deb7u1 (now, stable) -> 1.5.0-1 (testing, unstable)]
21) libaprutil1 [1.4.1-3 (now, stable) -> 1.5.3-1+b1 (testing, unstable)]
22) libaprutil1-dbd-sqlite3 [1.4.1-3 (now, stable) -> 1.5.3-1+b1 (testing, unstable)]
23) libaprutil1-ldap [1.4.1-3 (now, stable) -> 1.5.3-1+b1 (testing, unstable)]
24) libc-dev-bin [2.13-38+deb7u1 (now, stable) -> 2.18-4 (testing, unstable)]
25) libc6 [2.13-38+deb7u1 (now, stable) -> 2.18-4 (testing, unstable)]
26) libc6-dev [2.13-38+deb7u1 (now, stable) -> 2.18-4 (testing, unstable)]
27) libfontconfig1 [2.9.0-7.1 (now, stable) -> 2.11.0-2 (testing)]
28) libxml2 [2.8.0+dfsg1-7+nmu2 (now, stable) -> 2.9.1+dfsg1-3 (testing, unstable)]
29) locales [2.13-38+deb7u1 (now, stable) -> 2.18-4 (testing, unstable)]
30) php5-cli [5.4.4-14+deb7u8 (now, stable) -> 5.5.9+dfsg-1 (testing, unstable)]
31) php5-common [5.4.4-14+deb7u8 (now, stable) -> 5.5.9+dfsg-1 (testing, unstable)]
32) php5-curl [5.4.4-14+deb7u8 (now, stable) -> 5.5.9+dfsg-1 (testing, unstable)]
33) php5-gd [5.4.4-14+deb7u8 (now, stable) -> 5.5.9+dfsg-1 (testing, unstable)]
34) php5-geoip [1.0.7-8 (now, stable) -> 1.0.8-5 (testing, unstable)]
35) php5-ldap [5.4.4-14+deb7u8 (now, stable) -> 5.5.9+dfsg-1 (testing, unstable)]

Accepter cette solution ? [Y/n/q/?] q
Abandon de tous les efforts pour rechercher une solution à ces dépendances.
Abandon.
[14:13:07]:~$[/mono]

[mono][14:15:37]:~$ acp php5-mysqlnd-ms
php5-mysqlnd-ms:
Installé : (aucun)
Candidat : 1.5.2-3
Table de version :
1.5.2-3 0
97 ftp.fr.debian.org/debian/ testing/main i386 Packages
95 ftp.fr.debian.org/debian/ unstable/main i386 Packages
[14:15:43]:~$[/mono]

Oublies cela ! :wink:

Je m’en doutais un peu :mrgreen:
Merci pour ton aide.

et php5-mysqlnd-ms en version debian stable ne te convient pas ?

Sauf erreur de ma part, il n’existe pas et c’est bien là tout le problème.

Je viens de voir qu’il y a une branche jessie avec le paquet. Je viens de le dpkg, c’est mieux mais j’ai encore ça :

(Lecture de la base de données... 65091 fichiers et répertoires déjà installés.)
Préparation du remplacement de php5-mysqlnd-ms 1.4.2-1.1 (en utilisant php5-mysqlnd-ms_1.5.2-3_amd64.deb) ...
Dépaquetage de la mise à jour de php5-mysqlnd-ms ...
dpkg: des problèmes de dépendances empêchent la configuration de php5-mysqlnd-ms :
 php5-mysqlnd-ms dépend de libc6 (>= 2.14) ; cependant :
  La version de libc6:amd64 sur le système est 2.13-38+deb7u1.
 php5-mysqlnd-ms dépend de phpapi-20121212 ; cependant :
  Le paquet phpapi-20121212 n'est pas installé.

dpkg: erreur de traitement de php5-mysqlnd-ms (--install) :
 problèmes de dépendances - laissé non configuré
Traitement des actions différées (« triggers ») pour « libapache2-mod-php5 »...
[....] Reloading web server config: apache2[Thu Mar 27 16:01:18 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
. ok
Des erreurs ont été rencontrées pendant l'exécution :
 php5-mysqlnd-ms

Devrai-je passer sur cette branche et donc mettre à jour le serveur ?
Si oui, comment configurer mon source list pour que ce soit optimal ? Je passe tout sur jessie ou je garde du wheezy ?

C’est juste.

[16:24:20]:~$ apt-cache policy php5-mysqlnd-ms php5-mysqlnd-ms: Installé : (aucun) Candidat : 1.5.2-3 Table de version : 1.5.2-3 0 97 http://ftp.fr.debian.org/debian/ testing/main i386 Packages 95 http://ftp.fr.debian.org/debian/ unstable/main i386 Packages [16:24:31]:~$

[16:25:28]:~$ dix php5-mysqlnd-ms php5-mysqlnd-ms - MySQL replication and load balancing module for PHP Homepage: http://pecl.php.net/package/mysqlnd_ms 1.5.2-3 testing unstable [16:25:38]:~$

[16:26:12]:~$ apt-cache madison php5-mysqlnd-ms php5-mysqlnd-ms | 1.5.2-3 | http://ftp.fr.debian.org/debian/ testing/main i386 Packages php5-mysqlnd-ms | 1.5.2-3 | http://ftp.fr.debian.org/debian/ unstable/main i386 Packages [16:26:22]:~$

Faire un upgrade en testing d’un serveur en prod, c’est prendre un risque, à toi de voir en fonction du contexte.
Tu peux faire simplement un fichier préférences en plus de ton sources.list afin de ne prendre que quelques les paquets testing dont tu as besoin (tu trouveras des infos dans le forum trucs et astuces, ou sur le wiki)
Fais une analyse des dépendances avant (l’option -s est là pour ça), afin de voir des des paquets critiques ne vont pas être upgradés en même temps (par ex la libc !..)

Je vais réfléchir comment faire. J’ai pris le problème assez tôt, donc j’ai de la marge.
Je pense que je vais regarder, j’ai un serveur qui traine, je vais peut être tester dessus avant de voir quoi faire en prod.

Merci :slightly_smiling:

La page du wiki qui parle du fichier preferences
isalo.org/wiki.debian-fr/So … references

Tu intégres dans ton sources.list les depots de la testing, et tu te sert du fichier preferences pour leur assigner une priorité plus faible que ceux de la stable.
Ensuite pour aller piocher un paquet dans testing, tu utilises l’option -t testing de la commande apt-get

Merci pour toutes ces ressources. Je dois avouer que je n’ai pas eut trop le temps de me pencher sur la question mais du coup ça me semble être pas mal avec ce fichier preferences que je ne connaissais pas.

Ah, le forum est réparé, 3 jours que j’attends pour poser ma question! :mrgreen:

Moi c’est mysqlnd_qc que j’essaye d’installer, avec le même mysqlnd.h manquant. Toutes les pages que j’ai trouvé datent de 1 ou 2 ans, et les gens disent que c’est un bug qui a été corrigé depuis, mais apparemment non!

mysqlnd_qc n’existe pas en paquet à ma connaissance… J’ai essayé pecl install, et à la main de le compiler (php.net/manual/fr/install.pecl.phpize.php) mais même erreur.

N’étant pas un expert en Debian, j’aimerais savoir s’il y a un autre moyen… :question:

Tu peux aussi faire une mise à jour partielle.

Rajoute jessie dans tes dépots, et configure apt :

:~# cat /etc/apt/apt.conf
APT::Default-Release "wheezy";

Puis, installe ton paquet en t’assurant des dépendances (aptitude install machin, utiliser R et A s’il te donner des mauvais choix)

Mais y’a pas de paquet… :blush:

J’ai cru lire un peu plus haut qu’il était là
pecl.php.net/package/mysqlnd_ms

Mais si y’a un paquet !

10% [haleth:~]apt-cache policy php5-mysqlnd-ms 
php5-mysqlnd-ms:
  Installé : (aucun)
  Candidat : 1.6.0-1+b1
 Table de version :
     1.6.0-1+b1 0
        500 http://ftp.fr.debian.org/debian/ testing/main amd64 Packages
        500 http://ftp.fr.debian.org/debian/ sid/main amd64 Packages
        500 http://ftp.fr.debian.org/debian/ unstable/main amd64 Packages
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages

Il te faut rajouter jessie dans tes dépots (cf mon message précédant)
Installer un truc hors-depot, c’est très souvent une mauvaise idée
Dans la plus part des cas (s’il n’est pas dans les derniers dépots), demande toi pourquoi; De même lorsqu’un paquet “disparait” : demande toi pourquoi; C’est souvent pour une bonne raison;

Si je reprends le 1er post, la tentative d’install était via pecl

il faut probablement un paquet du genre php5-mysqlnd-dev

[quote=“piratebab”]J’ai cru lire un peu plus haut qu’il était là
pecl.php.net/package/mysqlnd_ms[/quote]

[quote=“haleth”]Mais si y’a un paquet !

apt-cache policy php5-mysqlnd-ms[/quote]

Rooo, les gars, mettez vos lunettes de geeks! :geek:

Alors oui, on peut télécharger les sources au même endroit pecl.php.net/package/mysqlnd_qc et faire la compilation avec phpize, ça revient au même que ce que fait “pecl install mysqlnd_qc” avec la même erreur de fichier .h manquant.

Je viens d’apprendre que le .h est dans le paquet php5-dev, mais sans doute d’une autre version, avec ces dépôts spécialisés dans PHP dotdeb.org/instructions/ ça devrait marcher. Je les ai ajouté, par contre apt-get veut me mettre à jour beaucoup de choses et ça fait un peu peur!

J’ai posé la question au propriétaire du dépôt qui m’a confirmé «Il faut que tu mettes à jour tes paquets php5 avec ceux de Dotdeb avant de pouvoir installer php5-dev.» et mysqlnd.h est dedans.
Sur un serveur en service, j’hésite!

apt-get install php5-dev Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : libapache2-mod-php5 libt1-5 php5-cgi php5-cli php5-common php5-curl php5-fpm php5-gd php5-imap php5-intl php5-mcrypt php5-mysqlnd php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl Les NOUVEAUX paquets suivants seront installés : libt1-5 Les paquets suivants seront mis à jour : libapache2-mod-php5 php5-cgi php5-cli php5-common php5-curl php5-dev php5-fpm php5-gd php5-imap php5-intl php5-mcrypt php5-mysqlnd php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl 19 mis à jour, 1 nouvellement installés, 0 à enlever et 16 non mis à jour. Il est nécessaire de prendre 15,8 Mo dans les archives. Après cette opération, 3 476 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ?