답변:
첫째, 당신은 설치해야 php5-fpm
및 php7.0-fpm
에서 공동 설치 PHP5와 php7.0에 대한 드레이 Surý의 PPA. :
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
대상을 제공하는 것 입니다. 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.6
php5
그런 다음 두 번째 테스트 도메인을 사용하여 테스트를 실행하십시오 php7.0
. 그러나 원하는 경우 사이트 사본을 만드십시오. 작업을 마치면 php7.0
``전환 ''할 수 있도록 별도의 테스트 사본이 필요할 수 있습니다. 발행물.
불행하게도, 더 쉬운 방법도하지 않습니다에,이 php5
와 php7.0
같은 서버 블록 내에서 작업하지 않는 한 가질 수 등 사이트, 응용 프로그램에 대한 귀하의 경로를 변경하지 않고 php5
하나를 들어 php7.0
; 이러한 사이트 재 작업은 번거로울 수 있으므로 사이트 코드의 별도 사본 두 개 ( php7.0
마이그레이션 및 php5
프로덕션 용) 를 실행하라는 제안이 있습니다 .
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
*php5.6*
Ondřej가 제공 하는 패키지 를 사용 하고 일반php5
패키지를 제거해야 합니다.