По-перше, вам потрібно встановити php5-fpm
і php7.0-fpm
з PPA Ondřej Surý для спільної установки php5 та php7.0. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Потім ми nginx
пропонуємо використовувати пакети FPM. Отже, встановіть пакети відповідно:
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
Джерело: Відповідь на тему "Як встановити php 7?" питання , а також власні коментарі та модифікації від мене.
По- друге, nginx
. nginx
здатний бути таким же гарним, як і ваші конфігурації. На вашому блоці серверів nginx, швидше за все, є блок обробки PHP, подібний до цього (із прикладу конфігурації "за замовчуванням"):
# 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;
}
Ця конфігурація перейде лише до php5-fpm
. По суті, це стосується всього вашого серверного блоку. Найпростіший спосіб зробити це - мати другий блок сервера (для, скажімо, test.domain.tld
) та надати замість призначення PHP 7.0 fastcgi_pass
. У php7.0 на Xenial це закінчиться чимось подібним (витягнутий з виправленого файлу, недавно завантаженого до пакета nenix Xenial), однак я не знаю макет пакету Ondrej, тому я не можу дати точну інформацію там (перевірити /etc/php7.0/fpm/pool.d/www.conf
або подібне, щоб визначити, де його слухають):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Вам доведеться зробити щось подібне для свого php5
блоку, щоб перевірити, що php5.6
розетки використовуються замість вбудованого php5
сокета (який ми щойно видалили).
Потім використовуйте другий тестовий домен для запуску php7.0
тестування. Хоча, будь ласка, зробіть копію свого веб-сайту, якщо ви хочете це зробити - можливо, знадобиться окрема тестова копія, щоб після закінчення роботи над нею php7.0
можна просто переключитися без проблема.
На жаль, не існує простого способу створення php5
та php7.0
роботи в межах одного серверного блоку, не змінюючи ваших шляхів для вашого веб-сайту, додатків тощо, щоб вони були одним php5
і одним php7.0
; така переробка сайтів може стати неприємною, отже, пропозиція запустити дві окремі копії коду сайту, одну для php7.0
міграції та одну для php5
виробництва.
*php5.6*
пакунків, які надає Ondřej, і видалити звичайніphp5
пакунки.