今さらながら、CentOS7の環境構築をすることになりました。
しかし、デフォルトでインストールされるPHPは、バージョン5.4.*系と古いものです。
※2022/01/20時点での最新バージョンは、8.1.1(2021/12/17リリース)です。
CentOSに特定のバージョンのPHPをインストールする方法を調べましたので解説していきます。
リポジトリを追加する
CentOSでソフトウェアパッケージをインストールするにはyumコマンドを用います。このyumコマンドの標準リポジトリでは、PHP 5.4.16 がインストールされます。
他のバージョンのPHPを取得するためには、EPELとREMIのリポジトリを追加します。
以下のコマンドを実行してください。
【epelリポジトリ】
sudo yum -y install epel-release
【remiリポジトリ】
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
現在のPHPを削除する
PHPにいろいろと設定を行っている場合、念のため設定ファイルをコピーして退避しておきましょう。
下記はコマンド例です。必ず実行しろというものではありません。
sudo cp -p /etc/php.ini /etc/php.ini_old
削除の準備が出来たら、以下のコマンドを実行してください。
sudo yum remove php*
これで古いバージョンのPHPと関連するパッケージが削除できます。
新しいPHPをインストールする
PHPは、単純に最新バージョンを使えばよいというものではありません。
PHPは、新しいバージョンにバージョンアップする際に関数の仕様が変わる場合があります。
なので、古いバージョンで製造したPHPプログラムを新しい環境にインストールしようと単純に最新のPHPを持ってくると動作しない場合があります。
※ 今回の私がそうでした(汗
新しいPHPをインストールするためには、以下のようにコマンドを実行します。
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php72 php
yumの標準リポジトリを無効(disable)にし、EPELとREMIのリポジトリを有効(enable)にしてパッケージを取得します。
他のバージョンをインストールするには、次のようにコマンドを実行してください。
【PHP 5.6.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php56 php
【PHP 7.0.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php70 php
【PHP 7.1.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php71 php
【PHP 7.2.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php72 php
【PHP 7.3.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php
【PHP 7.4.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php74 php
【PHP 8.0.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php80 php
【PHP 8.1.xの場合】
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php81 php
後ろの方の数字の部分が変わるだけです。
関連パッケージのインストール
PHP関連パッケージをインストールする場合にも、リポジトリの有効無効を指定します。
指定を忘れると、標準リポジトリにあるPHP5.4.xの関連パッケージがインストールされてしまうので注意してください。
php-mbstring を入れる場合は、以下のようになります。
sudo yum -y install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php72 php-mbstring
まとめ
結局のところ、上記のようにEPELとREMIのリポジトリを指定する方法でPHPをインストールしていれば、どのバージョンでもインストールできるようになるということ。
コメント