hatena feedly nismit-logo heart tag calendar twitter facebook github feed chain linkedin rotate-left get-pocket

CentOS7.2 PHP7.xのインストール方法

CentOS7の標準レポジトリのPHP5.4ですが、PHPの現時点での最新バージョンは7.2.1 です。 (2018/01/06 時点) またバージョン7からは大幅な改良がされて実行速度をはじめ、色んなものがアップデートされているので、 特別な事がない限りはアップグレードした方が色々恩恵を受けれます。

PHP7.xにアップデート

yumの標準レポジトリでは最新版をインストール出来ない為、最新版をリリースしている外部レポジトリを追加する必要があります

EPELレポジトリの追加

$ sudo yum install epel-release

Remiレポジトリの追加

このレポジトリは最新版のPHPをFedoraやエンタープライズ向けLinuxに提供する事を目的としているレポジトリです。 メンテナーはRedHatに勤める人なので、ほぼ公式レポジトリと変わらないと思ってます。

$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

古いPHPの削除

yumで管理されていたPHP5を念のため削除します。
この際にphp.iniを色々書き換えている場合はバックアップを取っておいた方が良いと思います。 新しいPHPをインストールした時点で、php.iniが書き換わる為です。

$ sudo yum remove php-*
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.4.16-36.3.el7_2 will be erased
-省略-
Remove 7 Packages

Installed size: 19 M
Is this ok [y/N]:y

Removed:
php.x86_64 0:5.4.16-36.3.el7_2 php-cli.x86_64 0:5.4.16-36.3.el7_2
php-common.x86_64 0:5.4.16-36.3.el7_2 php-gd.x86_64 0:5.4.16-36.3.el7_2
php-mbstring.x86_64 0:5.4.16-36.3.el7_2 php-mysql.x86_64 0:5.4.16-36.3.el7_2
php-pdo.x86_64 0:5.4.16-36.3.el7_2

Complete!

🚀 PHP7のインストール

Remiレポジトリの追加、古いPHPも削除もしたので、いよいよPHP7をインストールします。 インストール時は --enablerepo オプションをつけます。

// PHP7.0系
$ sudo yum --enablerepo=remi-php70 install php php-cli.x86_64 php-pdo.x86_64 php-gd.x86_64 php-mbstring.x86_64 php-common.x86_64 php-mysql
// PHP 7.1系
$ sudo yum --enablerepo=remi-php71 install php php-cli.x86_64 php-pdo.x86_64 php-gd.x86_64 php-mbstring.x86_64 php-common.x86_64 php-mysql
// PHP 7.2系
$ sudo yum --enablerepo=remi-php72 install php php-cli.x86_64 php-pdo.x86_64 php-gd.x86_64 php-mbstring.x86_64 php-common.x86_64 php-mysql

下のはPHP7.0系をインストールした時のものです。

$ sudo yum --enablerepo=remi-php70 install php php-cli.x86_64 php-pdo.x86_64 php-gd.x86_64 php-mbstring.x86_64 php-common.x86_64 php-mysql

Loaded plugins: fastestmirror, langpacks
remi-php70 | 2.9 kB 00:00:00
remi-php70/primary_db | 164 kB 00:00:01

Install 7 Packages (+4 Dependent packages)

Total download size: 8.9 M
Installed size: 34 M

Total 657 kB/s | 8.9 MB 00:00:13
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Importing GPG key 0x00F97F56:
Userid : "Remi Collet <RPMS@FamilleCollet.com>"
Fingerprint: 1ee0 4cce 88a4 ae4a a29a 5df5 004e 6f47 00f9 7f56
Package : remi-release-7.2-1.el7.remi.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Is this ok [y/N]: y

Installed:
php.x86_64 0:7.0.13-1.el7.remi php-cli.x86_64 0:7.0.13-1.el7.remi
php-common.x86_64 0:7.0.13-1.el7.remi php-gd.x86_64 0:7.0.13-1.el7.remi
php-mbstring.x86_64 0:7.0.13-1.el7.remi php-mysqlnd.x86_64 0:7.0.13-1.el7.remi
php-pdo.x86_64 0:7.0.13-1.el7.remi

Dependency Installed:
fontconfig.x86_64 0:2.10.95-7.el7 fontpackages-filesystem.noarch 0:1.44-8.el7
gd-last.x86_64 0:2.2.3-1.el7.remi php-json.x86_64 0:7.0.13-1.el7.remi

Complete!

$ php -v
PHP 7.0.13 (cli) (built: Nov 8 2016 20:16:29) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

アップデートした後は、php.iniがクリアされているのでバックアップから復元もしくは 書き換える等を忘れずに🙏