14.04 Nâng cấp sạch lên ppa: ondrej / php từ ppa: ondrej / php5-5.6


10

Tôi đã trải qua các nâng cấp gói máy chủ thông thường của mình ngày hôm nay và phát hiện ra rằng ppa:ondrej/php5-5.6đã bị khấu hao và bây giờ chúng tôi phải nâng cấp lên ppa:ondrej/php.

Các hướng dẫn cơ bản được cung cấp là chạy:

sudo add-apt-repository ppa:ondrej/php

Và sau đó:

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

Nhìn vào kho lưu trữ mới, các tên dường như không hoàn toàn xếp hàng, vì vậy tôi nghĩ rằng tôi cần thực hiện một số cài đặt apt-get để cài đặt tất cả các gói phù hợp. Dường như các gói phụ (ví dụ: php-gd) sẽ cài đặt cho tất cả các phiên bản php và cũng có thể cài đặt php 5.5 và php 7.0 ( /programming/37197539/an-su-after-ppaondrej- khấu hao php5 )

Vì vậy, câu hỏi của tôi là, cách sạch nhất để "chuyển đổi" ppas và dọn sạch các gói hiện có xem xét rằng đây là một máy chủ sản xuất? Tôi có nên cố gắng xóa tất cả các gói được cài đặt từ PPA trước đó và / hoặc xóa PPA khỏi hệ thống của tôi không?

Nó chưa có trong trang chính của PPA nhưng thông báo nâng cấp đã không còn được sử dụng vào tháng 6 năm 2016 vì vậy đây không phải là một mốc thời gian quá dài để xây dựng lại hình ảnh máy chủ của chúng tôi.

Tôi đã tìm thấy trang này, nơi cung cấp các hướng dẫn để chuyển đổi sử dụng apache phiên bản PHP: https://dzone.com/articles/php-70-and-56-on-ubfox


1
Tôi sẽ viết một số văn bản về chủ đề này trong wiki repo ở đây: github.com/oerdnj/deb.sury.org/wiki Tôi chỉ cần tìm một chút thời gian rảnh. Mọi người đều được chào đón để bắt đầu và đóng góp trong khi đó :)
oerdnj

Câu trả lời:


12

Các php5-*gói cũ có thể cài đặt được với phpX.Y-*chương trình mới , vì vậy điều đầu tiên bạn cần làm là cài đặt và kích hoạt các gói mới:

Apache 2.4

Bạn cần cài đặt các libapache2-mod-phpX.Ygói mới và sau đó vô hiệu hóa php5 cũ và kích hoạt mô-đun phiên bản mới, dành cho PHP 5.6:

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

NGINX / Apache 2.4 với PHP-FPM

Điều này thậm chí còn đơn giản hơn, chỉ cần cài đặt phpX.Y-fpmvà thay đổi đường dẫn ổ cắm trong cấu hình máy chủ web của bạn sang /run/php/phpX.Y-fpm.sockvà sao chép cấu hình cũ, dành cho PHP 5.6:

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

Nếu bạn đã xác định nhiều nhóm FPM hơn, bạn cần sao chép cấu hình cũ sang đường dẫn mới, một lần nữa cho 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

Bây giờ nếu bạn muốn loại bỏ các gói cũ, bạn có thể gặp phải một số vấn đề như có thể có gói đòi hỏi php5 cũ * tên, bạn có thể muốn thêm ppa:ondrej/php5-compatrằng cung cấp lớp mỏng gói tương thích mà bản đồ php5-<foo>để php5.6-<foo>cho php5 chính * gói:

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

Chắc chắn thử điều này đầu tiên trong môi trường phi sản xuất ! Mặt tốt là điều này giữ cho cấu hình cũ /etc/php5không bị ảnh hưởng, do đó bạn có thể di chuyển các cài đặt cũ.

Sau khi cập nhật các gói PHP chính, bạn có thể muốn tra cứu các php5-*gói còn lại và cài đặt các gói tương đương, ví dụ:

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

Tôi sẽ chuẩn bị một bản cập nhật cho repo php5-compat, nó sẽ tự động ánh xạ này.

Văn bản cập nhật hơn, luôn có thể được tìm thấy trong DEB.SURY.ORG PPA Wikis .


1
Cảm ơn tất cả công việc của bạn! Chúng tôi có một máy chủ dàn dựng mà trước tiên tôi sẽ thử mọi thứ. Trong hướng dẫn của bạn, bạn có thể muốn bao gồm một cái gì đó về việc chạy dpkg --get-selections | grep phpđể liệt kê tất cả các gói hiện tại để giúp mọi người lập bản đồ (mặc dù ppa ánh xạ sẽ rất hữu ích vì không phải làm điều đó và để nó hoạt động.) Nó cũng có thể tốt bao gồmsudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren

Ý tưởng tốt với việc loại bỏ PPA cũ.
oerdnj 17/05/2016

1
Này @oerdnj. Không phải là a2dismod thay vì phpdismod ở đó sao? Và a2enmod thay vì phpenmod?
Wojtek Naruniec

Bắt tốt, cố định.
oerdnj

tiện ích mở rộng dbase không hoạt động với mô-đun 5.6 của bạn, tôi có thể biên dịch nó sớm hơn cho phiên bản 5.6 cũ nhưng không phải cho kho lưu trữ mới. Nó được biên dịch cho phiên bản 5.5 cũ. nhưng phiên bản 5.6 được chạy nên mất mô-đun. Có bất kỳ cơ hội nào bạn có thể bằng cách nào đó không vô hiệu hóa 5,6 ppa cũ?
Tebe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.