PHP 5.3, MPM worker, zts et mysqlnd
+
Par Remi le samedi 14 novembre 2009, 11:27 - General - Lien permanent
J'ai reçu pas mal de demandes pour avoir le pilote mysqlnd disponible. Il n'est malheureusement pas possible de l'activer en parallèle de la version standard (libmysql). Comme je voulais tester le fonctionnement de php-zts, j'ai trouvé que c'était la bonne occasion.
La version 5.3.1-0.6.RC4 fournit désormais toutes les extensions, à la fois pour php, php-cli et php-zts et les extensions mysql pour zts utilise le pilote mysqlnd. Par contre, aucune extension php-pecl (il manque un php-zts-devel).
Attention, que les extensions soient disponibles ne signifie pas qu'elles fonctionneront correctement car rien ne garantie qu'elles soient toutes "thread-safe".
Quelques notes pour passer apache en mode worker et utiliser php-zts :
1. Installation
Les paquets sont disponibles pour Fedora ≥ 10 et EL-5 dans le dépôt remi-test.
yum --enablerepo=remi-test \
--enablerepo=remi install php-zts
2. Configuration d'apache
arreter le service httpd
modifier le fichier /etc/sysconfig/httpd et décommenter la ligne
HTTPD=/usr/sbin/httpd.worker
relancer le service
La page http://localhost/server-info doit vous indiquer MPM Name: Worker
Une page affichant un phpinfo(), doit vous indiquer que l'extension MySQL utilise :Client API version mysqlnd 5.0.5-dev - 081106 - $Revision: 289630 $
3. Configuration de MySQL
Visiblement, le pilote mysqlnd n'accepte pas l'ancienne méthode d'authentification conservée par défaut, pour compatibilité, dans les RPM de Fedora.
Il faut donc modifier le /etc/my.cnf
old_passwords=0
Relance MySQL
Et modifier les mots de passe existant pour renforcer le cryptage.
$ mysql -p
mysql> UPDATE mysql.user SET Password = PASSWORD('topsecret') WHERE User = 'root';
mysql> flush privileges;
mysql> quit
Bye
4. Configuration des applications PHP
Normalement rien à faire (le petit problème de la version 0.5.RC4 avec le chemin vers mysql.sock est corrigé)
Voila, maintenant, il ne reste plus qu'à jouer.