皆さんこんにちは。エンジニアの川合です。
今回は、テスト環境で動かしている古めの環境をなるべくバージョンを変えずに
AWSのEC2へ移行出来ないかと色々検証してみたお話になります。
IUSと記載の通りPHPをこのリポジトリ経由でインストールするお話です。
目次
よく使うPHPのリポジトリ
OSに付属していない新しめのPHPをインストール際には、remi のリポジトリをよく利用します。
https://rpms.remirepo.net/
では、このリポジトリを使ってインストールすればいいのでは?
と言う所ですが、基本最新世代の前後2~3世代分ぐらいしか保持されていません。
⇒少し前のバージョンなど利用したい場合は、既にリポジトリから無くなっている事が多々あります
新規構築であったり、マイナーバージョン更新を許容できる場合は問題ないのですが
バージョンの完全一致といった場合には適しません。
IUS とは
RHEL・CentOS向けにOS標準より新しめなパッケージを提供しているリポジトリになります。
remiにないバージョンであっても、iusには同じバージョンがある事が多い印象です。
現在は、CentOS7 向けにだけ提供されているようです。
※以前までCentOS6向けもありましたが、サポート終了に応じて終了?した模様
CentOS8 向けにも用意はないようです。※こっちもOSサポートの件がありましたので
古いバージョンは、ここから探します。
今回は、PHPを探しているので以下のURLから。
https://repo.ius.io/archive/7/x86_64/packages/p/
Filterで検索してみると簡単に探せます。
実際にインストールしてみる
iusのリポジトリの追加の手順も更新で案内されています。
EPELのリポジトリが必須となります。
https://ius.io/setup
yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
これで、iusとepelのリポジトリが利用できる状態になります。
あとは、指定のPHPをインストールするだけとなりますので
以下のコマンドでインストールしてみます。
yum install --enablerepo=ius-archive php73-*-7.3.19-1.el7.ius.x86_64
古いバージョンが格納されている【ius-archive】はenable=0 になっていますので
enable=1 に変更するか上記のように一時的に有効化する必要があります。
結果確認
上記コマンドで問題なくインストールが完了すれば、以下の状態になります。
php -v
PHP 7.3.19 (cli) (built: Jul 1 2020 12:29:05) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.19, Copyright (c) 1999-2018, by Zend Technologies
remiで提供最新バージョンは、PHP 7.3.33 になりますので
古いバージョンのインストールが出来ているのが確認できます。
まとめ
IUSのリポジトリを利用する事で、古いバージョンのPHPをインストールする事が出来ました。
とは言え、上記の例ですとそもそもPHPのサポートが終了しているバージョンではありますので
出来るけれど、推奨する方法ではないという事はご理解ください。
今回は、社内のテスト環境を一旦AWSのEC2へ持って行ってみて
その後、PHPのバージョンアップ という手筈を踏みますので一時的な利用となってます。
PHPの場合は、古いバージョンをインストールするのに少し難儀しますが
MySQLは、公式のリポジトリに古いバージョンも残されているのでスムーズにインストール出来ます。
その内容もまた記事にしたいと思います。
プロフィール
サーバ構築周り全般を対応しております。
LINK
クラウドベリージャム:プロフィールページ