Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Montée en version de PHP

De AJLSM
Aller à la navigation Aller à la recherche

Cette documentation s'appuie sur https://www.vultr.com/docs/upgrade-from-php-7-to-php-8-on-ubuntu-20-04-with-apache/

L'exemple suivant explique comment monter de la version PHP 7.3 à la version PHP 8.0

Voir aussi la documentation sur les migration de versions PHP : https://www.php.net/manual/fr/migration80.php.

Typiquement, cette opération est nécessaire sur les serveurs où sont installés le CMS Drupal dans les versions ≥ 9.3.

Avant de continuer, il est recommandé de faire une sauvegarde du serveur ou de la VM.

Liste des modules PHP installés

[modifier | modifier le wikicode]

Avant de mettre à niveau PHP, recherchez tous les modules PHP 7.x actuellement installés sur le serveur. Ceux-ci devront être mis à niveau avec le noyau PHP vers leurs 8 versions respectives.

dpkg -l | grep php

Installation de PHP 8

[modifier | modifier le wikicode]

Ubuntu n'a peut-être pas encore la version 8 de PHP dans ses référentiels officiels, et vous pouvez installer PHP 8 à partir du ondrej/phpréférentiel, un référentiel de longue date et approuvé par la communauté pour les packages PHP Ubuntu.

Ajoutez le référentiel nécessaire

[modifier | modifier le wikicode]
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update

Installez PHP 8

[modifier | modifier le wikicode]

Dans ce tutoriel, on installe PHP8.0

Ce qui suit est à adapter en fonction de la version de PHP a installer.

Voir aussi : https://computingforgeeks.com/how-to-install-php-on-ubuntu-linux-system/

$ sudo apt install php8.0

Installer les modules

[modifier | modifier le wikicode]

Installez les modules PHP associés ; ci-dessous sont quelques-uns des plus fréquemment utilisés. Veuillez vous référer à l'étape 1 et installer manuellement tous les modules manquants nécessaires, en les remplaçant 7.x par 8.0.

$ sudo apt install php8.1-common php8.1-fpm php8.1-mysql php8.1-gmp php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-mbstring php8.1-gd php8.1-dev php8.1-imap php8.1-opcache php8.1-readline php8.1-soap php8.1-zip php8.1-intl php8.1-cli libapache2-mod-php8.1
sudo apt install php8.3-common php8.3-fpm php8.3-mysql php8.3-gmp php8.3-xml php8.3-xmlrpc php8.3-curl php8.3-mbstring php8.3-gd php8.3-dev php8.3-imap php8.3-opcache php8.3-readline php8.3-soap php8.3-zip php8.3-intl php8.3-cli libapache2-mod-php8.3
Notice :
Lors de l'installation, un module n'a pas pu être installé : php8.1-dev, avec l'erreur : php8.1-dev : Dépend: libssl-dev mais ne sera pas installé. On a pas installé ce module.

Une fois l'installation terminée, redémarrez PHP

$ sudo systemctl restart php8.1-fpm.service

Vérifiez que PHP a été installé correctement.

$ php -v

Changer de version PHP 8 dans Apache

[modifier | modifier le wikicode]

Lorsque plusieurs PHP sont installés, quelques actions sont nécessaires pour changer de version.

Les scripts a2enmod et a2dismod sont utilisés pour activer et désactiver les versions PHP dans Apache, ainsi que a2enconf et update-alternatives.

  1. Désactivez la version précédente de PHP installée. Remplacez 7.x par le numéro de version noté à l'étape 1.
    $ sudo a2dismod php7.3
    
  2. Activez PHP 8
    $ sudo a2enmod php8.1
    
  3. Changement de la conf :
    sudo a2enconf php8.1-fpm
    
  4. Redémarrer FPM
    sudo systemctl restart php8.1-fpm.service
    
  5. Redémarrez le serveur Web Apache.
    $ sudo systemctl restart apache2.service
    

Changement de la version avec alternatives

[modifier | modifier le wikicode]

Lorsque plusieurs versions de PHP sont installées sur le serveur, on peut switcher entre chaque avec la commande suivante :

sudo update-alternatives --config php
Il existe 6 choix pour l'alternative php (qui fournit /usr/bin/php).

  Sélection   Chemin           Priorité  État
------------------------------------------------------------
  0            /usr/bin/php8.2   82        mode automatique
  1            /usr/bin/php7.2   72        mode manuel
  2            /usr/bin/php7.3   73        mode manuel
  3            /usr/bin/php7.4   74        mode manuel
  4            /usr/bin/php8.0   80        mode manuel
* 5            /usr/bin/php8.1   81        mode manuel
  6            /usr/bin/php8.2   82        mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné : 6

Suppression d'une vieille version

[modifier | modifier le wikicode]

Dans la commande suivante, on supprime la version 7.2

sudo apt remove --purge php7.2*