Tout d'abord, vous devez installer php5-fpm
et à php7.0-fpm
partir 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 nginx
suggé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
. nginx
ne 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_pass
destination 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.conf
ou 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 php5
bloc, pour valider que les php5.6
sockets sont utilisés à la place du php5
socket intégré (que nous venons de supprimer).
Ensuite, utilisez le deuxième domaine de test pour exécuter le php7.0
test. 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 php5
et de php7.0
travailler dans le même bloc serveur, non sans modifier vos chemins d'accès à votre site, vos applications, etc. pour en avoir un pour php5
et 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.0
migration et une pour la php5
production.
*php5.6*
packages fournis par Ondřej et supprimer lesphp5
packages simples .fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;