diff --git a/HowtoPHP.md b/HowtoPHP.md index 6cefa7b7..59539cb4 100644 --- a/HowtoPHP.md +++ b/HowtoPHP.md @@ -67,7 +67,7 @@ que l'on pourra utiliser pour différents sites web, via PHP-FPM par exemple. Attention, vous aurez automatiquement la version la plus récente installée, car les paquets "php-foo" dépendent de la dernière version de PHP disponible. -Lors d'une mises à jour, vous pourrez avoir la surprise de passer de voir +Lors d'une mise-à-jour, vous pourrez avoir la surprise de voir votre ligne de commande `php` passer de PHP 8.0 à 8.1 par exemple. Pour éviter cela, et avoir strictement une seule version fixe de PHP, nous proposons @@ -84,6 +84,16 @@ Et vous installerez PHP normalement (à part les paquets php-amqp php-apcu php-i # apt install php php-cli php-curl php-mysql php-pgsql php-ldap php-imap php-gd composer libphp-phpmailer php8.0-ssh2 ~~~ +Nettoyage : + +Si des paquets Sury sont déjà installés (par exemple) en PHP 7.4, ils ne seront pas forcément mis-à-jour en 8.0, il faudra le faire à la main : + +1. Lister les paquets non PHP 8.0 restants : `dpkg -l 'php*' | grep -P '^ii.*php\d\.\d' | grep -v php8.0` +2. Vérifier qu'ils sont bien présents comme `php-` ou `php8.0-module` : `dpkg -l 'php*' | grep '^ii' | grep -E "php[(8.0)-]"` +3. S'ils manquent, les installer avec le paquet « générique » (`apt install php-`). Si le paquet générique n'existe pas, les installer avec le paquet PHP 8.0 (`apt install php8.0-`) +4. Purger les paquets des anciennes versions (exemple avec PHP 7.4, à adapter) : dpkg -l php7.4* | awk '/php7.4/ {print $2}' | xargs apt purge -y + + Idem pour PHP 8.1 : ~~~ @@ -95,8 +105,11 @@ deb https://packages.sury.org/php/ bullseye main # apt install php php-cli php-curl php-mysql php-pgsql php-ldap php-imap php-gd composer libphp-phpmailer php8.1-ssh2 ~~~ +Nettoyage : voir si dessus comme pour PHP 8.0. + **Attention :** Si des dépendances sont déjà fournies par un paquet d'une version inférieure de PHP, `apt` ne détectera pas qu'il est nécessaire d'installer la paquet de la nouvelle version, car c'est un paquet différent. Par exemple, `php7.4-mbstring` est la version la plus à jour dans sa propre « lignée ». `php8.1-mbstring` est un *autre paquet*, dans une autre « lignée ». Les paquets dépendant de `php-mbstring` ne forceront pas l'installation de `php8.1-mbstring` si `php7.4-mbstring` est déjà installé, car il satisfait la dépendance. + ### PHP-FPM PHP-FPM (FastCGI Process Manager) est une façon alternative d'utiliser