15.10を16.04にアップグレードしたらPHPが壊れた

15.10を16.04にアップグレードしたらPHPが壊れた

アップデートを適用する代わりに誤ってシステムをアップグレードしてしまいましたが、PHP が壊れているため、moodle が動作しません。

満たされていない依存関係があり、PHP5-cli に問題があることが分かります。

sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  linux-headers-3.19.0-18 linux-headers-3.19.0-18-generic linux-headers-3.19.0-26
  linux-headers-3.19.0-26-generic linux-headers-3.19.0-30 linux-headers-3.19.0-30-generic
  linux-headers-3.19.0-31 linux-headers-3.19.0-31-generic linux-headers-3.19.0-39
  linux-headers-3.19.0-39-generic linux-headers-3.19.0-42 linux-headers-3.19.0-42-generic
  linux-headers-3.19.0-43 linux-headers-3.19.0-43-generic linux-headers-3.19.0-47
  linux-headers-3.19.0-47-generic linux-headers-3.19.0-49 linux-headers-3.19.0-49-generic
  linux-headers-4.2.0-30 linux-headers-4.2.0-30-generic linux-image-3.19.0-18-generic
  linux-image-3.19.0-26-generic linux-image-3.19.0-30-generic linux-image-3.19.0-31-generic
  linux-image-3.19.0-39-generic linux-image-3.19.0-42-generic linux-image-3.19.0-43-generic
  linux-image-3.19.0-47-generic linux-image-3.19.0-49-generic linux-image-4.2.0-30-generic
  linux-image-extra-3.19.0-18-generic linux-image-extra-3.19.0-26-generic
  linux-image-extra-3.19.0-30-generic linux-image-extra-3.19.0-31-generic
  linux-image-extra-3.19.0-39-generic linux-image-extra-3.19.0-42-generic
  linux-image-extra-3.19.0-43-generic linux-image-extra-3.19.0-47-generic
  linux-image-extra-3.19.0-49-generic linux-image-extra-4.2.0-30-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  pkg-php-tools
Suggested packages:
  dh-make
The following packages will be REMOVED:
  libapache2-mod-php5
The following packages will be upgraded:
  pkg-php-tools
1 upgraded, 0 newly installed, 1 to remove and 318 not upgraded.
15 not fully installed or removed.
Need to get 0 B/38.2 kB of archives.
After this operation, 10.2 MB disk space will be freed.
Do you want to continue? [Y/n] y
WARNING: The following packages cannot be authenticated!
  pkg-php-tools
Install these packages without verification? [y/N] y
(Reading database ... 560010 files and directories currently installed.)
Removing libapache2-mod-php5 (5.6.11+dfsg-1ubuntu3.2) ...
ERROR: Module php5 does not exist!
dpkg: error processing package libapache2-mod-php5 (--remove):
 subprocess installed pre-removal script returned error exit status 1
Errors were encountered while processing:
 libapache2-mod-php5
E: Sub-process /usr/bin/dpkg returned an error code (1)

どうすれば PHP を修正できますか? 依存関係を修正できないようです。


実行するとsudo dpkg --configure -a、未構成のままにしておくと多くの依存関係の問題が発生してしまいます。

sudo apt-get install -f私は

The following additional packages will be installed:
  pkg-php-tools
Suggested packages:
  dh-make
The following packages will be REMOVED:
  libapache2-mod-php5
The following packages will be upgraded:
  pkg-php-tools
1 upgraded, 0 newly installed, 1 to remove and 319 not upgraded.
15 not fully installed or removed.
Need to get 0 B/38.2 kB of archives.
After this operation, 10.2 MB disk space will be freed.
Do you want to continue? [Y/n] y
WARNING: The following packages cannot be authenticated!
  pkg-php-tools
Install these packages without verification? [y/N] y
(Reading database ... 560010 files and directories currently installed.)
Removing libapache2-mod-php5 (5.6.11+dfsg-1ubuntu3.2) ...
ERROR: Module php5 does not exist!
dpkg: error processing package libapache2-mod-php5 (--remove):
 subprocess installed pre-removal script returned error exit status 1
Errors were encountered while processing:
 libapache2-mod-php5
E: Sub-process /usr/bin/dpkg returned an error code (1)

答え1

私も同じ問題を抱えていました。16.04にアップグレードした直後に基本的なLAMPパッケージをインストールしてJoomlaを実行しようとしたところ、この問題が発生しました。
パッケージをインストールできず、削除もできませんでした。libapache2-mod-php5

libapache2-mod-php5 を削除しています。
エラー: モジュール php5 が存在しません。

グーグルで検索したり頭を悩ませたりした後、Apache がまだ php5 を使用していることが問題の一部であると推測しました。

これが問題を解決する正しい方法であるかどうかはわかりませんが、次の操作を行うことでこの問題を解決できました。

cd /etc/apache2/mods-enabled
sudo mv php5.conf php5.conf.old
sudo mv php5.load php5.load.old
sudo apt-get purge libapache2-mod-php5
sudo apt-get update
sudo apt-get upgrade

これで問題は解決し、ソフトウェアを再び問題なくインストールおよび削除できるようになりました。

おそらく私よりも賢い人なら、なぜこれが機能したのかを説明したり、よりエレガントで適切な解決策を提示したりできるでしょう。

とにかく、これが役に立つことを願っています。

答え2

問題は、PHP 5 がなくなり、PHP7 を実行していることです。新しい PHP7 用にいくつかの PHP プラグインとファイルを更新する必要があるかもしれません。php.ini は現在、/etc/php5 ではなく /etc/php/7.0 にあります。この変更を反映するには、Apache または moodle で変更する必要があるかもしれません。

関連情報