CentOS7にPHPをインストールする(5.6/7.4/8.0/他) ~バージョンアップも対応

CentOS

CentOS7に様々なバージョンのPHPをインストールする・バージョンアップする

このページを読んで実現できること

  • CentOS7にPHPのバージョンを指定してインストールする
  • 古いバージョンのPHPからバージョンアップする
  • PHPの最低限の初期設定をする

※対応バージョン(PHP5.4/ 5.6/ 7.0/ 7.1/ 7.2/ 7.3/ 7.4/ 8.0)

CentOSの初期のPHP環境は古すぎる・・・

CentOS7ではOSインストールの仕方によってPHPが初期インストールされている場合もあります。

インストールされていない場合はyumで簡単にインストールはできるのですが、公式リポジトリはPHP 5.4のみが提供されています。

2021年現在では、さすがに古すぎるのでCentOS7でPHPを使う場合はこれ以上のバージョンアップが必須となります。

今入っているPHPバージョンを確認

以下のコマンドを実行して現行のPHPバージョンを確認してください。
コマンドが存在しなければphpは入っていません。

$ php -v

PHP 5.4.16 (cli) (built: Apr  1 2020 04:07:17) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

コマンドが存在すれば上記のようにバージョンが表示されます。

現在インストール可能なPHPバージョンを確認

$ yum list | grep php
php.x86_64                                  5.4.16-48.el7              @base 

この環境でインストール可能なのはPHP5.4のようです。
古すぎます・・・

リポジトリのインストール

パッケージの管理元の場所をリポジトリといいます。

CentOS7では標準リポジトリからはPHP5.4しかインストールできません。
それ以上のバージョンを追加するにはこの管理元自体ををまずは追加しなければなりません。

以下のyumコマンドでリポジトリのインストールができます。

著名なremi氏のリポジトリとFedoraが提供するRedHat向けのepelリポジトリです。

remiリポジトリ

# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

epelリポジトリのインストール

# yum install epel-release

初期インストール済みのPHP削除

最初に入っているphpがある場合は消してしまいましょう

# yum remove php-*
# yum list installed | grep php | grep remi | cut -d" " -f1 | xargs yum -y remove

事前準備

php-gdのインストールに必要なライブラリをepelからインストールしておきます

いったん現在のライブラリを削除

# yum -y remove libraqm gcc gcc-c++ mysql-devel mysql-libs libtool

新しくライブラリのインストール

# yum install -y --enablerepo=epel libraqm
# yum install -y gcc gcc-c++ mysql-devel mysql-libs libtool t1lib

PHPのバージョンを選ぶ

PHPバージョンはどれにするか迷いますよね。参考までに一般にwordpressで使われているバージョンやサポート期限をしてしておきます。

WordPressで利用可能なPHPバージョン

主要なwordpressサーバーで2021/05時点で使われているPHPバージョンを示します。

サービス名 利用可能バージョン
さくらのレンタルサーバー 5.2、5.3、5.4、5.6、7.3、7.4(標準)
エックスサーバー 5.1、5.3、5.4、5.6、7.3、7.4(標準)

2021/05時点でwordpressのレンタルサーバーでPHP8に対応しているところはほぼ見受けられませんでした。PHP7.4のサポート期限半年前にこの状況なので、バージョン選びの際はサポート期限優先で余裕をもって選択というよりも、ちょっと古めでかなり不安なくらいの状況で使用していくのが現実のようです。

各バージョンの公式サポート期限

さらに各バージョンの公式サポート期限を表にまとめておきますのでバージョン選択の参考にして下さい。

バージョン 初リリース日 アクティブサポート セキュリティサポート
8.0 2020/11/26 2022/11/26 2022/11/26
7.4 2019/11/28 2021/11/28 2021/11/28
7.3 2018/12/06 2020/12/06 2020/12/06
7.2 2017/11/30 2019/11/30 2019/11/30
7.1 2016/12/01 2018/12/01 2018/12/01
7.0 2015/12/03 2017/12/03 2017/12/03
5.6 2014/08/28 2017/01/19 2018/12/31
5.5 2013/06/20 2015/07/10
5.4 2012/03/01 2015/09/03

各バージョンのPHPインストール

インストールしたいいずれかのバージョンのコマンドを実行します。

※パッケージにphp-phpを追加すると複数のバージョンの同時インストールも可能ですが、バージョンの切り替えや管理が煩雑になるので推奨しません。

PHPバージョン5.3

インストールできません

PHPバージョン5.4

yum -y install --disablerepo=\* --enablerepo=remi-php54,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン5.6

yum -y install --disablerepo=\* --enablerepo=remi-php56,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン7.0

yum -y install --disablerepo=\* --enablerepo=remi-php70,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン7.1

yum -y install --disablerepo=\* --enablerepo=remi-php71,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン7.2

yum -y install --disablerepo=\* --enablerepo=remi-php72,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン7.3

yum -y install --disablerepo=\* --enablerepo=remi-php73,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン7.4

yum -y install --disablerepo=\* --enablerepo=remi-php74,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

PHPバージョン8.0

yum -y install --disablerepo=\* --enablerepo=remi-php80,remi,remi-safe php php-mysqlnd php-devel php-gd php-mbstring php-pdo

バージョン変えてやりなおし

上記のremiリポジトリからインストールしてみたけどやっぱりバージョン変えたいという場合はいったん削除してください。

# yum -y remove php-*

これが使えなかった場合は以下コマンドでremi経由で入れたphpを一気に削除できます。

# yum list installed | grep php | grep remi | cut -d" " -f1 | xargs yum -y remove

インストールしたバージョンの確認

# php -v

PHP 5.6.40 (cli) (built: Apr 28 2021 14:35:32) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

PHPの初期設定をする

phpの設定ファイルはphp.iniというファイルです。

以下の記事から詳細の設定などは行ってカスタマイズしてみてください。

コメント

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