ประการแรกคุณต้องติดตั้งphp5-fpm
และphp7.0-fpm
จากPPA ของOndřejSurýสำหรับ 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
สามารถทำได้ดีเท่าการกำหนดค่าของคุณ คุณน่าจะมีบล็อกการจัดการ PHP ในบล็อกเซิร์ฟเวอร์ nginx ของคุณคล้ายกับสิ่งนี้ (จากตัวอย่างการตั้งค่า 'เริ่มต้น'):
# 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
) และระบุfastcgi_pass
ปลายทางPHP 7.0 แทน ใน php7.0 บน Xenial นี้จะจบลงบางอย่างเช่นนี้ (สกัดจากการแก้ไขเมื่อเร็ว ๆ นี้อัปโหลดไปยังแพคเกจ Nginx 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
แพ็คเกจธรรมดา