回答:
まず、OndřejSurýのPPAをインストールしphp5-fpm、php7.0-fpmそこから、共存可能なphp5とphp7.0をインストールする必要があります。:
sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
次に、nginxFPMパッケージの使用を提案します。したがって、それに応じてパッケージをインストールします。
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ます。実際、これはサーバーブロック全体に適用されます。これを行う最も簡単な方法は、2番目のサーバーブロック(たとえばtest.domain.tld)を用意し、代わりにPHP 7.0のfastcgi_pass宛先を提供することです。Xenialのphp7.0では、これは次のようなものになります(Xenial nginxパッケージに最近アップロードされた修正から抽出)。ただし、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.6php5
次に、2番目のテストドメインを使用してテストを実行しphp7.0ます。ただし、これを行う場合は、サイトのコピーを作成する必要があります。別のテスト用コピーが必要になる可能性があります。これによりphp7.0、での作業が完了した後、問題。
残念ながら、同じサーバーブロック内で作成php5してphp7.0作業する簡単な方法はありません。サイトやアプリケーションなどのパスを1つと1つに変更することなくしてphp5はphp7.0、このようなサイトの手直しは厄介になる可能性があるため、サイトコードの2つの別々のコピーを実行することをお勧めします。1つはphp7.0移行用、もう1つphp5は本番用です。
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
*php5.6*は、Ondřejが提供するパッケージの使用に固執し、プレーンphp5パッケージを削除する必要があります。