เพิ่ม PPA
แพ็คเกจ PHP 5.6 และ PHP 7.0 มาจาก PPA ของบุคคลที่สามที่ไม่ได้จัดทำโดยที่เก็บ Ubuntu อย่างเป็นทางการจาก Canonical PPAs ที่ฉันแนะนำที่นี่มาจากOndřejSurýผู้ทำแพ็คเกจ PHP สำหรับ Debian (ซึ่ง Ubuntu ใช้แล้ว) ดังนั้นในขณะที่มันไม่ใช่ที่เก็บข้อมูลอย่างเป็นทางการเขาไม่ได้สุ่มอย่างแน่นอน! PPA อยู่
ที่นี่
หากต้องการเพิ่ม PPA ในการตั้งค่าของคุณ:
sudo add-apt-repository ppa:ondrej/php
จากนั้นเราจะต้องการดึงข้อมูลเกี่ยวกับข้อเสนอพิเศษจาก PPA ใหม่จากนั้นจึงเรียกใช้:
sudo apt-get update
ติดตั้ง PHP เวอร์ชันใหม่
ฉันได้ติดตั้งแพ็คเกจ php5 บางส่วนไปแล้ว แต่ฉันไม่ได้ถอนการติดตั้งอะไรเลยฉันแค่ปล่อยให้มันทำสิ่งที่อยากทำเมื่อฉันขอให้ติดตั้งเวอร์ชันใหม่:
sudo apt-get install php5.6 php7.0
ส่งผลให้มีการร้องเรียนจำนวนมากจากความฉลาดและความขัดแย้งมากมาย ความละเอียดที่แนะนำครั้งแรกคือการลบแพ็คเกจ php5 ของสต็อคทั้งหมดเพื่อให้สามารถติดตั้ง PHP 5.6 ได้ดังนั้นฉันจึงยอมรับข้อเสนอแนะแรก
ฉันใช้ apache ดังนั้นการตั้งค่านี้ทำให้ฉัน apache ทั้งโมดูล php5.6 และ php7.0 ที่มีอยู่และโมดูล php5.6 โหลดขึ้นจริง
เช่นเดียวกับ PHP เองส่วนขยายและเครื่องมืออื่น ๆ ที่คุณคาดหวังจาก PHP นั้นมีอยู่ใน PHP ทั้งสองเวอร์ชันดังนั้นจึงง่ายที่จะเพิ่มโมดูลที่คุณต้องการ ฉันประทับใจมากกับการทำสิ่งนี้
การกำหนดค่าและการสลับเวอร์ชัน
ตอนนี้คุณมีการติดตั้ง PHP สองเวอร์ชันแยกกันอย่างสมบูรณ์ในระบบของคุณดังนั้นลองมาดูกันว่าชิ้นส่วนทั้งหมดเป็นอย่างไร!
ไฟล์กำหนดค่าทั้งหมดอยู่ใน/etc/php/5.6
และ/etc/php/7.0
ตามลำดับ - ภายในที่นี่คือที่ที่คุณสามารถกำหนดค่าว่าจะโหลดส่วนขยายใดตั้งค่าการตั้งค่า ini และทุกอย่างอื่นสำหรับแต่ละรุ่นแยกกัน
ฉันเป็นผู้ใช้ apache และที่ฉันกล่าวถึงโมดูลทั้งสองมี ดังนั้นการเปลี่ยนจากที่หนึ่งไปยังอีกที่ฉันต้องทำ:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
สำหรับผู้ใช้ nginx การเปลี่ยนแปลงนั้นง่ายมาก Digital Ocean มีเอกสารที่ดีเกี่ยวกับเรื่องนี้ (พวกเขามีเอกสารที่ยอดเยี่ยม!) ดังนั้นตรวจสอบคำแนะนำของพวกเขา:
https://www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04
เนื่องจากมีส่วนในการกำหนดค่า nginx อีกครั้งเพื่อใช้ PHP เวอร์ชันอื่น
จากบรรทัดคำสั่งฉันมีทั้ง php5.6 และ php7.0 เป็นคำสั่ง ฉันยังคงมีคำสั่ง php - ดูใน / etc / ทางเลือกเพื่อดูว่ามันเชื่อมโยงกับ PHP cli * เวอร์ชันใด นอกจากนี้คุณยังสามารถตรวจสอบได้อย่างรวดเร็วว่าคุณใช้งานphp -v
อะไรอยู่
* มากขึ้นโดยเฉพาะทำงานซึ่ง PHP เพื่อดูว่ารุ่นของ PHP จะถูกใช้ - แต่นี้น่าจะชี้ไป/usr/bin/php
ซึ่งสำหรับฉันก็คือตัวเอง symlink ไปที่/etc/alternatives/php
คำสั่ง
ทำงานกับส่วนขยาย
PPA นี้มาพร้อมกับแพคเกจ php-pear ปกติซึ่งมีคำสั่ง pecl สำหรับ PHP ทั้งสองเวอร์ชันดังนั้นส่วนขยายใด ๆ ที่มีให้ผ่าน PECL สามารถติดตั้งได้ตามปกติ คุณจะต้องมีส่วนหัวที่เกี่ยวข้องด้วยดังนั้นควรติดตั้ง php5.6-dev หรือ php7.0-dev
เมื่อการติดตั้ง pecl เสร็จสมบูรณ์คุณจะได้รับข้อความแจ้งให้เพิ่มไฟล์ * .so ใน php.ini ของคุณ /etc/php/mods-available
ในความเป็นจริงสิ่งที่ดีที่สุดที่จะทำที่นี่คือการมองสิ่งที่อยู่ใน จะมีโมดูลบางส่วนที่นี่แล้วแต่ละไฟล์ในไฟล์ของตัวเองตั้งชื่อตามนามสกุลและสิ้นสุดใน. ini คุณสามารถคัดลอกเพื่อใช้เป็นเทมเพลตหรือสร้างของคุณเองและใส่การกำหนดค่าที่เกี่ยวข้องทั้งหมดสำหรับส่วนขยาย (อย่างน้อยคุณต้องการextension=[extensionName].so
)
เมื่อส่วนขยายใหม่พร้อมใช้งานแล้วให้เปิดใช้งานแล้วตรวจสอบโดยทำดังนี้
sudo phpenmod extension
php -m
นี้จะสร้าง symlinks ในสถานที่ที่เหมาะสมสำหรับรุ่นปัจจุบันของ PHP php -m
ในการโหลดโมดูลนี้และคุณจะเห็นมันในรายการของโมดูลออกจากที่ เคล็ดลับสำหรับมืออาชีพ: หากคุณไม่เห็นมันในผลลัพธ์ให้เลื่อนไปจนถึงด้านบนสุดของเอาต์พุตและดูว่ามีข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์หรือไม่