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.