Primeiramente, você precisa instalar php5-fpm
e php7.0-fpm
do PPA de Ondřej Surý para php5 co-instalável e php7.0. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Nós, então, com nginx
, sugerimos usar os pacotes do FPM. Então, instale os pacotes de acordo:
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
Fonte: Uma resposta sobre o "Como instalar o PHP 7?" pergunta e comentários personalizados e modificações de mim mesmo.
Em segundo lugar, nginx
. nginx
só pode ser tão bom quanto suas configurações. É bem provável que você tenha um bloco de manipulação de PHP em seu (s) bloco (s) de servidor nginx similar (a partir da configuração de exemplo 'default'):
# 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 configuração passará apenas para php5-fpm
. Na verdade, isso será aplicado a todo o seu bloco de servidores. A maneira mais fácil de fazer isso é ter um segundo bloco de servidor (por exemplo, test.domain.tld
) e fornecer, em vez disso, o destino do PHP 7.0 fastcgi_pass
. No php7.0 no Xenial, isso vai acabar assim (extraído de uma correção recentemente carregada no pacote nginx do Xenial), no entanto eu não conheço o layout do pacote do Ondrej então não posso dar detalhes exatos lá (confira /etc/php7.0/fpm/pool.d/www.conf
ou similar para determinar onde está escutando):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Você terá que fazer algo semelhante para o seu bloco php5
, para validar que php5.6
sockets são usados em vez do soquete php5
(que acabamos de remover).
Em seguida, use o segundo domínio de teste para executar o teste php7.0
. Certifique-se, no entanto, de fazer uma cópia do seu site se você quiser fazer isso - provavelmente será necessário ter uma cópia de teste separada para que, assim que terminar de trabalhar com php7.0
, você possa simplesmente "alternar" sobre 'sem problema.
Não há, infelizmente, uma maneira fácil de fazer com que php5
e php7.0
trabalhem no mesmo bloco de servidores, não sem alterar seus caminhos para seu site, aplicativos, etc., para um por php5
e um para %código%; tal retrabalho de sites pode ficar desagradável, daí a sugestão de executar duas cópias separadas do código do site, uma para php7.0
migration e uma para php7.0
em produção.