Changer la version de PHP sur une My_Webapp déja installée

Mon serveur YunoHost

Matériel: PC serveur
Version de YunoHost: 4
J’ai accès à mon serveur : En SSH | Par la webadmin | En direct avec un clavier/écran |
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non

Description du problème

Bonjour,

J’ai installé My_Webapp depuis le github du développeur afin de migrer plusieurs sites web vers un nouveau serveur utilisant Yunohost.

Certains de ces sites web sont assez anciens mais toujours fonctionnels. J’ai commencé à migrer l’un d’entre eux et lorsque j’accède au site en question sur Yunohost l’interprétation PHP ne se fait pas. J’ai bien réglé la webapp sur PHP 7.1 mais il semblerait que la version du langage PHP utilisé dans le site Web migré ne soit pas pris en charge.

Le PHPinfo que j’ai placé a la racine de cette app fonctionne bien. Mais le index.php du site en question ne me renvois que du texte au lieu de la page formatée et resemble a ça :

Alors qu’elle devrait ressembler à ça :

Comment puis-je changer la version de PHP utilisée dans my_webapp. J’ai l’impression que ce n’est plus possible une fois l’application installé (ce qui serait quand même un gros défaut d’ergonomie) ?

Est-il possible qu’une version plus récente de PHP n’interprète pas le code d’une ancienne version ?

Lors de l’installation de my_webapp depuis github je n’ai pas la possibilité de choisir une version de PHP en dessous de 7.3. Comment puis-je faire pour sélectionner une version antérieure ?

Question subsidiaire : comment configurer l’encodage des caractères ?

Merci pour votre aide !

Oui, parfois les modules ne sont plus les mêmes ou en tout les cas il faut refactorer le code avec les montées de version.

Je pense que le plus simple pour ton cas serait de créer une application yunohost Introduction au packaging | Yunohost Documentation
Mais peut-être je me trompe ??

Tu pourras utiliser le fichier scripts/_common.sh pour spécifier la version php et les dépendances dont ton application aura besoin…
par exemple

#!/bin/bash

#=================================================
# COMMON VARIABLES
#=================================================

# dependencies used by the app

YNH_PHP_VERSION="7.1"

extra_php_dependencies="php${YNH_PHP_VERSION} php${YNH_PHP_VERSION}-sqlite3 php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-intl  php${YNH_PHP_VERSION}-cli"

#=================================================
# PERSONAL HELPERS
#=================================================

#=================================================
# EXPERIMENTAL HELPERS
#=================================================

#=================================================
# FUTURE OFFICIAL HELPERS
#=================================================

Ensuite le fichier scripts/install au début

#!/bin/bash

#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================

source _common.sh
source /usr/share/yunohost/helpers

ici l’appel du fichier helpers va trouver tout seul comment ajouter le dépôt surry qui permet d’avoir plusieurs versions de php…

il faudra juste bien préciser cette ligne pour la création du php7.1-fpm

#=================================================
# PHP-FPM CONFIGURATION
#=================================================
ynh_script_progression --message="Configuring PHP-FPM..." --weight=5

# Create a dedicated PHP-FPM config
ynh_install_app_dependencies "$extra_php_dependencies"
ynh_add_fpm_config

Et puis bien créer tous les fichiers nécessaires… La documentation est bien écrite
Un exemple de modèle type se trouve ici: GitHub - YunoHost/example_ynh: Example package for YunoHost applications.

Merci pour ton aide, je vais tenté le coup. Cependant, j’avais plutôt opté pour une solution basé sur Docker, malheureusement je me suis aperçu, après recherche, que ce dernier ne fait pas bon ménage avec Yunohost… ce qui est fort dommage car cela pourrait potentiellement régler pas mal de soucis.

Il y a un point que je n’ai pas saisi dans ton post. Le modèle type sur le github, je le récupère, le modifie et enfin l’exécute pour obtenir une APP selon mes besoins, c’est ca ?

Mais je ne comprend pas bien ou est-ce que je doit placer / exécuter ce script ? Pourrais-tu me donner plus de détails ? Merci :pray: