14.04 ppa : ondrej / php5-5.6에서 ppa : ondrej / php로 깔끔하게 업그레이드


10

나는 오늘 일반적인 서버 패키지 업그레이드를 거쳤 ppa:ondrej/php5-5.6으며 그 가치가 감가 상각되었고로 업그레이드해야 한다는 것을 발견했다 ppa: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의 메인 페이지에는 없지만 업그레이드 메시지는 2016 년 6 월에 더 이상 사용되지 않으므로 서버 이미지를 재구성하는 데 시간이 오래 걸리지 않습니다.

이 페이지에서 아파치가 사용하는 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-*체계 와 함께 설치할 수 있으므로 가장 먼저해야 할 일은 새 패키지를 설치하고 활성화하는 것입니다.

아파치 2.4

libapache2-mod-phpX.Y패키지 를 설치 한 다음 이전 php5를 비활성화하고 PHP 5.6의 경우 fe의 새 버전 모듈을 활성화해야합니다.

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

PHP-FPM이 포함 된 NGINX / Apache 2.4

이것은 훨씬 간단 phpX.Y-fpm합니다. 웹 서버 구성에서 소켓 경로를 설치 하고 변경하여 /run/php/phpX.Y-fpm.sockPHP 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

이 매핑을 자동으로 수행하는 php5-compat repo에 대한 업데이트를 준비하겠습니다.

최신 텍스트는 항상 DEB.SURY.ORG PPA 위키 에서 찾을 수 있습니다 .


1
모든 작업에 감사드립니다! 우리는 먼저 모든 것을 시도 할 준비 서버가 있습니다. 귀하의 지침에 dpkg --get-selections | grep php사람들이 물건을 매핑하는 데 도움이되는 모든 현재 패키지를 나열하기 위해 실행 하는 것에 대한 정보를 포함시킬 수 있습니다 (매핑 ppa는 그렇게하지 않아도되고 제대로 작동하도록하는 데 매우 유용하지만) 포함sudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren

오래된 PPA를 제거하는 것이 좋습니다.
oerdnj

1
안녕하세요 @oerdnj. phpdismod 대신 a2dismod가 아니어야합니까? 그리고 phpenmod 대신 a2enmod?
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.