Öncelikle, yüklemeniz gerekir php5-fpmve php7.0-fpmgelen 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 nginxFPM 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,. nginxyalnı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_passhedefini 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.confveya 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ı php5doğrulamak için bloğunuz için benzer bir şey yapmanız gerekecektir .php5.6php5
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 php5ve php7.0aynı sunucu blok içinde çalışması, değil birine sahip vb siteniz uygulamaları için Yollarınızı değiştirmeden php5ve bir için php7.0; sitelerin bu şekilde yeniden işlenmesi kötü olabilir, bu nedenle site kodu, biri php7.0geç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üzphp5paketleri kaldırmalısınız .