Saya melalui upgrade paket server yang biasa saya hari ini dan menemukan bahwa ppa:ondrej/php5-5.6
telah didepresiasi dan sekarang kita harus upgrade ke ppa:ondrej/php
.
Instruksi dasar yang disediakan adalah untuk menjalankan:
sudo add-apt-repository ppa:ondrej/php
Lalu:
sudo apt-get update
sudo apt-get upgrade --show-upgraded
Melihat repositori baru, nama-nama tampaknya tidak sepenuhnya berbaris jadi saya pikir saya perlu melakukan beberapa instalasi apt-get untuk mendapatkan semua paket yang tepat diinstal. Tampaknya juga bahwa sub-paket (yaitu php-gd) akan diinstal untuk semua versi php dan juga dapat menginstal php 5.5 dan php 7.0 ( /programming/37197539/an-issue-after-ppaondrej- php5-deprecation )
Jadi pertanyaan saya adalah, apa cara paling bersih untuk "mengganti" ppas dan membersihkan paket yang ada mengingat ini adalah server produksi? Haruskah saya mencoba untuk menghapus semua paket yang diinstal dari PPA sebelumnya dan / atau menghapus PPA dari sistem saya?
Itu belum di halaman utama untuk PPA tetapi pesan pembaruan memberi penghentian sebagai Juni 2016 sehingga bukan waktu yang sangat lama untuk membangun kembali citra server kami.
Saya memang menemukan halaman ini, yang menyediakan instruksi untuk mematikan penggunaan versi PHP apache: https://dzone.com/articles/php-70-and-56-on-ubuntu
Jawaban:
Paket lama
php5-*
dapat diinstal bersama denganphpX.Y-*
skema baru , jadi hal pertama yang perlu Anda lakukan adalah menginstal dan mengaktifkan paket baru:Apache 2.4
Anda perlu menginstal
libapache2-mod-phpX.Y
paket baru dan kemudian menonaktifkan php5 lama, dan mengaktifkan modul versi baru, fe untuk PHP 5.6:NGINX / Apache 2.4 dengan PHP-FPM
Ini bahkan lebih mudah, cukup instal
phpX.Y-fpm
dan ubah jalur soket di konfigurasi server web Anda/run/php/phpX.Y-fpm.sock
dan salin konfigurasi yang lama, fe untuk PHP 5.6:Jika Anda telah mendefinisikan lebih banyak kumpulan FPM, Anda perlu menyalin konfigurasi lama ke jalur baru, sekali lagi untuk PHP 5.6:
Sekarang jika Anda ingin menghapus paket lama, Anda mungkin mengalami beberapa masalah seperti mungkin ada paket yang membutuhkan php5 tua * nama, Anda mungkin ingin menambahkan
ppa:ondrej/php5-compat
yang memberikan lapisan tipis paket kompatibilitas yang petaphp5-<foo>
untukphp5.6-<foo>
untuk php5 utama * paket:Pasti coba ini dulu di lingkungan non-produksi ! Sisi baiknya adalah ini membuat konfigurasi lama
/etc/php5
tidak tersentuh, sehingga Anda dapat memigrasi pengaturan lama.Setelah memperbarui paket PHP utama, Anda mungkin ingin mencari sisa
php5-*
paket dan menginstalnya, misalnyaSaya akan menyiapkan pembaruan untuk repo php5-compat, yang akan membuat pemetaan ini secara otomatis.
Teks yang lebih terkini, dapat selalu ditemukan di DEB.SURY.ORG PPA Wikis .
sumber
dpkg --get-selections | grep php
daftar semua paket saat ini untuk membantu orang memetakan sesuatu (meskipun ppa pemetaan akan sangat berguna karena tidak harus melakukan itu dan membiarkannya berfungsi.) Mungkin juga bagus untuk memasukkansudo add-apt-repository --remove ppa:whatever/ppa5-5.6