Tout d'abord, vous devez installer php5-fpmet à php7.0-fpmpartir du PPA d' Ondřej Surý pour php5 et php7.0 co-installables. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Nous nginxsuggérons ensuite, avec , d'utiliser les packages FPM. Alors, installez les packages en conséquence:
sudo apt-get update
# We need to ***remove*** php5 packages, so we can use php5.6 packages
# from the PPA instead
sudo apt-get remove php5-common
sudo apt-get autoremove
# Now we install php5.6 packages.
sudo apt-get install php5.6-fpm
# Now, install php7.0-fpm. You may need to install separate PHP plugins
# for databases, extensions, etc. later.
sudo apt-get install php7.0-fpm
Source: Une réponse sur le "Comment installer php 7?" question et commentaires personnalisés et modifications de moi-même.
En second lieu , nginx. nginxne peut être aussi bon que vos configurations. Vous avez très probablement un bloc de gestion PHP sur votre ou vos blocs de serveur nginx similaire à celui-ci (de l'exemple de configuration 'par défaut'):
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
Cette configuration ne sera transmise qu'à php5-fpm. En effet, cela s'appliquera à l'ensemble de votre bloc serveur. La façon la plus simple de procéder est d'avoir un deuxième bloc serveur (pour, disons test.domain.tld) et de fournir à la place la fastcgi_passdestination PHP 7.0 . En php7.0 sur Xenial, cela va finir par quelque chose comme ça (extrait d'un correctif récemment téléchargé dans le paquet Xenial nginx), mais je ne connais pas la disposition du paquet Ondrej donc je ne peux pas donner de détails précis là-bas (vérifier /etc/php7.0/fpm/pool.d/www.confou similaire pour déterminer où il écoute):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Vous devrez faire quelque chose de similaire pour votre php5bloc, pour valider que les php5.6sockets sont utilisés à la place du php5socket intégré (que nous venons de supprimer).
Ensuite, utilisez le deuxième domaine de test pour exécuter le php7.0test. Assurez-vous cependant de faire une copie de votre site si vous voulez le faire - il sera probablement nécessaire d'avoir une copie de test distincte de sorte qu'une fois que vous aurez fini de l'utiliser php7.0, vous pourrez simplement `` basculer '' sans problème.
Il n'y a malheureusement pas de moyen facile de créer php5et de php7.0travailler dans le même bloc serveur, non sans modifier vos chemins d'accès à votre site, vos applications, etc. pour en avoir un pour php5et un pour php7.0; une telle refonte des sites peut devenir désagréable, d'où la suggestion d'exécuter deux copies distinctes du code du site, une pour la php7.0migration et une pour la php5production.
*php5.6*packages fournis par Ondřej et supprimer lesphp5packages simples .