好きなバージョンのPHPをインストールしたい!EPEL & Remi Repositoryを使いこなす。
![](https://blog.umiyamalabo.com/blog/wp-content/uploads/2021/02/epel-remi.jpg)
CentOSでLAMP環境を構築する際によく利用するのがepel やらRemi Repositoryってやつ。コイツらをインストールだかダウンロードだかすると、インストール可能なアプリケーションのリストが手に入り、そこから選んで好きなアプリケーションの好きなバージョンをインストールできる・・・とか?
EPELとかRemiとか。コイツらがいったい何モノなのか?その程度の理解しかしてないし、したがって、好きに使いこなせているわけでもない。
というわけで勉強だ。
EPEL って何?
EPELはExtra Packages for Enterprise Linuxの略で、 Red Hat Enterprise Linux向けの追加パッケージを提供するサードパーティーのリポジトリ。
サードパーティーではあるが、CentOSではextrasリポジトリにパッケージが入っていたりするので、
$ yum install epel-release
これだけでインストールできる。
$ sudo yum install epel-release
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* epel: mirror.lzu.edu.cn
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ epel-release.noarch 0:7-5 を 更新
---> パッケージ epel-release.noarch 0:7-13 を アップデート
--> 依存性解決を終了しました。
依存性を解決しました
============================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
============================================================================================
更新します:
epel-release noarch 7-13 epel 15 k
トランザクションの要約
============================================================================================
更新 1 パッケージ
合計容量: 15 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
更新します : epel-release-7-13.noarch 1/2
整理中 : epel-release-7-5.noarch 2/2
検証中 : epel-release-7-13.noarch 1/2
検証中 : epel-release-7-5.noarch 2/2
更新:
epel-release.noarch 0:7-13
完了しました!
または、上記のEPEL公式ページの最下部にあるリンクを用いてもいいでしょう。
$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Remi って何?
Remi Collet(@RemiCollet)という方が管理しているサードパーティーのリポジトリで、PHPのバージョンが豊富なことが特徴です。主に新しいバージョンのPHPが揃っているため、OS標準のバージョンではないPHPをインストールしたい時に活躍します。
なお、2021年2月時点で最も古いPHPのバージョンは5.4.45となっています。
(ちなみに、CentOSであれば古いのはこちらでいくらでも見つかりますので、yumでインストールできるはずです(笑)。)
さて、Remiリポジトリを利用するには、まずepelをインストールしておく必要があります。
なので、前段の通りインストールしておいてから、Remiのrpmパケージをインストールします(進次郎文法?)。
# CentOS7 の場合はremi-release-7.rpm
$ sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
読み込んだプラグイン:fastestmirror
remi-release-7.rpm | 23 kB 00:00:00
/var/tmp/yum-root-0U5tEW/remi-release-7.rpm を調べています: remi-release-7.9-1.el7.remi.noarch
/var/tmp/yum-root-0U5tEW/remi-release-7.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ remi-release.noarch 0:7.9-1.el7.remi を インストール
--> 依存性解決を終了しました。
依存性を解決しました
============================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
============================================================================================
インストール中:
remi-release noarch 7.9-1.el7.remi /remi-release-7 31 k
トランザクションの要約
============================================================================================
インストール 1 パッケージ
合計容量: 31 k
インストール容量: 31 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : remi-release-7.9-1.el7.remi.noarch 1/1
検証中 : remi-release-7.9-1.el7.remi.noarch 1/1
インストール:
remi-release.noarch 0:7.9-1.el7.remi
完了しました!
リポジトリ情報を見る
CentOSの場合、リポジトリの情報は.repoというファイル形式で/etc/yum.repo.d/ディレクトリに格納されています。
ディレクトリの中を覗いてみましょう。
$ ll /etc/yum.repos.d/
合計 108
-rw-r--r--. 1 root root 1664 12月 9 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 12月 9 2015 CentOS-CR.repo
-rw-r--r--. 1 root root 649 12月 9 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 630 12月 9 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 12月 9 2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 12月 9 2015 CentOS-Vault.repo
-rw-r--r--. 1 root root 290 12月 9 2015 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 1149 11月 1 05:33 epel-testing.repo
-rw-r--r-- 1 root root 1050 11月 1 05:33 epel.repo
-rw-r--r-- 1 root root 1236 3月 23 2016 mysql-community-source.repo
-rw-r--r-- 1 root root 1222 3月 23 2016 mysql-community.repo
-rw-r--r-- 1 root root 472 1月 5 2018 nodesource-el7.repo
-rw-r--r-- 1 root root 422 10月 2 2015 puppetlabs-pc1.repo
-rw-r--r-- 1 root root 446 1月 5 01:14 remi-glpi91.repo
-rw-r--r-- 1 root root 446 1月 5 01:14 remi-glpi92.repo
-rw-r--r-- 1 root root 446 1月 5 01:14 remi-glpi93.repo
-rw-r--r-- 1 root root 446 1月 5 01:14 remi-glpi94.repo
-rw-r--r-- 1 root root 855 1月 5 01:14 remi-modular.repo
-rw-r--r-- 1 root root 456 1月 5 01:14 remi-php54.repo
-rw-r--r-- 1 root root 1314 1月 5 01:14 remi-php70.repo
-rw-r--r-- 1 root root 1314 1月 5 01:14 remi-php71.repo
-rw-r--r-- 1 root root 1314 1月 5 01:14 remi-php72.repo
-rw-r--r-- 1 root root 1314 1月 5 01:14 remi-php73.repo
-rw-r--r-- 1 root root 1314 1月 5 01:14 remi-php74.repo
-rw-r--r-- 1 root root 1314 1月 5 01:14 remi-php80.repo
-rw-r--r-- 1 root root 750 1月 5 01:14 remi-safe.repo
-rw-r--r-- 1 root root 2605 1月 5 01:14 remi.repo
epel.repoやremi-***.repoなどが確認できますね。
では、.repoファイルを覗いてみます。
$ cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
epelリポジトリには[epel]、[epel-source]、[epel-debuginfo]が含まれること分かります。
「baseurl」は実際にパッケージをダウンロードしてくる場所ですが、リポジトリによってはたくさんのミラーリンクがありますので、地理的に近いところやスピード自慢なところに書き換えることでダウンロード速度が速くなったりします。
例えば、Remiリポジトリのトップページには"Download mirrors"として、日本なら理化学研究所(理研)のミラーが掲載されています。
$basearchという変数は、それぞれの環境に応じたアーキテクチャですが、だいたいの64bit機の場合はx86_64になるんじゃないかと思います。
〜 前略 〜
FR: https://mir01.syntis.net/remirepo/ - full mirror (France, IPv4, rsync, https)
FR: http://remirepo.reloumirrors.net/ - full mirror (France, IPv4)
HK: http://mirror.innosol.asia/remi/ - full mirror (Hong Kong, IPv4)
ID: https://mirror.telkomuniversity.ac.id/remi/ - full mirror (Indonesia, IPv4, https)
IL: https://remi.mivzakim.net/ - full mirror (Israel, IPv4, https)
JP: http://ftp.riken.jp/Linux/remi/ - full mirror (Japan, IPv4)
KZ: http://mirror.neolabs.kz/remi/ - full mirror (Kazakhstan, IPv4, rsync)
KZ: https://mirror.hoster.kz/remi/ - full mirror (Kazakhstan, IPv4, https)
MA: https://mirror.marwan.ma/remi/ - full mirror (Morocco, IPv4, IPv6, https)
NL: https://mirror.oxilion.nl/remi/ - full mirror (Netherlands, IPv4, IPv6, rsync, https)
NL: https://remi.mirror.wearetriple.com/ - full mirror (Netherlands, IPv4, IPv6, https)
NL: https://mirror.serverion.com/remi/ - full mirror (Netherlands, IPv4, https, rsync)
NL: https://remi.mirror.liteserver.nl/ - full mirror (Netherlands, IPv4, IPv6, https, rsync)
〜 後略 〜
着目すべきなのは各項目にある「enabled=1」あるいは「enabled=0」で、ここが1になっているリポジトリは有効、つまり、普通に「yum install ***」とインストールする際に参照される状態です。
どのリポジトリが有効になっているかを確認するには、yum repolistというコマンドにallを付けて使います。
数が多いのでremiに限定して見てみます。
$ yum repolist all | grep remi
* remi-safe: mirror.bebout.net
remi Remi's RPM repository for Enterpr 無効
remi-debuginfo/x86_64 Remi's RPM repository for Enterpr 無効
remi-glpi91 Remi's GLPI 9.1 RPM repository fo 無効
remi-glpi92 Remi's GLPI 9.2 RPM repository fo 無効
remi-glpi93 Remi's GLPI 9.3 RPM repository fo 無効
remi-glpi94 Remi's GLPI 9.4 RPM repository fo 無効
remi-modular Remi's Modular repository for Ent 無効
remi-modular-test Remi's Modular testing repository 無効
remi-php54 Remi's PHP 5.4 RPM repository for 無効
remi-php55 Remi's PHP 5.5 RPM repository for 無効
remi-php55-debuginfo/x86_64 Remi's PHP 5.5 RPM repository for 無効
remi-php56 Remi's PHP 5.6 RPM repository for 無効
remi-php56-debuginfo/x86_64 Remi's PHP 5.6 RPM repository for 無効
remi-php70 Remi's PHP 7.0 RPM repository for 無効
remi-php70-debuginfo/x86_64 Remi's PHP 7.0 RPM repository for 無効
remi-php70-test Remi's PHP 7.0 test RPM repositor 無効
remi-php70-test-debuginfo/x86_64 Remi's PHP 7.0 test RPM repositor 無効
remi-php71 Remi's PHP 7.1 RPM repository for 無効
remi-php71-debuginfo/x86_64 Remi's PHP 7.1 RPM repository for 無効
remi-php71-test Remi's PHP 7.1 test RPM repositor 無効
remi-php71-test-debuginfo/x86_64 Remi's PHP 7.1 test RPM repositor 無効
remi-php72 Remi's PHP 7.2 RPM repository for 無効
remi-php72-debuginfo/x86_64 Remi's PHP 7.2 RPM repository for 無効
remi-php72-test Remi's PHP 7.2 test RPM repositor 無効
remi-php72-test-debuginfo/x86_64 Remi's PHP 7.2 test RPM repositor 無効
remi-php73 Remi's PHP 7.3 RPM repository for 無効
remi-php73-debuginfo/x86_64 Remi's PHP 7.3 RPM repository for 無効
remi-php73-test Remi's PHP 7.3 test RPM repositor 無効
remi-php73-test-debuginfo/x86_64 Remi's PHP 7.3 test RPM repositor 無効
remi-php74 Remi's PHP 7.4 RPM repository for 無効
remi-php74-debuginfo/x86_64 Remi's PHP 7.4 RPM repository for 無効
remi-php74-test Remi's PHP 7.4 test RPM repositor 無効
remi-php74-test-debuginfo/x86_64 Remi's PHP 7.4 test RPM repositor 無効
remi-php80 Remi's PHP 8.0 RPM repository for 無効
remi-php80-debuginfo/x86_64 Remi's PHP 8.0 RPM repository for 無効
remi-php80-test Remi's PHP 8.0 test RPM repositor 無効
remi-php80-test-debuginfo/x86_64 Remi's PHP 8.0 test RPM repositor 無効
remi-safe Safe Remi's RPM repository for En 有効: 4,124
remi-safe-debuginfo/x86_64 Remi's RPM repository for Enterpr 無効
remi-test Remi's test RPM repository for En 無効
remi-test-debuginfo/x86_64 Remi's test RPM repository for En 無効
Remi-safe リポジトリと注意点
remiリポジトリにはこれだけのリポジトリがあるのですが、デフォルトで有効になっているのは「remi-safe」のみです。
remi-safeリポジトリとは、(参考:The "remi-safe" repository ?)
The "remi-safe" repository ?
On Enterprise Linux, the new "remi-safe" repository is now enabled by default.
This repository doesn't override/replace any package of the distribution. It provides a set of packages, mostly PHP extensions, not yet in EPEL. It also provides recent version of some libraries which can be installed beside system version (e.g. gd-last).
New feature: it provides all depedencies for packages in the other repositories (so "remi" is no more required)
つまり、ディストリビューションのデフォルトのパッケージを上書き/置き換えすることのないようなパッケージ構成を提供してるという感じですね。もちろん、主にPHPまわりのパッケージになります。
では、具体的にどのようなパッケージを提供しているか覗いてみます。remi-safe.repoを見ると、デフォルトで
enabled=1となっていることが確認できます。。
$ cat /etc/yum.repos.d/remi-safe.repo
# This repository is safe to use with RHEL/CentOS base repository
# it only provides additional packages for the PHP stack
# all dependencies are in base repository or in EPEL
[remi-safe]
name=Safe Remis RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/safe/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/safe/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/safe/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-safe-debuginfo]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
含まれるパッケージを確認するには、下記の部分チェックします。
#baseurl=http://rpms.remirepo.net/enterprise/7/safe/$basearch/
変数$basearchはベースのアーキテクチャということですので、例えば私の環境では"x86_64"となります。
分からない場合は、一つ上位のディレクトリ( http://rpms.remirepo.net/enterprise/7/safe/ )にアクセスすれば選択できます。
php54-build-2.1-2.el..> 2015-11-13 15:08 4.2K
php54-build-2.1-4.el..> 2016-03-10 14:08 4.4K
php54-mysqlnd-qc-pan..> 2014-09-01 07:21 18K
php54-php-5.4.45-17...> 2019-01-11 13:38 1.4M
php54-php-5.4.45-18...> 2019-10-22 13:41 1.4M
php54-php-bcmath-5.4..> 2019-01-11 13:38 61K
php54-php-bcmath-5.4..> 2019-10-22 13:41 61K
php54-php-brotli-0.1..> 2021-01-22 07:45 17K
php54-php-brotli-0.1..> 2021-01-23 08:03 17K
php54-php-channel-ho..> 2014-09-15 18:55 3.7K
php54-php-cli-5.4.45..> 2019-01-11 13:38 2.8M
php54-php-cli-5.4.45..> 2019-10-22 13:41 2.8M
php54-php-common-5.4..> 2019-01-11 13:38 575K
php54-php-common-5.4..> 2019-10-22 13:41 575K
php54-php-dba-5.4.45..> 2019-01-11 13:38 58K
php54-php-dba-5.4.45..> 2019-10-22 13:41 58K
php54-php-devel-5.4...> 2019-01-11 13:38 607K
php54-php-devel-5.4...> 2019-10-22 13:41 607K
なにやらたくさんのパッケージが確認できますね。PHPに関わる部分は例えば上記のような感じ。
remi-safeではPHP5.4.45やその依存パッケージがインストールされることが分かります。
さて、ここで注意点です!
yum list installed コマンドで、パッケージ取得先のリポジトリを確認できます。
$ sudo yum list installed | grep php
php.x86_64 5.4.16-48.el7 @base
php-cli.x86_64 5.4.16-48.el7 @base
php-common.x86_64 5.4.16-48.el7 @base
php-gd.x86_64 5.4.16-48.el7 @base
php-mbstring.x86_64 5.4.16-48.el7 @base
php-mcrypt.x86_64 5.4.16-9.el7 @epel
php-mysqlnd.x86_64 5.4.16-48.el7 @base
php-pdo.x86_64 5.4.16-48.el7 @base
php-xml.x86_64 5.4.16-48.el7 @base
php-xmlrpc.x86_64 5.4.16-48.el7 @base
CentOS7に標準であるPHP5.4をインストールした状態です。リポジトリを指定せず、「yum install php php-*」のような形ですね。baseリポジトリと、デフォルトでenabledのepelが参照されたことが分かります。
もし、remiリポジトリをインストールして、remi-safeが有効な状態であったなら、php5.4.45がインストールされていたはずです。
さて、PHPをインストールする際に、remi-safeとそれ以外のバージョンの、例えばremi-php72などのリポジトリを併用している場合、PHP本体のパッケージが二つ入ってしまう場合があります。
例えば、remi-safeのphp72-phpとremi-php72のphpという二つのパッケージが混在してしまうケースです。
remi-safeでインストールしたphp(php72-php)に対してremi-php72のphp-pdoやphp-mysqlなどを入れても、自動的に依存関係が関連づけられることはありません。
こういったことが起こらないよう、PHPのインストール時にはどのリポジトリを利用するか、明確に指定することが望ましいのです。基本的にはremi-safeは使わない方がいいのかな〜と考えています。
参考:CentOS7 PHP7.2でmysqli拡張を有効化できない
リポジトリの有効/無効の切り替え、指定の方法
使用するリポジトリを明確に指定するには、二通りの方法があります。
一つは、.repoファイルでenabledの値によって決める方法。
もう一つが、yum install時に--enablerepoオプションで指定する方法、
どちらも行なった場合は後者が優先します。
個人的には、remi-safeはデフォで無効(enabled=0)にしておき、インストール時には--enablerepoオプションでバージョンを明示的に指定するというのがいいのかな、と思います。
.repoのenabledの値を変更する
.repoファイルを編集する
$ sudo vi /etc/yum.repos.d/remi-safe.repo
# This repository is safe to use with RHEL/CentOS base repository
# it only provides additional packages for the PHP stack
# all dependencies are in base repository or in EPEL
[remi-safe]
name=Safe Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/safe/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/safe/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/safe/mirror
enabled=1 # <= ここを0に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
[remi-safe-debuginfo]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
コマンド yum-config-managerを使う
yum-config-managerコマンドを利用するにはyum-utilsのインストールが必要です。
$ sudo yum -y install yum-utils
他にもたくさんの便利機能がインストールされますので、入れておきましょう。
で、yum-config-managerコマンドを用いて特定のレポジトリを無効化することができます。
$ sudo yum-config-manager --disable remi-safe
読み込んだプラグイン:fastestmirror
================================================================ repo: remi-safe =================================================================
[remi-safe]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl =
cache = 0
cachedir = /var/cache/yum/x86_64/7/remi-safe
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 0 # <= ここが変わった!!
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7/remi-safe/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/remi-safe/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
hdrdir = /var/cache/yum/x86_64/7/remi-safe/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist = http://cdn.remirepo.net/enterprise/7/safe/mirror
mirrorlist_expire = 86400
name = Safe Remis RPM repository for Enterprise Linux 7 - x86_64
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7/remi-safe
pkgdir = /var/cache/yum/x86_64/7/remi-safe/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = remi-safe
ui_repoid_vars = releasever,
basearch
username =
このコマンドでは他にも色々なパラメータを操作できるようです。
インストール時に--enablerepoオプションで指定する
例えばphp5.4をインストールする際に、
$ sudo yum --enablerepo=remi-php54 install php php-gd php-mycrypt 〜 〜 〜
こんな感じで良いのですが、関連パッケージが「利用できません」と言われてしまうこともしばしば。
必要なパッケージが揃うように複数のリポジトリを指定したり、パッケージによっては個別にインストールしたり、ということが必要な場合もあります。
複数のリポジトリを指定する場合はカンマ区切りで記述します。
$ sudo yum --enablerepo=remi-php54,remi,epel install php-gd php-mycrypt php-mysqld 〜 〜 〜
ま、限りなくケースバイケースです(爆)
重要なのは、自分が何をやってるのか正確に理解できていることww
Remiリポジトリの超便利機能
さて、ここまでリポジトリについて見てきましたが、だいたいこの記事程度のことを把握できていれば困ることはあまりないと思います。
より理解を深めるには、リポジトリ云々というよりは、yumの機能について深く学習するのが良いでしょう。
最後に、remiリポジトリが用意してくれている超便利機能を紹介しますね。
Remi's RPM repository - Configuration wizard
上記ページを利用すると、「どのOSにどのバージョンのPHPを単複どちらで入れるか」を選択することで、やるべきことを教えてくれるのです。
Operating system and version selection
Operating system: CentOS 7 (maintained until June 2024)
Wanted PHP version: 5.4.45 (no upstream support since September 2015)
Type of installation: Default / Single version (simplest way)
Type of installationはsingleなら、そのOSに一つだけのPHPバージョンを、Multiple versionsなら同時に複数のバージョンを入れて切り替えながら使用するということで、通常はsingleでしょう。
そうすると、下記が表示されます。
CentOS 7 provides PHP version 5.4 in its official repository
WARNING, PHP version 5.4 have reached its eod of life, despite packages have security fix, you should consider a maintained version.
Command to install the EPEL repository configuration package:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Command to install the Remi repository configuration package:
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Command to install the yum-utils package (for the yum-config-manager command):
yum install yum-utils
You want a single version which means replacing base packages from the distribution
Packages have the same name than the base repository, ie php-*
Some common dependencies are available in remi-safe repository, which is enabled by default
PHP version 5.4 packages are available for CentOS 7 in remi-php54 repository
Command to enable the repository:
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php54
You can check the list of the enabled repositories:
yum repolist
If the priorities plugin is enabled, ensure remi-php54 have higher priority (a lower value) than base and updates
Command to upgrade (the repository only provides PHP):
yum update
Command to install additional packages:
yum install php-xxx
Command to check the installed version and available extensions:
php --version
php --modules
大体この指示に従うとやりたいことはできる、ということで、初学者にも大変親切なウィザードになっています。ぜひ一度見ておいてください。
今回はここまで!!!
ディスカッション
コメント一覧
まだ、コメントがありません