Po pierwsze, trzeba zainstalować php5-fpm
i php7.0-fpm
od Ondřej Sury za PPA dla współ-instalowanego PHP5 i php7.0. :
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Następnie nginx
sugerujemy użycie pakietów FPM. Więc zainstaluj odpowiednio pakiety:
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
Źródło: Odpowiedź na temat „Jak zainstalować php 7?” pytanie oraz niestandardowe komentarze i modyfikacje ode mnie.
Drugie nginx
. nginx
może być tak dobry, jak twoje konfiguracje. Prawdopodobnie masz blok obsługi PHP na swoich blokach serwerów nginx podobny do tego (z domyślnej konfiguracji przykładowej):
# 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;
}
Ta konfiguracja zostanie przekazana tylko do php5-fpm
. W efekcie dotyczy to całego bloku serwera. Najłatwiejszym sposobem na załatwienie tego jest posiadanie drugiego bloku serwera (na przykład test.domain.tld
) i podanie zamiast tego fastcgi_pass
miejsca docelowego PHP 7.0 . W php7.0 na Xenial skończy się coś takiego (wyodrębnione z poprawki ostatnio przesłanej do pakietu Xenial nginx), jednak nie znam układu pakietu Ondreja, więc nie mogę podać tam dokładnych szczegółów (sprawdź /etc/php7.0/fpm/pool.d/www.conf
lub podobny do określenia, gdzie nasłuchuje):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Będziesz musiał zrobić coś podobnego dla swojego php5
bloku, aby sprawdzić, php5.6
czy używane są gniazda zamiast wbudowanego php5
gniazda (które właśnie usunęliśmy).
Następnie użyj drugiej domeny testowej, aby uruchomić php7.0
testowanie. Jeśli jednak chcesz to zrobić, pamiętaj o utworzeniu kopii witryny - prawdopodobnie konieczne będzie posiadanie osobnej kopii testowej, aby po zakończeniu pracy php7.0
można było ją „przełączyć” bez kwestia.
Niestety, nie ma łatwego sposobu na stworzenie php5
i php7.0
pracę w obrębie tego samego bloku serwera, nie bez zmiany ścieżek dla witryny, aplikacji itp., Aby mieć jeden dla php5
i jeden dla php7.0
; taka przeróbka witryn może być nieprzyjemna, stąd propozycja uruchomienia dwóch osobnych kopii kodu witryny, jednej do php7.0
migracji, a drugiej do php5
produkcji.
*php5.6*
pakietów, które zapewnia Ondřej, i usunąć zwykłephp5
pakiety.fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;