PR

CentOS7にPHPバージョンを指定してインストールする方法!!

Linux

今さらながら、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をインストールしていれば、どのバージョンでもインストールできるようになるということ。

コメント

タイトルとURLをコピーしました