Mise à jour de MAMP (problèmes… et solutions)
Attention: cet article date du 12 avril 2019
Ce qu'il contient est peut être encore valable...
... ou complètement obsolète!
Cela ne m’était pas arrivé depuis un moment sur mon mac, j’ai lancé une vague de mises à jours (en prévision de nouveaux cours).
Entre autre, MAMP datait de… houla… (2014/15 je crois), et j’ai commencé par lui.
Malheur.
Pour mémoire, MAMP permet d’avoir sur sa machine Apache, Mysql et Php, ainsi que PhpMyAdmin (pour administrer les bases de données).
- Mamp d’avant, 3 (MySQL 5.5, PHP 5.6, et phpMyAdmin 4.3)
- Mamp 5 (MySQL 5.7, PHP 7.3, phpMyAdmin 4.8.5)
Pour info, j’ai tenté Xampp sur mon Mac, mais il n’a jamais voulu démarrer… Je n’ai pas creusé, sans doute un conflit avec un autre truc…
Problèmes avec PHP / PhpMyAdmin
Le bon truc de l’opération, est que de passer à php 7 me promet des gains de performance (peu sensibles sur une machine en local sans doute). Autre avantage, je vais pouvoir tester plein de choses, avant de migrer en v7 les derniers hébergements qui me restent en version 5, et éviter de tout casser.
Mais.
La version 7, donc, celle qui a un bug avec PhpMyAdmin… (mais ça, je l’ai appris après)
Je me souviens avoir eu le même soucis (des warnings insolents et rouges) avec les élèves il y a peu de temps, et j’avais soupçonné le service informatique de l’école (sorry); mais comme ce n’étaient que des warnings cela ne nous a pas empêché de travailler…
Le message ressemble à ceci:
preg_match_all(): JIT compilation failed: no more memory...
Donc, première chose à faire, modifier le php.ini
pour modifier une ligne (voir emplacement ci-après).
Non, première chose à faire : sauvegardez votre fichier php.ini
initial, puis modifiez le:
;pcre.jit=1
A remplacer par
pcre.jit=0
Dans la foulée, on peut booster le serveur pour permettre de lever des limites en cas de manipulation de gros fichiers (ce qui m’arrive souvent en ce moment avec des bases de données de quelques Mo voir Go… Puisque je suis en local et mono-utilisateur (ne faites pas ça en exploitation!) j’ai augmenté la limite des fichiers uploadés, le temps de time-out, et la mémoire disponible…
Pour chaque paramètre, faire « chercher » dans votre éditeur de texte, et changez la valeur en face. Voici ce que j’ai mis:
max_execution_time = 500 max_input_time = 500 memory_limit = 500M post_max_size = 500M upload_max_filesize = 750M
Çà devient plus confortable. Sans doute trop, et sans doute que pour de grosses bases, passer par la ligne de commande sera plus efficace (ou, ce que j’ai privilégié, un script python, mais ceci est une autre histoire)
A noter que, sur un hébergement et pour un dossier précis, il est possible de modifier certains paramètres via le fichier .htaccess
. La syntaxe devenant alors:
php_value upload_max_filesize 10M
Mais attention à ne pas mettre de valeurs trop élevées qui mettrait votre serveur à plat (et certains paramètres ne seront sans doute pas pris en compte chez l’hébergeur).
Migration de la base de données
Au moment de l’installation de MAMP, il m’a averti qu’il fallait mettre à jour mes bases de données. Oups… Donc sauvegardes au préalable (et un bon ménage dans la foulée).
Puis il m’a proposé de mettre à jour. Ce qu’il a fait. Ou pas… Ou mal…
Donc, de nouveau pleins de warning dans PhpMyAdmin, ce qui m’a forcé à passer par le terminal, pour lancer la commande:
/Applications/MAMP/Library/bin/mysql_upgrade -uroot -proot
Et la mise à jour s’est faite correctement. Ouf.
Emplacement des fichiers
Important de le savoir, sinon on ne peut pas les modifier…
Php.ini, c’est à dire la configuration de php:
/Applications/MAMP/bin/php/php7.3.1/conf/php.ini
Pour exécuter mysql en ligne de commande:
/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot
Voilà
C’est bien de faire des mises à jour de temps à autre, mais le temps passé peut être, parfois, un peu plus long qu’une simple séquence « clic, clic ».
Note: si je découvre d’autres fantaisies / astuces / bugs, j’actualiserais ce post…