CentOS7にApache2.4とPHP5.6をインストールしようとしたらhttpd-mmnの違いでエラーが出る

CentOS7にApache2.4とPHP5.6を入れようとしたら物凄く躓きました。httpd-mmnの違いで、インストール時の依存性解決時にエラーが起きました。

httpd-mmnとはapacheのソースコードに定義されている、互換性に関する定数のようです。「Apacheのhttpd-mmnは『20120211』なのに、PHP5.6が要求しているhttpd-mmnは『20051115』だからインストールできませんわ」と言っているんですね。

結論から言いますと、remiリポジトリのバージョンが古いことが原因でした。実際にremiリポジトリの内容を見てみると、

となっています。「Enterprise Linux 6」となっていたり、リポジトリのURLに「6」と入っていると古いようです(2015年1月現在新しいのは7です)。なので、一旦この古いリポジトリを削除して新しくします。

remiリポジトリを新しくする

削除するため古いリポジトリ名を探します。

「remi-release-6.5-1.el6.remi.noarch」ですね。

remiリポジトリを削除する前に、依存性のあるパッケージがあるか確認しておきます。

自分の場合は無かったので、そのまま削除します。

次に、新しいremiリポジトリを入れます。以下はユーザディレクトリ(cd ~)にリポジトリをダウンロードしています。

これでremiリポジトリが新しくなりました。早速インストールしてみます。

が、自分の場合ここに来てまた冒頭と同じエラーが起きてしまいました。

リポジトリのキャッシュが原因

リポジトリを新しくしたのにもかかわらずphpのダウンロードバージョンに「el6」と書かれています。どうやらキャッシュが原因でリポジトリのURLが変更されていないようです。キャッシュを削除してみます。

しかし、これでもダメでした。

yum cleanでも完璧には削除されない?

もうここまで来たらコマンドに頼らず、直接yumのキャッシュディレクトリを削除することにしました。キャッシュディレクトリは/etc/yum.confに設定されています。

 $basearch$releaseverはそれぞれシステムのアーキテクチャ、Red Hat Enterprise Linuxのバージョンを参照するようですが、ディレクトリはtabを押していけば自動的に入力されるので深く考えなくて大丈夫でしょう。自分は以下のキャッシュディレクトリを削除しました。

はい。これでようやくリポジトリのURLが新しくなって、Apache2.4とPHP5.6のインストールができました。

以上です。

参考:

PHPの環境設定に関する問題CentOS 7.0.1406 上のPHP5.4及び5.5で以下の… – Yahoo!知恵袋

CentOS7 64bitのyumリポジトリにRemiを追加 | kakiro-web カキローウェブ

6.3. Yum と Yum リポジトリの設定

rpm e httpd したときに依存しているモジュールがありエラーとなる件: もんきち

最終更新日:2015年1月8日

コメント

「何かそこ違うよ」「こうした方が良い」っていう部分があったら指摘して頂けると嬉しいです。

トラックバック

トラックバックは現在ありません。

Trackback: https://increment-log.com/centos7-apache24-php56/trackback/