Outils pour utilisateurs

Outils du site


php_7.x

Installer PHP 7.x sous Debian 8 (Jessie)

Pourquoi ?

Dans les dépôts officiels Debian, Jessie ne propose pas de version de PHP supérieure à 5.6.

De nombreuses applications exigent ou recommandent fermement la disponibilité de PHP 7.x

Dépôts alternatifs

deb.sury.org est géré par le développeur en charge de la maintenance des paquetages officiels PHP de Debian. Cette source propose des versions à jour, parfaitement packagées pour Debian et Ubuntu.

De plus, ces paquetages sont conçus afin de permettre la cohabitation1) de plusieurs versions de PHP sur une même serveur.

Le dépôt alternatif dotdeb n'est plus actualisé. Son animateur recommande de se tourner vers d'autres sources, prioritairement sury.org.

Installation

Sources :

Si le système cible était configuré pour utiliser dotdeb, commenter les dépôts correspondants dans la configuration de apt.

L'installation consiste en l'ajout du dépôt de sury.org et de la clé d'authenfication associée.

# apt-get install apt-transport-https lsb-release ca-certificates
# wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
# apt-get update

À partir de là, on peut installer les version de PHP souhaitée, parmi la liste des versions disponibles. Par exemple :

# apt-get install php7.3-cli

Installation pour Virtualmin

Pour une utilisation avec des CMS ou des applications PHP courantes, il faut installer plusieurs modules complémentaires indispensables. De plus, certains environnements d'administration génèrent des configurations qui supposent la présence d'autres modules. Ci-après, la liste des modules à installer pour un configuration classique d'applications PHP sous Virtualmin :

# apt-get install php7.3-bz2 php7.3-cgi php7.3-cli php7.3-common php7.3-curl php7.3-dba php7.3-fpm php7.3-gd php7.3-gmp php7.3-imap php7.3-interbase php7.3-intl php7.3-json php7.3-ldap php7.3-mbstring php7.3-mysql php7.3-odbc php7.3-opcache php7.3-pgsql php7.3-pspell php7.3-readline php7.3-recode php7.3-soap php7.3-sqlite3 php7.3-tidy php7.3-xml php7.3-xmlrpc php7.3-xsl php7.3-zip
# service apache2 restart

Propagation

Lorsque plusieurs versions de PHP sont simultanément disponibles, Virtualmin permet de sélectionner la version utilisée par chaque “virtual server”. Encore faut-il que chaque installation d'une nouvelle version de PHP soit propagée dans les fichiers de configuration gérés et générés par Virtualmin : Virtualmin > System Settings > Re-Check Configuration.

Sélection de la version de PHP

Il n'y a plus qu'à choisir la version de PHP qui sera utilisée pour un virtual server donné : Virtualmin > my_server > Server Configuration > PHP Versions > Default HTML directory > menu_déroulant.

L'enregistrement (Save Versions !) est plus long qu'on ne pourrait le croire. Attendre la fin de l'opération.

On peut répéter l'opération aussi souvent qu'on le souhaite, par exemple pour tester le comportement d'un site sous diverses version de PHP.

Compatibilité des versions

Installation incomplète

Pour être reconnue par Virtualmin, une version de PHP doit contenir les modules requis. Il est donc possible d'installer une version de PHP sans qu'elle soit reconnue par Virtualmin et donc proposée pour motoriser un site. Si cette version est la plus récente, elle sera néanmoins utilisée par toute les commandes PHP passées depuis un shell, notamment en ligne de commande. Il faut alors s'assurer que les scripts PHP qui seront exécutés ne feront pas appel des bibliothèques non installées pour la version “shell”.

Un exemple courant est fournit par les sites bâtis sous Drupal. Les opération de maintenance et d'administration technique font appel aux commandes “drush” qui elles-mêmes sollicitent la version de PHP utilisée en ligne de commande. Un site peu parfaitement fonctionner via une requête web alors que certaines (toutes) commandes drush échouent.

Un site peut être compatible avec la version de PHP utilisée par le serveur web (mod-php, cgi, fcgi, fpm…) tout en étant compatible avec une version différente, utilisée en ligne de commande pour des tâches d'administration. Ce sera néanmoins un sujet permanent d'attention.

Pour connaître la liste de paquetages installés pour une version données de PHP (ici PHP 7.4) :

# dpkg --get-selections | grep php7.4

Pour connaître la version utilisée via un shell :

$ php -r "echo phpversion() ;"

Pour connaître la version CLI utilisée via un shell2) :

$ php --version

Incompatibilité

Bien qu'elle relève de l'évidence, la compatibilité entre la version de l'application et la version de PHP doit être vérifiée. Comme indiqué dans la section précédente, cette vérification doit se faire à deux niveaux. Sélectionner la bonne version de PHP dans la configuration de Virtualmin ne suffit pas. Il faudra également s'assurer de la compatibilité avec la version appelées dans un shell.

Variable d'environnement

Il est possible de particulariser la version de PHP utilisée par une utilisatrice en configurant les valeurs par défaut de ses variable d'environnement. On peut ainsi choisir quelle sera la version utilisée à travers l'interface en ligne de commande.

Dans Virtualmin, ce besoin de configuration peut conduite des choix d'organisation des serveurs et sous-serveurs. Les valeurs par défaut des variables d'environnements étant attachées aux utilisatrices définies au niveau système, il faudra s'assurer de l'appariement entre les applications et les utilisatrices au nom desquelles elles sont exécutées.

Compléter cette section en explorant les moyens de configuration proposés par l'interface d'administration de Virtualmin-Webmin. Au-delà de la simplicité d'utilisation, il s'agit surtout de s'assurer de la stabilité des configurations crées en évitant que Virtualmin n'écrase les modifications apportées.
1)
Coninstallable.
2)
La version de l'interface d'accès à PHP peut différer de la version exécutée de PHP.
php_7.x.txt · Dernière modification : 2020/01/02 18:32 de 127.0.0.1