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.