14.04 Ppa: ondrej / php5-5.6'dan ppa: ondrej / php'ye temiz bir şekilde yükseltin


10

Her zamanki sunucu paketi yükseltmelerimi bugün geçtim ve ppa:ondrej/php5-5.6amortismana uğradığını keşfettim ve şimdi yükseltmeliyiz ppa:ondrej/php.

Sağlanan temel talimatlar:

sudo add-apt-repository ppa:ondrej/php

Ve sonra:

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

Yeni veri havuzuna baktığımızda, isimler tamamen sıralı görünmüyor, bu yüzden tüm doğru paketleri kurmak için bazı uygun kurulumlar yapmam gerektiğini düşünüyorum. Ayrıca, alt paketlerin (yani php-gd) tüm php sürümleri için yükleneceği ve ayrıca php 5.5 ve php 7.0'ı da yükleyebileceği görülmektedir ( /programming/37197539/an-issue-after-ppaondrej- php5-kullanımdan kaldırma )

Benim sorum şu, bu bir üretim sunucusu olduğunu düşünerek ppas "değiştirmek" ve mevcut paketleri temizlemek için en temiz yolu nedir? Önceki PPA'dan yüklenen tüm paketleri ve / veya PPA'yı sistemimden kaldırmaya çalışmalı mıyım?

Henüz PPA için ana sayfada değil, ancak yükseltme mesajı Haziran 2016 olarak kullanımdan kaldırıldı, bu nedenle sunucu imajımızı yeniden oluşturmak için çok uzun bir zaman çizelgesi değil.

Apache'nin kullandığı PHP sürümünün değiştirilmesi için talimatlar sağlayan bu sayfayı buldum: https://dzone.com/articles/php-70-and-56-on-ubuntu


1
Burada repo wiki'sinde konuyla ilgili bazı metinler yazacağım: github.com/oerdnj/deb.sury.org/wiki Sadece biraz boş zaman bulmam gerekiyor. Bu arada herkes başlayabilir ve katkıda bulunabilir :)
oerdnj

Yanıtlar:


12

Eski php5-*paketler yeni phpX.Y-*şema ile birlikte yüklenebilir , bu nedenle yapmanız gereken ilk şey yeni paketleri kurmak ve etkinleştirmektir:

Apache 2.4

Yeni libapache2-mod-phpX.Ypaketler yüklemeniz ve ardından eski php5'i devre dışı bırakmanız ve PHP 5.6 için yeni sürüm modülünü etkinleştirmeniz gerekir:

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

PHP-FPM ile NGINX / Apache 2.4

Bu daha da basittir, sadece phpX.Y-fpmweb sunucusu yapılandırmanızdaki soket yolunu yükleyin ve değiştirin ve /run/php/phpX.Y-fpm.sockPHP 5.6 için eski yapılandırmayı kopyalayın:

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

Daha fazla FPM havuzu tanımladıysanız, yine PHP 5.6 için eski yapılandırmayı yeni yola kopyalamanız gerekir:

# 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

Eski paketler kaldırmak istiyorsanız eski php5 * isimlerini gerektiren paketleri olabileceği Şimdi, bazı sorunlarla olabilir, eklemek isteyebilirsiniz ppa:ondrej/php5-compatuyumluluk paketlerinin ince bir tabaka sağlamak o harita php5-<foo>için php5.6-<foo>ana php5 * paketleri için:

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

Kesinlikle bunu ilk üretim dışı ortamda deneyin ! İyi tarafı, eski yapılandırmayı /etc/php5dokunulmadan tutmasıdır , böylece eski ayarları taşıyabilirsiniz.

Ana PHP paketlerini güncelledikten sonra, php5-*paketlerin geri kalanını aramak ve eşdeğerlerini yüklemek isteyebilirsiniz , örn.

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

Bu eşleştirmeleri otomatik olarak yapacak bir php5-uyumlu repo güncellemesi hazırlayacağım.

Daha güncel metin, her zaman DEB.SURY.ORG PPA Vikisözü'nde bulunabilir .


1
Tüm çalışmalarınız için teşekkürler! İlk önce her şeyi deneyeceğim bir hazırlama sunucumuz var. Talimatlarınıza, dpkg --get-selections | grep phpinsanların bir şeyleri haritalamasına yardımcı olmak için mevcut tüm paketleri listelemek için koşu hakkında bir şeyler dahil etmek isteyebilirsiniz (ancak eşleme ppa, bunu yapmak zorunda kalmamak ve sadece çalışmasına izin vermek için süper yararlı olacaktır.) dahil etmeksudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren

Eski PPA'nın kaldırılması ile iyi fikir.
oerdnj

1
Hey @oerdnj. Orada phpdismod yerine a2dismod olmamalı mı? Ve phpenmod yerine a2enmod?
Wojtek Naruniec

İyi av, sabit.
oerdnj

dbase uzantısı 5.6 modülünüzle çalışmaz, eski 5.6 sürümü için daha önce derleyebilirim, ancak yeni depo için değil. Eski 5.5 sürümü için derlenir. ama 5.6 sürümü kayıp modül çalıştırılır. Bir şekilde eski 5.6 ppa'yı devre dışı bırakma şansınız var mı?
Tebe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.