Primeiramente, você precisa instalar php5-fpm
e a php7.0-fpm
partir do PPA do Ondřej Surý para o php5 e o php7.0 co-instaláveis. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Em seguida, nginx
sugerimos o uso dos pacotes FPM. Portanto, instale os pacotes adequadamente:
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 no "Como instalar o php 7?" pergunta e comentários e modificações personalizados.
Em segundo lugar nginx
. nginx
só pode ser tão bom quanto suas configurações. É muito provável que você tenha um bloco de manipulação do PHP no (s) bloco (s) do servidor nginx semelhante a este (da configuração de exemplo 'padrão'):
# 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;
}
Essa configuração passará apenas para php5-fpm
. Com efeito, isso se aplicará a todo o bloco do servidor. A maneira mais fácil de fazer isso é ter um segundo bloco de servidor (por exemplo test.domain.tld
) e fornecer o fastcgi_pass
destino do PHP 7.0 . No php7.0 no Xenial, isso vai acabar com algo 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, por isso não posso fornecer detalhes exatos (verifique /etc/php7.0/fpm/pool.d/www.conf
ou semelhante para determinar onde está ouvindo):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Você precisará fazer algo semelhante ao seu php5
bloco, para validar que os php5.6
soquetes são usados em vez do php5
soquete interno (que acabamos de remover).
Em seguida, use o segundo domínio de teste para executar o php7.0
teste. Entretanto, certifique-se 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 php7.0
, você possa simplesmente 'alternar' sem questão.
Infelizmente, não há uma maneira fácil de criar php5
e php7.0
trabalhar no mesmo bloco de servidor, sem alterar os caminhos do site, aplicativos, etc., para ter um para php5
e outro para php7.0
; esse 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
migração e outra para php5
produção.
*php5.6*
pacotes que o Ondřej fornece e remova osphp5
pacotes simples .fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;