この記事は公開から1年以上が経過しています。内容が古い場合があるのでご注意下さい。

CentOSは標準リポジトリからのインストールの場合、古いバージョンのものがインストールされてしまう訳ですが、やり方をよく忘れるのでメモとして、手順を整理しました。

導入の手順

EPELリポジトリの追加

まずはEPELリポジトリを追加します。

$ sudo yum -y install epel-release

remiリポジトリの追加

次にremiリポジトリを追加します。
基本的にはremiリポジトリからPHPやMySQLをインストールする形になります。

CentOS7系

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

CentOS6系

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

CentOS5系

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm  

最新のPHPをインストール

remiリポジトリを利用すると、指定が無ければPHP5.4がインストールされるので、PHP5.6を指定してインストールします。

$ sudo yum install --enablerepo=remi-php56 php

他のPHPバージョンをインストールしたい場合は以下のようにします。

# PHP5.4をインストールする場合
$ sudo yum -y install --enablerepo=remi php

# PHP5.5をインストールする場合
$ sudo yum -y install --enablerepo=remi-php55 php

# PHP5.6をインストールする場合
$ sudo yum -y install --enablerepo=remi-php56 php

# PHP7.0をインストールする場合
$ sudo yum -y install --enablerepo=remi-php70 php

最新のMySQLをインストール

$ sudo yum -y install --enablerepo=remi-mysql-server

yumの設定の修正

ここまでの作業の場合、yumでパッケージ操作を行う度に--enablerepoオプションの有無を確認しないといけないので、オプションの指定無しでできるように、yumの設定を変更します。

標準リポジトリの優先度の変更

yum-plugin-prioritiesというプラグインを使い、標準リポジトリの優先度を上げて、phpとmysql 関連のパッケージ以外は、標準リポジトリからインストールできるようにします。

$ sudo yum -y install yum-plugin-priorities

CentOS-Base.repoの設定変更

  • CentOS-Base.repoのプライオリティをデフォルトから上げます。
  • PHPとMySQL関連パッケージは標準リポジトリの対象外にします。
    尚、priorityの値はデフォルト99で、小さい程、優先度が高くなります。

以下のように/etc/yum.repos.d/CentOS-Base.repoに設定を追加します。

[base]
priority=10
exclude=php* mysql*

 (中略)

[updates]
priority=10
exclude=php* mysql*

 (中略)

[extras]
priority=10

 (以下略)

remi.repoの設定変更

PHP5.6をインストールする場合は、下記のように/etc/yum.repos.d/remi.repoを修正します。

# Repository: http://rpms.remirepo.net/
# Blog:       http://blog.remirepo.net/
# Forum:      http://forum.remirepo.net/

[remi]
name=Remi's RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/remi/mirror
# remiを有効にする
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
# PHP56を使いたいので、PHPに関してのみremiの標準リポジトリは使わない
# MySQLはremiリポジトリからインストールします。
exclude=php*

[remi-php55]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror
# NOTICE: common dependencies are in "remi-safe"
# 無効のまま
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
# PHP5.6をインストールする為に有効にする
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
# MySQLは、remiからインストールしたいので、このremi-php56を参照しないようにする
exclude=mysql*

# 後は全て無効にしたままにします。
[remi-test]
name=Remi's test RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/test/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/test/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-debuginfo]
name=Remi's RPM repository for Enterprise Linux 6 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/6/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55-debuginfo]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/6/debug-php55/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56-debuginfo]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/6/debug-php56/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test-debuginfo]
name=Remi's test RPM repository for Enterprise Linux 6 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/6/debug-test/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

これで、PHPとMySQL関連パッケージ以外は標準リポジトリが適用され、PHPとMySQL関連パッケージはそれぞれremi-php56リポジトリとremiリポジトリからインストールされるようになります。

enablerepoオプションの省略化

上記の設定により--enablerepoオプションの指定は不要になったので、以下のコマンドでPHP関連パッケージのインストールやアップデートが可能です。

# 関連パッケージのインストール
$ sudo yum install php-mbstring

# アップデート
$ sudo yum update php

====================================================================================================
 Package                 Arch              Version                      Repository             Size
====================================================================================================
Updating:
 php                     x86_64            5.6.18-1.el6.remi            remi-php56            2.7 M
Updating for dependencies:
 php-cli                 x86_64            5.6.18-1.el6.remi            remi-php56            3.9 M
 php-common              x86_64            5.6.18-1.el6.remi            remi-php56            1.1 M
・・・
(以下略)

注意点

MySQLについて

CentOS6までは、上記の方法で最新のMySQLがyumで導入可能ですが、CentOS7からはMariaDBに変わっているので、この方法ではMySQLをインストール出来ません。

CentOS7にMySQLをインストールする際は、MySQL公式サイトからRPMパッケージまたはソースを取得してインストールする形になります。

PHPのconfigure内容

remiでインストールした場合、PHP5.4.10からはconfigure commandの内容が表示されません。

実際に、php -iコマンドでも、phpinfo()でも出力されません。
PHP5.4.10以前のバージョンだと、以下の様な感じでconfigureオプションの内容が表示されます。

Configure Command =>  './configure'  '--build=x86_64-redhat-linux-gnu' ・・・

参考URL:http://blog.famillecollet.com/post/2010/09/29/phpinfo-BUG-or-PEBKAC

以上です。

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です