web-dev-qa-db-ja.com

Ubuntu 14.04:ppa:ondrejを使用してphpを5.6にアップグレードする際の問題

私は次のことをしました:

Sudo add-apt-repository ppa:ondrej/php5-5.6
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install php5
Sudo apt-get install libapache2-mod-php5.6
Sudo add-apt-repository ppa:ondrej/Apache2

古いバージョンのphp5を無効にしようとすると:

Sudo phpdismod php5

エラーが発生します:警告:モジュールphp5 iniファイルは/etc/php/5.6/mods-availableに存在しません

Iniファイルをこのディレクトリの下に移動しても、同じエラーが発生します。何が欠けているのかわかりませんか?

一般に、インスタンスに両方のphpディレクトリツリーがあるように見えるので、誰かがインスタンスに新しくインストールされたバージョンを使用する方法を説明できますか? php5/..およびphp/5.6

7
Scott

異なるPPA、バージョン、およびコマンドを互換性のない方法で混合しているので、分解してみましょう。

  1. libapache2-mod-php5.6ppa:ondrej/phpにあり、これは実際に使用したいPPAです

  2. phpdismodはPHP拡張を無効にするためのコマンドであり、Apache2モジュールを管理するためではありません。そのためにはa2dismodが必要です

  3. ppa:ondrej/php5-5.6のPHP Apache2モジュールの名前はlibapache2-mod-php5です

正しいのは次のとおりです。

Sudo add-apt-repository ppa:ondrej/php
Sudo apt-get update
Sudo apt-get purge php5-common # remove and purge old PHP 5.x packages
Sudo apt-get install libapache2-mod-php5.6

最初にphp5-*パッケージをアンインストールしない場合は、php5モジュールを無効にし、php5.6モジュールを有効にする必要があります。

Sudo a2dismod php5
Sudo a2enmod php5.6

また、オプションでApache2リポジトリを追加します。

Sudo add-apt-repository ppa:ondrej/Apache2
Sudo apt-get update
Sudo apt-get dist-upgrade

PPAパッケージで利用可能な migrationg guide があります。

16
oerdnj