X

Installer PHP7.1 et PHP7.1-FPM sur Debian et Raspberry (Raspbian)

Jusqu’à la version PHP7.0, l’ensemble des paquets étaient présents sur dotdeb. Le responable, Guillaume Plessis, a annoncé qu’il arrêtait de fournir les paquets PHP. Voir son annonce officiel ici. Il faut donc à la place utiliser le PPA fourni par Ondrey Sury (Ondřej Surý) qui a publié sur  deb.sury.org les paquets PHP7.1 et + pour :

  • Debian et Ubuntu,
  • sur des architectures i386, amd64 et même armhf et arm64

Il est le responsable officiel Debian des principaux paquets PHP (plus beaucoup d’autres modules PHP) et il fait un excellent travail en fournissant tout ce dont vous avez besoin pour exécuter les versions récentes de PHP. En fonction de la décision de l’équipe de backports de Debian, ces paquets pourraient même être disponibles sur jessie-backports.

Edit (27/01/2018) : PHP7.1 est enfin disponible sous Debian stretch.  Mais toujours pas sous Rasbian stretch.

 

Voici comment procéder pour installer PHP7.1 puis activer PHP7.1-FPM sur votre Debian mais également sur votre Raspberry.

Choix du dépot

Version Jessie

Pour la version Jessie de Debian vous pouvez utiliser le dépôt de Ondrey Sury. Par contre à l’heure où j’édite cet article ce dépôt ne contient pas la version 7.1 pour la version stretch de Debian. Vous devrez utiliser le dépôt de Raspbian.

Commencer par passer sudo sur votre machine pour ajouter la nouvelle source des paquets PHP, pour ensuite les installer.

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Si vous êtes sur Raspberry, vous devrez remplacer $(lsb_release -sc) par la version de votre Raspbian (jessie par exemple)

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" >> /etc/apt/sources.list.d/php.list
apt-get update

Si vous êtes sur Raspberry, la commande $(lsb_release -sc) ne semble pas fonctionner correctement, il faudra donc la remplacer par la version de votre Raspbian (jessie normalement), ce qui donnera :

echo "deb https://packages.sury.org/php/ jessie main" >> /etc/apt/sources.list.d/php.list 
apt-get update

Version Raspbian Strech

Méthode à vos risques et périls 

Comme indiqué précédemment le dépôt de Ondrey Sury ne contient pas php7.1 pour cette version de Raspbian.
Vous pouvez tester d’utiliser le dépôt de Raspbian mais en vous basant sur la prochaine distribution de Debian à venir à savoir buster. Pour l’instant l’installation de PHP7.1 fonctionne mais rien ne garantie qu’une instabilité puisse survenir dans le temps.
Attention à ne surtout pas faire de dist-upgrade car vous aller mettre à jour votre distribution en vous basant sur une version de Debian en phase de test. Dans mon cas il fût impossible de redémarrer mon OS.

En étant sudo, exécuter cette commande :

echo “deb http://mirrordirector.raspbian.org/raspbian/ buster main contrib non-free rpi” > /etc/apt/sources.list.d/php.list
apt-get update

 

 

Installation de PHP7.1

Nous allons installer PHP7.1, l’ensemble des principales dépendances nécessaires et le paquet FPM

apt-get install php7.1 php7.1-opcache libapache2-mod-php7.1 php7.1-mysql php7.1-curl php7.1-json php7.1-gd php7.1-mcrypt php7.1-intl php7.1-mbstring php7.1-xml php7.1-zip php7.1-fpm php7.1-readline

Redémarrons Apache

service apache2 install

 

A ce stade PHP7.1 est installé, vous pouvez vérifier l’installation via un phpinfo à mettre dans un fichier PHP

<?php

phpinfo();

 

Activation de PHP7.1-FPM

Le module PHP a l’inconvénient de surcharger le serveur, car chaque process Apache est rattaché à un moteur PHP complet. L’utilisation de PHP-FPM permet de résoudre ce problème. En effet PHP-FPM est lancé en tant que processus séparé du serveur http. Il peut donc être lancé avec un (ou plusieurs) comptes, différents de celui utilisé par le serveur http, afin d’améliorer la sécurité, ou d’utiliser des paramétrages PHP différents selon les différents pools de connexions utilisés.

Attention l’ajout de PHP-FPM ne semble fonctionner correctement qu’à partir de la version d’Apache 2.4.9, avant cette version, Apache ne pouvait pas utiliser les sockets Unix pour communiqer correctement avec le serveur PHP-FPM

Il faut donc activer le module proxy_fcgi, setenvif, désactiver le module PHP, et activer la conf PHP7.1-FPM

a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
a2dismod php7.1

Puis allons redémarrer les services apache2 et php7.1-fpm

service apache2 restart

service php7.1-fpm restart

 

Si vous réafficher votre phpinfo, vous verrez que PHP7.1-FPM est bien activé et fonctionne.

 


Cet article a été modifié le 27 janvier 2018 20:42

Voir les commentaires (0)

  • Bonjour à vous !
    Je pense que PHP7.1 est maintenant installable sous Debian Stretch en suivant les mêmes étapes que celles de votre tuto pour Jessie :
    #-$> apt-get update
    #-$> apt-get install apt-transport-https lsb-release ca-certificates
    #-$> wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
    #-$> echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php71.list
    #-$> apt-get update
    #-$> apt install --no-install-recommends php7.1 php7.1-fpm php7.1-mysql php7.1-curl php7.1-json php7.1-gd php7.1-mcrypt php7.1-msgpack php7.1-memcached php7.1-intl php7.1-sqlite3 php7.1-gmp php7.1-geoip php7.1-mbstring php7.1-redis php7.1-xml php7.1-zip

    C'est justement la balise "$(lsb_release -sc) main", inscrite dans le fichier .list, qui détermine la version de Debian compatible (cette balise ne fonctionne pas sous Pi). Actuellement, je suis sur Debian Stretch 9.2 et l'installation de PHP71 s'est déroulée correctement, et sans erreur. Peut-être que la MàJ vers 9.2 y est pour quelque-chose, ou alors les dépôts de SURY.ORG ont été (enfin !) mis à jour.
    Par contre, pour les possesseurs de RaspBerry Pi, quel que soit le modèle, s'ils sont en Raspbian Stretch, c'est cuit, car aucune version ARMHF n'existe pour PHP7.1. Et pour le coup, passer par le dépôt 'Buster' reste la solution de contournement... pour le moment, en espérant une évolution rapide de PHP71.

    Voili voilou

    Au plaisir,

    V.

    • Bonjour Virgo77,

      Merci pour ce retour. J'ai été voir les packets sury.org, ils ont été mis à jour le 1 Décembre et contiennent effectivement php7.1 pour Stretch.
      Et effectivement toujours rien pour armhf...

  • La solution de 'PEPE' semble être pertinente, puisqu'en me basant aussi sur le dépôt d'Ondrej Sury, je ne peux pas installer PHP7.1 non plus et ce, quel que soit le paquet. Par contre, via le dépot Raspbian, j'ai pu installer PHP7.1 normalement...
    Par contre, à l'heure où j'écris ces lignes, c'est la v7.1.8 qui est proposée, alors que la v7.1.11 du 29/10/2017 est sortie. On a donc un delta non négligeable...

    • En effet le dépôt donné par PEPE fonctionne pour installer PHP7.1 sur stretch, mais à vos risques et périls. Car ce dépôt est pour une version de Debian différente "Buster" qui n'est qu'en phase de test pour l'instant. Si par inadvertance vous lancer une mise à jour de la distribution via un apt-get dist-upgrade alors votre OS sera instable et dans mon cas ne redémarre plus du tout.

  • Merci pour le tuto, problème sur raspbian lors de l'install des paquets : package php7.1-* is not avaible. but is referred to by another package ..

    • Avec plaisir. Tu as réussi à faire ton installation ? Je suppose en utilisant l'autre source de paquets que tu as mentionné ?

Articles relatifs