Pertama, Anda perlu menginstal php5-fpm
dan php7.0-fpm
dari PPA Ondřej Surý untuk php5 dan php7.0 yang dapat diinstal bersama. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Kami kemudian, dengan nginx
, menyarankan menggunakan paket FPM. Jadi, instal paket sesuai:
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
Sumber: Jawaban di "Cara menginstal php 7?" pertanyaan , dan komentar serta modifikasi khusus dari saya.
Kedua nginx
,. nginx
hanya bisa sebagus konfigurasi Anda. Anda kemungkinan besar memiliki blok penanganan PHP pada blok server nginx Anda yang serupa dengan ini (dari contoh konfigurasi '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;
}
Konfigurasi ini hanya akan diteruskan ke php5-fpm
. Akibatnya, ini akan berlaku untuk seluruh blok server Anda. Cara termudah untuk melakukannya adalah memiliki blok server kedua (untuk, katakanlah test.domain.tld
), dan berikan tujuan PHP 7.0 fastcgi_pass
. Dalam php7.0 pada Xenial, ini akan berakhir seperti ini (diekstrak dari perbaikan yang baru-baru ini diunggah ke paket nenx Xenial), namun saya tidak tahu tata letak paket Ondrej jadi saya tidak bisa memberikan rincian yang pasti di sana (centang /etc/php7.0/fpm/pool.d/www.conf
atau mirip dengan menentukan di mana ia mendengarkan):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Anda harus melakukan sesuatu yang serupa untuk php5
blok Anda , untuk memvalidasi bahwa php5.6
soket digunakan sebagai pengganti soket built-in php5
(yang baru saja kami lepaskan).
Kemudian, gunakan domain pengujian kedua untuk menjalankan php7.0
pengujian. Pastikan, bagaimanapun, untuk membuat salinan situs Anda jika Anda ingin melakukan ini - kemungkinan akan perlu memiliki salinan pengujian terpisah sehingga setelah Anda selesai membuatnya bekerja dengan php7.0
, Anda bisa 'beralih' tanpa isu.
Sayangnya, tidak ada cara mudah untuk membuat php5
dan php7.0
bekerja di dalam blok server yang sama, bukan tanpa mengubah jalur Anda untuk situs Anda, aplikasi, dll untuk memiliki satu untuk php5
dan satu untuk php7.0
; pengerjaan ulang situs seperti itu bisa menjadi tidak menyenangkan, maka saran untuk menjalankan dua salinan terpisah dari kode situs, satu untuk php7.0
migrasi dan satu untuk php5
produksi.
*php5.6*
paket yang disediakan Ondřej, dan menghapusphp5
paket biasa .fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;