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月として非推奨となったため、サーバーイメージを再構築するのにそれほど長いタイムラインではありません。

私はこのページを見つけました、それはapacheが使用するPHPバージョンを切り替えるための指示を提供します:https : //dzone.com/articles/php-70-and-56-on-ubuntu


1
私はここでレポウィキのトピックにいくつかのテキストを記述します:github.com/oerdnj/deb.sury.org/wiki私は自由な時間のビットを見つける必要があります。その間、誰でも始めて貢献できます:)
oerdnj '17年

回答:


12

古いphp5-*パッケージは新しいphpX.Y-*スキームと一緒にインストールできるため、最初に行う必要があるのは、新しいパッケージをインストールして有効にすることです。

Apache 2.4

新しいlibapache2-mod-phpX.Yパッケージをインストールしてから古いphp5を無効にし、新しいバージョンのモジュールを有効にする必要があります。

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

NGINX / Apache 2.4とPHP-FPM

これはさらに簡単ですphpX.Y-fpm。Webサーバー設定にソケットパスをインストールして変更し/run/php/phpX.Y-fpm.sock、古い設定を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 *名を必要とするパッケージが存在する可能性があるため、いくつかの問題が発生する可能性があります。メインのphp5 *パッケージにppa:ondrej/php5-compatマップphp5-<foo>する互換性パッケージのシンレイヤーを提供する追加したい場合がありphp5.6-<foo>ます。

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リポジトリの更新を準備します。

より最新のテキストは、常にDEB.SURY.ORG PPA Wikiにあります。


1
お疲れ様でした!私たちはすべてを最初に試すステージングサーバーを持っています。あなたの指示には、dpkg --get-selections | grep php人々が物事をマッピングするのを助けるためにすべての現在のパッケージをリストする実行についての何かを含めることができます(マッピングppaはそれを行う必要がなく、それをそのまま動作させるのに非常に便利ですが)。含めるsudo add-apt-repository --remove ppa:whatever/ppa5-5.6
ローレン

古いPPAを削除するとよいでしょう。
oerdnj

1
@oerdnjさん、こんにちは。そこでphpdismodの代わりにa2dismodにすべきではありませんか?そして、phpenmodの代わりにa2enmod?
Wojtek Naruniec 2016

良いキャッチ、修正済み。
oerdnj

dbase拡張機能は5.6モジュールでは機能しません。古い5.6バージョン用に以前にコンパイルできましたが、新しいリポジトリ用にはできませんでした。古い5.5バージョン用にコンパイルされます。しかし、5.6バージョンは実行されたため、失われたモジュールです。古い5.6 ppaを無効にできない可能性はありますか?
Tebe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.