14.04 อัพเกรดเป็น ppa: ondrej / php จาก ppa: ondrej / php5-5.6


10

ฉันเดินผ่านแพคเกจเซิร์ฟเวอร์ของฉันปกติอัพเกรดวันนี้และพบว่าได้รับการตัดค่าเสื่อมราคาและตอนนี้เราต้องอัปเกรดppa:ondrej/php5-5.6ppa:ondrej/php

คำแนะนำพื้นฐานที่มีให้ในการรัน:

sudo add-apt-repository ppa:ondrej/php

แล้ว:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

ดูที่เก็บใหม่ชื่อดูเหมือนจะไม่เรียงกันอย่างสมบูรณ์ดังนั้นฉันคิดว่าฉันจะต้องทำการติดตั้ง apt-get เพื่อรับแพ็คเกจที่ถูกต้องทั้งหมด นอกจากนี้ยังปรากฏว่าแพ็คเกจย่อย (เช่น php-gd) จะติดตั้งสำหรับเวอร์ชัน php ทั้งหมดและอาจติดตั้ง php 5.5 และ php 7.0 ( /programming/37197539/an-issue-after-ppaondrej-) php5-deprecation )

ดังนั้นคำถามของฉันคือวิธีที่สะอาดที่สุดในการ "เปลี่ยน" PPAS และล้างแพ็คเกจที่มีอยู่พิจารณาว่าเป็นเซิร์ฟเวอร์ที่ใช้งานจริงหรือไม่ ฉันควรลองลบแพ็คเกจทั้งหมดที่ติดตั้งจาก PPA ก่อนหน้าและ / หรือลบ PPA ออกจากระบบของฉันหรือไม่

ยังไม่ได้อยู่ในหน้าหลักของ PPA แต่ข้อความการอัปเกรดให้การคัดค้านเมื่อเดือนมิถุนายน 2559 ดังนั้นจึงไม่ใช่ระยะเวลาที่ยาวมากในการสร้างอิมเมจเซิร์ฟเวอร์ของเราใหม่

ฉันพบหน้านี้ซึ่งให้คำแนะนำในการเปลี่ยนการใช้ Apache เวอร์ชัน PHP: https://dzone.com/articles/php-70-and-56-on-ubuntu


1
ฉันจะเขียนข้อความในหัวข้อใน repo wiki ที่นี่: github.com/oerdnj/deb.sury.org/wikiฉันแค่ต้องการหาเวลาว่างสักหน่อย ทุกคนมีความยินดีที่จะเริ่มต้นและมีส่วนร่วมในขณะเดียวกัน :)
oerdnj

คำตอบ:


12

php5-*แพ็คเกจเก่าสามารถติดตั้งได้กับphpX.Y-*รูปแบบใหม่ดังนั้นสิ่งแรกที่คุณต้องทำคือติดตั้งและเปิดใช้งานแพ็คเกจใหม่:

Apache 2.4

คุณต้องติดตั้งlibapache2-mod-phpX.Yแพคเกจใหม่แล้วปิดการใช้งาน php5 เก่าและเปิดใช้งานโมดูลรุ่นใหม่ fe สำหรับ PHP 5.6:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6

NGINX / Apache 2.4 พร้อม PHP-FPM

นี่คือสิ่งที่ตรงไปตรงมามากขึ้นเพียงแค่ติดตั้งphpX.Y-fpmและเปลี่ยนเส้นทางซ็อกเก็ตในการกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณ/run/php/phpX.Y-fpm.sockและคัดลอกการตั้งค่าเก่า fe สำหรับ PHP 5.6:

sudo apt-get install php5.6-fpm
# now change the socket path in your nginx/apache2 configuration
# and restart the server

หากคุณได้กำหนดพูล FPM เพิ่มเติมคุณต้องคัดลอกการกำหนดค่าเก่าไปยังเส้นทางใหม่อีกครั้งสำหรับ PHP 5.6:

# keep the new www.conf
sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf
# copy the old configuration to the new path
sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/
sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package
# restart PHP 5.6 FPM to read the new configuration
sudo service php5.6-fpm restart

ตอนนี้ถ้าคุณต้องการลบแพ็กเกจเก่าคุณอาจพบปัญหาบางอย่างเนื่องจากอาจมีแพ็กเกจที่ต้องการชื่อ php5 * เก่าคุณอาจต้องการเพิ่มppa:ondrej/php5-compatแพคเกจความเข้ากันได้แบบเลเยอร์ที่แมปphp5-<foo>ไปยังphp5.6-<foo>แพ็คเกจหลัก php5 *:

sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

ลองใช้สิ่งนี้เป็นครั้งแรกในสภาพแวดล้อมที่ไม่ใช้งานจริง ! ด้านที่ดีคือการทำเช่นนี้ทำให้การกำหนดค่าเก่า/etc/php5ไม่ถูกแตะต้องดังนั้นคุณสามารถย้ายการตั้งค่าเดิม

หลังจากอัปเดตแพ็คเกจ PHP หลักคุณอาจต้องการค้นหาphp5-*แพ็คเกจที่เหลือและติดตั้งแพ็คเกจที่เทียบเท่าเช่น

apt-get install php-apcu # for php5-apcu
apt-get install php-memcached # for php5-memcached

ฉันจะเตรียมการอัปเดตเป็น repo ที่รองรับ php5 ซึ่งจะทำการแมปนี้โดยอัตโนมัติ

ยิ่งขึ้นไปวันที่ข้อความที่สามารถพบได้เสมอในDEB.SURY.ORG PPA Wikis


1
ขอบคุณสำหรับการทำงานทั้งหมดของคุณ! เรามีเซิร์ฟเวอร์จัดเตรียมซึ่งฉันจะลองทุกอย่างในตอนแรก ในคำแนะนำของคุณคุณอาจต้องการรวมบางอย่างเกี่ยวกับการทำงานdpkg --get-selections | grep phpเพื่อแสดงรายการแพคเกจปัจจุบันทั้งหมดเพื่อช่วยให้ผู้คนทำแผนที่สิ่งต่าง ๆ (แม้ว่า ppa การแมปจะมีประโยชน์อย่างยิ่งสำหรับการไม่ต้องทำและปล่อยให้มันใช้งานได้) เพื่อรวมsudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren

ความคิดที่ดีกับการกำจัด PPA เก่า
oerdnj

1
เฮ้ @oerdnj ไม่ควรจะเป็น a2dismod แทนที่จะเป็น phpdismod ใช่ไหม และ a2enmod แทน phpenmod?
Wojtek Naruniec

จับดีคงที่
oerdnj

ส่วนขยาย dbase ไม่ทำงานกับโมดูล 5.6 ของคุณฉันสามารถรวบรวมก่อนหน้านี้สำหรับรุ่น 5.6 เก่า แต่ไม่ใช่สำหรับที่เก็บใหม่ มันได้รับการรวบรวมสำหรับเวอร์ชั่น 5.5 เก่า แต่รุ่น 5.6 รันโมดูลที่หายไปดังนั้น มีโอกาสใดบ้างที่คุณจะไม่สามารถปิดใช้งานเก่า 5.6 ppa หรือไม่
Tebe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.