J'utise sur mes serveurs une combinaison nginx + PHP5-FPM (avec le drivers php5-mysql) + MariaDB, et j'ai remarqué dans mes logs des messages d'erreurs :

2015/01/10 17:11:13 [error] 1480#0: *6 FastCGI sent in stderr: "PHP message: PHP Warning:  mysqli_connect(): Headers and client library minor version mismatch. Headers:50537 Library:100015 in /data/heberg/lib/xxxxx.php on line 132" while reading response header from upstream, client: 10.0.3.1, server: vpslocal.mondomaine.org, request: "GET /?q=especes HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "vpslocal.mondomaine.org", referrer: "http://vpslocal.mondomaine.org/?q=genres&act=detail&genus_name=Ancipitia

Visiblement, il semble que la librairie PHP vérifie les versions, et s'attend à ce que la version de la librairie cliente soit exactement la même que la version de PHP avec laquelle elle a été compilée.

Ceci est répertorié sur le site de MariaDB :

https://mariadb.com/kb/en/mariadb/documentation/getting-started/trouble…

J'ai testé la première solution, à savoir utiliser le driver mysqlnd (MySQL Native Driver) plutôt que l'ancien driver mysql. L'installation sur une distribution Debian / Ubuntu se fait simplement via

sudo apt-get install php5-mysqlnd

Comme le montrent les traces, l'installation du nouveau module va supprimer php5-mysql :

sudo apt-get install php5-mysqlnd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  php5-mysql
The following NEW packages will be installed:
  php5-mysqlnd
0 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.
Need to get 163 kB of archives.
After this operation, 218 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Get:1 http://cdn.debian.net/debian/ wheezy/main php5-mysqlnd amd64 5.4.4-14+deb7u14 [163 kB]
Fetched 163 kB in 2s (76.5 kB/s)       
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 12962 files and directories currently installed.)
Removing php5-mysql ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
Selecting previously unselected package php5-mysqlnd.
(Reading database ... 12954 files and directories currently installed.)
Unpacking php5-mysqlnd (from .../php5-mysqlnd_5.4.4-14+deb7u14_amd64.deb) ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
Setting up php5-mysqlnd (5.4.4-14+deb7u14) ...

Creating config file /etc/php5/mods-available/mysqlnd.ini with new version
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.

Une fois le nouveau driver installé, les messages d'erreurs disparaissent.

De plus, ce driver est optimisé pour MySQL, avec notamment des améliorations du côté de l'utilisation mémoire.

Previous Post Next Post