En primer lugar, debe instalar php5-fpm
y php7.0-fpm
desde el PPA de Ondřej Surý para php5 y php7.0 coinstalables. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Luego, con nginx
, sugerimos usar los paquetes FPM. Por lo tanto, instale los paquetes en consecuencia:
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
Fuente: Una respuesta sobre "¿Cómo instalar php 7?" pregunta y comentarios personalizados y modificaciones de mi parte.
En segundo lugar, nginx
. nginx
solo puede ser tan bueno como tus configuraciones. Es muy probable que tenga un bloque de manejo de PHP en su (s) bloque (s) de servidor nginx similar a este (de la configuración de ejemplo 'predeterminada'):
# 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;
}
Esta configuración solo pasará a php5-fpm
. En efecto, esto se aplicará a todo el bloque del servidor. La forma más fácil de hacerlo es tener un segundo bloque de servidor (para, por ejemplo, test.domain.tld
) y proporcionar en su lugar el fastcgi_pass
destino PHP 7.0 . En php7.0 en Xenial, esto va a terminar algo como esto (extraído de una corrección recientemente cargada en el paquete Xenial nginx), sin embargo, no conozco el diseño del paquete de Ondrej, por lo que no puedo dar detalles específicos allí (verifique /etc/php7.0/fpm/pool.d/www.conf
o similar para determinar dónde está escuchando):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Tendrá que hacer algo similar para su php5
bloque, para validar que php5.6
se utilizan sockets en lugar del php5
socket incorporado (que acabamos de eliminar).
Luego, use el segundo dominio de prueba para ejecutar la php7.0
prueba. Sin embargo, asegúrese de hacer una copia de su sitio si desea hacer esto; es probable que sea necesario tener una copia de prueba por separado para que, una vez que haya terminado de hacerlo funcionar php7.0
, pueda simplemente 'cambiar' sin problema.
Desafortunadamente, no hay una manera fácil de crear php5
y php7.0
trabajar dentro del mismo bloque de servidor, no sin alterar sus rutas para que su sitio, aplicaciones, etc. tengan uno para php5
y otro para php7.0
; Tal reelaboración de sitios puede ser desagradable, de ahí la sugerencia de ejecutar dos copias separadas del código del sitio, una para la php7.0
migración y otra para la php5
producción.
*php5.6*
paquetes que proporciona Ondřej y eliminar losphp5
paquetes simples .fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;