Précisions pour installer PHP 8.0 ou 8.1

This commit is contained in:
Gregory Colpart 2022-03-15 16:32:07 +01:00
parent 84f788477d
commit 29a3da13be

View file

@ -12,9 +12,8 @@ commande), via mod_php (module intégré à [Apache](HowtoApache)) ou
via FPM (FastCGI Process Manager). via FPM (FastCGI Process Manager).
Il existe [plusieurs versions de Il existe [plusieurs versions de PHP](http://php.net/supported-versions.php).
PHP](http://php.net/supported-versions.php). Voici les versions Voici les versions de PHP actuellement supportées sous Debian :
de PHP actuellement supportées sous Debian :
* Debian 7 : PHP 5.4.45 * Debian 7 : PHP 5.4.45
* Debian 8 : PHP 5.6.19 * Debian 8 : PHP 5.6.19
@ -52,41 +51,48 @@ Composer 2.0.9 2021-01-27 16:09:27
### PHP avec deb.sury.org ### PHP avec deb.sury.org
Si l'on a absolument besoin d'une version de PHP plus récente (par exemple PHP 8.0), Si l'on a vraiment besoin d'une version de PHP plus récente (par exemple PHP 8.0 ou 8.1),
il est possible de l'installer avec le dépôt [deb.sury.org](https://deb.sury.org/) il est possible de l'installer avec le dépôt [deb.sury.org](https://deb.sury.org/)
d'Ondřej Surý (l'un des mainteneurs officiels des paquets PHP sous Debian). d'Ondřej Surý (l'un des mainteneurs officiels des paquets PHP sous Debian).
Il est d'ailleurs préférable d'utiliser les paquets PHP qui précisent On peut d'ailleurs ainsi avoir plusieurs versions de PHP en même temps,
la version de php (php8.0, php8.1 ou php7.4 - exemple php7.4-curl que l'on pourra utiliser pour différents sites web, via PHP-FPM par exemple.
ou libapache2-mod-php7.4) car les paquets génériques "php-foo" dépendent
de la dernière version de PHP disponible.
Exemple, si on souhaite seulement php7.3 :
~~~ ~~~
# apt install wget apt-transport-https
# wget -O /etc/apt/trusted.gpg.d/sury.gpg https://packages.sury.org/php/apt.gpg # wget -O /etc/apt/trusted.gpg.d/sury.gpg https://packages.sury.org/php/apt.gpg
# dos2unix /etc/apt/trusted.gpg.d/sury.gpg # dos2unix /etc/apt/trusted.gpg.d/sury.gpg
# chmod 644 /etc/apt/trusted.gpg.d/sury.gpg # chmod 644 /etc/apt/trusted.gpg.d/sury.gpg
# echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/sury.list # echo "deb https://packages.sury.org/php/ bullseye main" > /etc/apt/sources.list.d/sury.list
# cat << EOT > /etc/apt/preferences.d/z-sury ~~~
Package: php* libapache2-mod-php* libpcre2* libzip4*
Pin: origin packages.sury.org
Pin-Priority: 999
Package: * Attention, vous aurez automatiquement la version la plus récente installée,
Pin: origin packages.sury.org car les paquets "php-foo" dépendent de la dernière version de PHP disponible.
Pin-Priority: 50 Lors d'une mises à jour, vous pourrez avoir la surprise de passer de voir
EOT votre ligne de commande `php` passer de PHP 8.0 à 8.1 par exemple.
# apt update
# PHPVERSION=7.3
# apt install php$PHPVERSION php$PHPVERSION-cli php$PHPVERSION-curl php$PHPVERSION-mysql php$PHPVERSION-pgsql php$PHPVERSION-ldap php$PHPVERSION-imap php$PHPVERSION-gd php$PHPVERSION-intl php-ssh2 php-gettext composer libphp-phpmailer
$ php -v Pour éviter cela, et avoir strictement une seule version fixe de PHP, nous proposons
PHP 7.3.4-1+0~20190412071350.37+stretch~1.gbpabc171 (cli) (built: Apr 12 2019 07:13:50) ( NTS ) des paquets "php-foo" fixes. Ainsi, pour PHP 8.0, vous aurez dans vos sources :
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies ~~~
with Zend OPcache v7.3.4-1+0~20190412071350.37+stretch~1.gbpabc171, Copyright (c) 1999-2018, by Zend Technologies deb http://pub.evolix.net/ bullseye-php80/
deb https://packages.sury.org/php/ bullseye main
~~~
Et vous installerez PHP normalement (à part les paquets php-amqp php-apcu php-igbinary php-redis php-ssh2 que vous devrez forcer en version 8.0) :
~~~
# apt install php php-cli php-curl php-mysql php-pgsql php-ldap php-imap php-gd composer libphp-phpmailer php8.0-ssh2
~~~
Idem pour PHP 8.1 :
~~~
deb http://pub.evolix.net/ bullseye-php81/
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
~~~ ~~~
### PHP-FPM ### PHP-FPM