Zunächst müssen Sie php5-fpm
und php7.0-fpm
von Ondřej Surýs PPA für gemeinsam installierbares php5 und php7.0 installieren. ::
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Wir nginx
schlagen dann vor, die FPM-Pakete zu verwenden. Installieren Sie die Pakete entsprechend:
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
Quelle: Eine Antwort zum Thema "Wie installiere ich PHP 7?" Frage und benutzerdefinierte Kommentare und Änderungen von mir.
Zweitens nginx
. nginx
kann nur so gut sein wie Ihre Konfigurationen. Sie haben sehr wahrscheinlich einen PHP-Handling-Block auf Ihren Nginx-Serverblöcken, der diesem ähnelt (aus der 'Standard'-Beispielkonfiguration):
# 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;
}
Diese Konfiguration wird nur an übergeben php5-fpm
. Tatsächlich gilt dies für Ihren gesamten Serverblock. Der einfachste Weg, dies zu tun, besteht darin, einen zweiten Serverblock (z. B. test.domain.tld
) zu haben und stattdessen das PHP 7.0- fastcgi_pass
Ziel anzugeben . In php7.0 unter Xenial wird dies ungefähr so enden (extrahiert aus einem Fix, der kürzlich in das Xenial-Nginx-Paket hochgeladen wurde), aber ich kenne das Layout von Ondrejs Paket nicht, daher kann ich dort keine genauen Angaben machen (überprüfen /etc/php7.0/fpm/pool.d/www.conf
oder ähnlich, um festzustellen, wo es zuhört):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php7.0-fpm:
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}
Sie müssen etwas Ähnliches für Ihren php5
Block tun , um zu überprüfen, ob php5.6
Sockets anstelle des integrierten Sockets php5
(den wir gerade entfernt haben) verwendet werden.
Verwenden Sie dann die zweite Testdomäne, um den php7.0
Test auszuführen . Stellen Sie jedoch sicher, dass Sie eine Kopie Ihrer Site erstellen, wenn Sie dies möchten. Es ist wahrscheinlich erforderlich, eine separate Testkopie zu haben, damit Sie, sobald Sie mit der Arbeit fertig sind, php7.0
einfach ohne umschalten können Problem.
Es gibt leider keinen einfachen Weg zu machen php5
und php7.0
innerhalb desselben Servers Block Arbeit, nicht ohne Ihre Wege für Ihre Website zu verändern, Anwendungen usw. , einen haben für php5
und einen für php7.0
; Eine solche Überarbeitung von Websites kann unangenehm werden, daher der Vorschlag, zwei separate Kopien des Standortcodes auszuführen, eine für die php7.0
Migration und eine für die php5
Produktion.
*php5.6*
Ondřej bereitgestelltenphp5
Pakete halten und die einfachen Pakete entfernen .fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;