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というファイルです。
以下の記事から詳細の設定などは行ってカスタマイズしてみてください。
コメント