Faire fonctionner PHPMyAdmin avec HHVM

closeCet article a été publié il y a 9 ans 1 mois 13 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

En effet, j’ai indiqué dans l’article présentant les performances de la bête que toutes les applications n’étaient pas forcément compatibles « out-of-the-box ». J’en ai fait l’expérience avec PHPMyAdmin, une application pour gérer un serveur MySQL/MariaDB, qui passé la page de connexion m’a laissé sur une page blanche très peu accueillante, indiquant généralement une erreur fatale. Fort heureusement, la solution est plutôt simple, même si pas forcément évidente à mettre en place.

Comme lors de mes premiers tests de PHP-FPM, mon réflexe a été de me rendre dans le log d’erreur d’HHVM pour savoir ce qui avait merdoyé. C’était assez cryptique au premier abord :

Pour info, j’ai une erreur de mise en forme du log, et il a une sale tronche, j’ai rajouté les retours à la ligne en remplacement des \n qui se présentaient.

Ok, donc manifestement il attend une valeur numérique en guise de port pour la connexion au serveur MariaDB. Pourtant FPM n’avait pas l’air aussi tatillon. Alors comment fait-on ?

La solution parait simple quand on y pense : faire en sorte que le port soit un nombre entier, et pas autre chose (je pense qu’il est stocké sous forme de chaîne de caractères, mais HHVM ne l’entend pas de cette oreille dans leur implémentation de Mysqli).

C’est une fois de plus sur StackOverflow que j’ai trouvé la solution, et bien évidemment en anglais. Même une recherche Google ne m’a pas donné satisfaction en français, alors il est de mon devoir de vous aider dans notre si jolie langue.

Personnellement, j’ai installé PHPMyAdmin à la main. C’est certes plus lourd à mettre à jour, mais au moins il est à jour, parce que la version de Debian est vraiment antédiluvienne, et j’avais peur d’avoir des soucis avec MariaDB. Mais ça fonctionnera probablement aussi avec, je vous laisse vérifier. Bref, dans tous les cas, il faudra se rendre dans le dossier où est installé PMA, ouvrir le fichier libraries/dbi/DBIMysqli.class.php (en root ou avec sudo, surtout si vous l’avez installé par le paquet de votre distribution), et y rechercher mysqli_real_connect, ce qui devrait vous amener à ce bloc de code (deux occurrences) :

Dans les deux cas, il faudra procéder à une modification mineure certes, mais salvatrice, puisqu’elle consiste à « caster » le type de $server_port directement (forcer le type). Comment ? simplement ajoutant cinq petits caractères :

Vous le faites pour les deux blocs de code, vous enregistrez, et voilà. Normalement, vous devriez pouvoir accéder à vos bases de données. Comme quoi il ne faut pas grand chose pour gripper la machine.

Attention : Que vous mettiez à jour depuis le gestionnaire de paquets ou bien manuellement, il y a des chances de devoir refaire la manipulation à chaque fois. Jusqu’à ce que les développeurs de PHPMyAdmin procèdent de manière propre avec la gestion du port.

Amusez vous bien avec HHVM 🙂

3 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Mercier
Mercier
08/03/2015 21:25

Phpmyadmin est devenu obsolète avec http://www.adminer.org/ aucune installation, un seul fichier et compatible avec tout.

Mirage Pet Products
21/01/2017 02:14

Pour faire marcher PHPMYADMIN + HHVM j’ai du rajouté :
$GLOBALS[‘cfg’][‘Server’][‘port’]=3306;

dans DBIMysqli.php