Editer settings.yml dans une My_Webapp

Bonjour,
on a voulu upgrader la version php d’applications (des wordpress) installées avec My_Webapp. Pour cela, comme il n’y a pas un settings qui permette de le faire, on a procédé ainsi (en gros sans les helpers, mais plutôt avec nano):

cp -a /etc/php/7.3/fpm/pool.d/my_webapp.conf /etc/php/8.0/fpm/pool.d/
ynh_replace_string --match_string="listen = /var/run/php/php7.3-fpm-my_webapp.sock" --replace_string="listen = /var/run/php/php8.0-fpm-my_webapp.sock" -target_file="etc/php/8.0/fpm/pool.d/my_webapp.conf"
ynh_replace_string --match_string="        fastcgi_pass unix:/var/run/php/php7.3-fpm-app.sock;" --replace_string="        fastcgi_pass unix:/var/run/php/php8.0-fpm-app.sock;" --target_file="/etc/nginx/conf.d/domain.d/app.conf"
yunohost service restart php8.0-fpm
yunohost service restart nginx

Ça fonctionne, j’aimerai maintenant éditer le settings.yml de cette application.
Par exemple en ce moment:

checksum__etc_nginx_conf.d_domain.tld.d_my_webapp.conf: XXXXXXXXXXXXXXXX
checksum__etc_php_7.3_fpm_pool.d_my_webapp.conf: XXXXXXXXXXXXXXXX
current_revision: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
db_name: my_webapp
domain: domain.tld
final_path: /var/www/my_webapp
fpm_config_dir: /etc/php/7.3/fpm
fpm_dedicated_service: '0'
fpm_footprint: low
fpm_service: php7.3-fpm
fpm_usage: low
id: my_webapp
install_time: 1617028083
is_public: '1'
mysqlpwd: XXXXXXXXXXXXXXX
overwrite_nginx: '0'
overwrite_phpfpm: '1'
password: MDP-WP-domain.tld
path: /
phpversion: '7.3'
update_time: 1643808747
with_mysql: '1'
with_sftp: '1'

Donc changer avec php8.0, pour les checksum j’ai compris qu’il s’agissait de md5, par exemple:
checksum__etc_nginx_conf.d_domain.tld.d_my_webapp.conf: XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX = md5sum /etc/nginx/conf.d/domain.tld.d/my_webapp.conf

Par contre pour current_revision je ne sais pas comment faire le checksum, quelqu’un saurait me dire ?

Mouarf ben c’est un coup à tout péter, mais si t’es sur de toi …

Il s’agit du hash du commit du package qui a permis l’install, donc lui il n’a pas de rapport avec le fait d’utiliser php ou quoi

Je ferais mieux de ne pas toucher à ce fichier ??
Disons que la méthode a été le plus simple pour passer les apps en php8.0. Ou il y avait un autre process ??

On s’est rendu compte que c’est ce fichier qui est appeler pour une upgrade ou backup, c’est bien cela ? si on met juste les bonne valeur en remplaçant les valeurs php et en refaisant les bons checksums, quels risques ?

Apriori il y a maintenant une option dans le config panel de l’app (dans Applications > Ta webapp > Configurer l’app) pour changer la version de PHP

Avec Yunohost 11 ?

Sans doute ?

Je dis cela car je crois que l’on avait pas trouvé. Peut-être aussi que certaines apps avaient déjà du avoir un nginx édité manuellement et peut-être que c’était la cause…
Maintenant j’ai mis à jour manuellement et je me demandait si ce que j’explique au-dessus fonctionnerait, je ferais un test avant. Là c’est encore une buster en production. Est-ce qu’il existe une liste des apps qui peuvent avoir des soucis en migrant à bullseye ?

Pas vraiment, mais si il y a une soucis prévisible avec une app, normalement le disclaimer qui est affiché avant la migration t’en parlera

On avait ce message avec les configurations de my_webapp

Du coup je suis un peu coincé, comme j’ai déjà bidouillé… Je vais essayer en local voir si l’édition du settings.yml peut fonctionner avant d’essayer une upgrade.

Sans doute parce que l’app n’est pas à jour : la PR qui corrige ça a été mergé il y a ~25 jours

Du coup, si je veux faire la mise à jour, je devrais essayé d’éditer le settings.yml, tu ne crois pas ?
Ou je ferais mieux de tout remettre comme avant et de jouer avec les upgrades ??

pas compris pourquoi ?

Le fait d’avoir éditer à la mano le fichier /etc/nginx/conf.d/domain.d/app.conf pour utiliser fastcgi_pass unix:/var/run/php/php7.3-fpm-app.sock; et avoir déplacer etc/php/7.3/fpm/pool.d/my_webapp.conf dans c/php/8.0/fpm/pool.d/, puis éditer la ligne pour avoir listen = /var/run/php/php8.0-fpm-my_webapp.sock dans celui-ci.

Je comprends pas ce que tu veux dire, tu me parlais de faire la mise à jour et d’éditer les settings, mais là tu parles des fichiers de conf …

C’est parce que nous sommes encore avec buster:

# yunohost app upgrade my_webapp__5
Info: Now upgrading my_webapp__5...
Error: Requirements are not met for my_webapp, the package yunohost (4.4.2.14) must be >= 11.0.9

Et j’ai upgrader 4 sites wordpress avec la manipulation citée au-dessus
Demain on va tenter la migration vers bullseye
Ma question c’était après ces éditions à la mano, est-ce que éditer le settings.yml en mettant les bonnes configs et md5 était possible.

Je me suis mal exprimé peut-être…
Donc, j’ai fais ces manipulations sur un serveur avec buster:

cp -a /etc/php/7.3/fpm/pool.d/my_webapp.conf /etc/php/8.0/fpm/pool.d/

Puis éditer le fichier
nano /etc/php/8.0/fpm/pool.d/my_webapp.conf
pour juste changer la ligne
listen = /var/run/php/php7.3-fpm-my_webapp.sock
par
listen = /var/run/php/php8.0-fpm-my_webapp.sock

Ensuite, j’ai édité le fichier
/etc/nginx/conf.d/domain.d/app.conf
pour changer la ligne
fastcgi_pass unix:/var/run/php/php7.3-fpm-app.sock;
par
fastcgi_pass unix:/var/run/php/php8.0-fpm-app.sock;

Puis redémarrer php8.0-fpm et nginx

yunohost service restart php8.0-fpm
yunohost service restart nginx

Du coup l’app fonctionne bien avec php8.0.

Pour arrêter le
/var/run/php/php7.3-fpm-my_webapp.sock
J’ai ensuite supprimer le fichier /etc/php/7.3/fpm/pool.d/my_webapp.conf
avec
rm /etc/php/7.3/fpm/pool.d/my_webapp.conf
puis redémarrer php7.3-fpm
yunohost service restart php7.3-fpm

Maintenant, est-ce que je ne devrais pas éditer le fichier /etc/yunohost/apps/my_webapp/settings.yml pour changer ces lignes:

fpm_config_dir: /etc/php/7.3/fpm
par
fpm_config_dir: /etc/php/8.0/fpm

fpm_service: php7.3-fpm
par
fpm_service: php8.0-fpm

phpversion: '7.3'
par
phpversion: '8.0'

et mettre les bons checksum (XXXXXXXXXXX) dans les premières lignes:

checksum__etc_nginx_conf.d_domain.tld.d_my_webapp.conf XXXXXXXXXXXXXX
c’est à dire celui de
md5sum /etc/nginx/conf.d/domain.tld.d/my_webapp.conf

et après avoir la changer ligne
checksum__etc_php_7.3_fpm_pool.d_my_webapp.conf XXXXXXXXXXXX
par
checksum__etc_php_8.0_fpm_pool.d_my_webapp.conf XXXXXXXXXXXXX
le bon checksum, c’est à dire celui de
md5sum /etc/php/8.0/fpm/pool.d/my_webapp.conf

C’est risqué @Aleks ?

Je demande cela car demain soir on va essayer de migrer vers bullseye et j’ai peur pour ces applications, ça risque de grincer si yunohost cherche les paramètres dans le fichier settings.yml…

Bonjour, bon la migration et les mises à jours ce sont bien passés ! Juste une ligne sur les fichiers nginx que l’on doit rééditer à la mano après les mises à jours des my_webapp qui hébergent des wordpress:

 # Remove index.php from URL
    if (!-e $request_filename)
     {
     rewrite ^(.*)$ /index.php?q=$1 last;
     }

Par contre on n’arrive pas à jouer sur les configs Memory footprint of the service? et ou Expected usage of the service? qui restent sur low

Tiens j’ai eu le même problème, en déménageant une my_webapp qui accueille un wordpress (je ne souhaite pas utiliser l’app wordpress pour ne pas être dépendant du packaging, et changer + simplement d’hébergement au besoin).
J’ai dû coller ce bout de code dans la conf domaine.d/my_webapp.conf. Donc merci de l’avoir capté :pray:

Une issue à ouvrir pour les mainteneurs de my_webapp, comme Alex ou @ericg ? :smiley_cat:

1 Like