Öncelikle, yüklemeniz gerekir php5-fpm
ve php7.0-fpm
gelen eş-yüklenebilen php5 ve php7.0 için Ondřej sury en PPA. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Daha sonra nginx
FPM paketlerini kullanmanızı öneririz. Yani, paketleri buna göre kurun:
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
Kaynak: "Php 7 nasıl kurulur?" soru ve kendimden gelen özel yorumlar ve değişiklikler.
İkincisi nginx
,. nginx
yalnızca yapılandırmalarınız kadar iyi olabilir. Büyük olasılıkla nginx sunucu bloklarınızda buna benzer bir PHP işleme bloğunuz var ('varsayılan' örnek yapılandırmadan):
# 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;
}
Bu yapılandırma yalnızca adresine geçer php5-fpm
. Aslında bu, tüm sunucu bloğunuz için geçerli olacaktır. Bunu yapmanın en kolay yolu ikinci bir sunucu bloğuna (örneğin, test.domain.tld
) sahip olmak ve bunun yerine PHP 7.0 fastcgi_pass
hedefini sağlamaktır . Xenial üzerinde php7.0, bu böyle bir şey (son zamanlarda Xenial nginx paketine yüklenen bir düzeltmeden çıkarılır) sona erecek, ancak Ondrej paketinin düzenini bilmiyorum, bu yüzden orada tam özellikleri veremiyorum (kontrol /etc/php7.0/fpm/pool.d/www.conf
veya nerede dinlediğini belirlemeye benzer):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Yerleşik soket (yeni çıkardığımız) yerine soketlerin kullanıldığını php5
doğrulamak için bloğunuz için benzer bir şey yapmanız gerekecektir .php5.6
php5
Ardından, testi çalıştırmak için ikinci test etki alanını kullanın php7.0
. Bununla birlikte, bunu yapmak istiyorsanız sitenizin bir kopyasını oluşturduğunuzdan emin olun - çalışmayı bitirdikten sonra php7.0
, yalnızca 'geçiş' yapabilmeniz için ayrı bir test kopyasına sahip olmanız gerekecektir. konu.
Maalesef kolay bir yolu yok yapmak vardır php5
ve php7.0
aynı sunucu blok içinde çalışması, değil birine sahip vb siteniz uygulamaları için Yollarınızı değiştirmeden php5
ve bir için php7.0
; sitelerin bu şekilde yeniden işlenmesi kötü olabilir, bu nedenle site kodu, biri php7.0
geçiş ve diğeri php5
üretim için olmak üzere iki ayrı kopya çalıştırma önerisi .
*php5.6*
, Ondřej tarafından sağlanan paketleri kullanmaya devam etmeli ve düzphp5
paketleri kaldırmalısınız .