L’axe choisi pour la version 7 de PHP est la performance avec une compatibilité 64 bits, une vitesse d’exécution jusqu’à deux fois supérieure et une consommation de la mémoire vive réduite au deux tiers.

Comment upgrader sa version PHP de php5 à Php7 ?

Disponible d’origine sur Debian 9, une mise à jour manuelle est nécessaire pour les distributions antérieures.

Faire un backup avant une mise à jour de php

Comme avant toute manipulation importante, il est recommandé de faire une sauvegarde de votre serveur (dans le cas d’une machine virtuelle, en faisant snapshot par exemple)
Voici les différentes étapes pour mettre à jour votre version de php sur Debian 8 (Jessie) :

Dépôt dotdeb

Afin de disposer de paquets plus récents que les paquets disponibles d’origine sur Debian 8, nous rajoutons les dépôts dotdeb au système :

echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
wget -O- https://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt-get update && apt-get upgrade

Suppression de PHP 5

Avant d’installer PHP 7, on procède à l’arrêt et la désinstallation de PHP 5 :

systemctl stop php5-fpm
apt-get autoremove --purge php5*

Installation de PHP 7

L’installation de PHP 7 diffère selon que votre serveur fonctionne avec Nginx ou avec Apache :

# Installation PHP7 sous Nginx
apt-get install php7.0 php7.0-fpm php7.0-mysql php7.0-curl php7.0-json php7.0-gd php7.0-mcrypt php7.0-msgpack php7.0-memcached php7.0-intl php7.0-sqlite3 php7.0-gmp php7.0-geoip php7.0-mbstring php7.0-xml php7.0-zip

# Installation PHP7 sous Apache
apt-get install php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json php7.0-gd php7.0-mcrypt php7.0-msgpack php7.0-memcached php7.0-intl php7.0-sqlite3 php7.0-gmp php7.0-geoip php7.0-mbstring php7.0-xml php7.0-zip

On peut maintenant vérifier votre version de PHP avec la commande suivante :

php -v

sortie attendue :

PHP 7.0.30-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30-1~dotdeb+8.1, Copyright (c) 1999-2017, by Zend Technologies

Configuration

Tout comme l’installation, la configuration de PHP7 varie selon que vous utilisez Nginx ou Apache.
Avec Apache, le module PHP (libapache2-mod-php7.0) s’active automatiquement alors que sous Nginx (php7.0-fpm), il faut ajuster la configuration de PHP-FPM pour pointer vers la nouvelle socket, qui passe de /var/run/php5-fpm.sock à /run/php/php7.0-fpm.sock.

La configuration présentée ci-dessous propose des ajustements que vous pourrez ajuster selon votre cas d’utilisation.

vim /etc/nginx/sites-available/default

# Configuration
server {
  location ~ .php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_ignore_client_abort off;
    fastcgi_connect_timeout 60;
    fastcgi_send_timeout 180;
    fastcgi_read_timeout 180;
    fastcgi_buffers 4 256k;
    fastcgi_buffer_size 128k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
  }
}

La configuration est terminée, il est juste important de savoir que les fichiers de configuration de PHP sont localisés dans /etc/php/7.0/fpm/ dans le cas de Nginx, et dans /etc/php/7.0/apache2/ dans le cas d’Apache.