CentOS7環境のPHP7.0をPHP7.2にremiでアップグレードする(Apache2.4)

シェアする

フリーランスエンジニアの収入例を見てみる→ IT系フリーエンジニア案件6000件以上【ギークスジョブ】

このブログは、PHP7.0で運営していたのですが、先日、PHP7.2にアップデートをしました。

今回の記事では、CentOS7環境でPHP7.0からPHP7.2(Apache2.4)へアップデートする方法について紹介します。

NginxのPHP7.0からPHP7.2のアップデートの方法は、下記のページを参照ください。

CentOS7環境のPHP7.0をPHP7.2にremiでアップグレードする(Nginx 1.12.2)について紹介しています。Nginxを使用していて、PHP7.0からPHP7.2にアップデートしようとしている人は参考にしてください。

環境

  • CentOS 7.5.1804
  • Apache 2.4
  • PHP 7.0.30

現状把握

PHPの現在のバージョンの確認
$ php -v

PHP 7.0.30 (cli) (built: Apr 24 2018 21:28:23) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

インストールされているRPMパッケージの状態を確認しておきます。

# インストールされているRPMパッケージの状態を確認
$ rpm -qa | grep php

# 実行結果
php-pecl-mysql-1.0.0-0.9.20151007git294ce3b.el7.remi.7.0.x86_64
php-gd-7.0.30-1.el7.remi.x86_64
php-7.0.30-1.el7.remi.x86_64
php-mbstring-7.0.30-1.el7.remi.x86_64
php-common-7.0.30-1.el7.remi.x86_64
php-pdo-7.0.30-1.el7.remi.x86_64
php-pecl-zip-1.15.3-1.el7.remi.7.0.x86_64
php-fpm-7.0.30-1.el7.remi.x86_64
php-json-7.0.30-1.el7.remi.x86_64
php70-php-json-7.0.30-1.el7.remi.x86_64
php-devel-7.0.30-1.el7.remi.x86_64
php-mysqlnd-7.0.30-1.el7.remi.x86_64
php-cli-7.0.30-1.el7.remi.x86_64
php-xml-7.0.30-1.el7.remi.x86_64
php70-runtime-1.0-5.el7.remi.x86_64
php70-php-xml-7.0.30-1.el7.remi.x86_64
php70-php-common-7.0.30-1.el7.remi.x86_64

PHP7.0.30のバージョンが入っていることが確認できます。

次に、導入しているremiリポジトリに7.2があるか確認します。

$ ll /etc/yum.repos.d/ | grep remi-
-rw-r--r-- 1 root root  446  6月 19 17:28 remi-glpi91.repo
-rw-r--r-- 1 root root  446  6月 19 17:28 remi-glpi92.repo
-rw-r--r-- 1 root root  446  6月 19 17:28 remi-glpi93.repo
-rw-r--r-- 1 root root  456  6月 19 17:28 remi-php54.repo
-rw-r--r-- 1 root root 1316  1月 16 21:28 remi-php70.repo
-rw-r--r-- 1 root root 1314  1月 16 16:06 remi-php70.repo.rpmnew
-rw-r--r-- 1 root root 1314  6月 19 17:28 remi-php71.repo
-rw-r--r-- 1 root root 1314  6月 19 17:28 remi-php72.repo
-rw-r--r-- 1 root root 1314  6月 19 17:28 remi-php73.repo
-rw-r--r-- 1 root root  750  6月 19 17:28 remi-safe.repo

7.2のリポジトリが無い場合はremiリポジトリをアップデートしてください。

PHPの削除

現在、インストールされているPHPを削除します。

$ yum remove php-*

PHP 7.2のインストール

まず、導入出来るPHPの詳細を確認します。

$ yum info --enablerepo=remi,remi-php72 php

読み込んだプラグイン:fastestmirror, langpacks
Repository nodesource is listed more than once in the configuration
Repository nodesource-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi: ftp.riken.jp
 * remi-php70: ftp.riken.jp
 * remi-php72: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
remi                                                     | 2.9 kB     00:00     
remi-php72                                               | 2.9 kB     00:00     
(1/2): remi-php72/primary_db                               | 192 kB   00:00     
(2/2): remi/primary_db                                     | 2.1 MB   00:00     
利用可能なパッケージ
名前                : php
アーキテクチャー    : x86_64
バージョン          : 7.2.7
リリース            : 1.el7.remi
容量                : 3.2 M
リポジトリー        : remi-php72
要約                : PHP scripting language for creating dynamic web sites
URL                 : http://www.php.net/
ライセンス          : PHP and Zend and BSD and MIT and ASL 1.0
説明                : PHP is an HTML-embedded scripting language. PHP attempts
                    : to make it easy for developers to write dynamically
                    : generated web pages. PHP also offers built-in database
                    : integration for several commercial and non-commercial
                    : database management systems, so writing a database-enabled
                    : webpage with PHP is fairly simple. The most common use of
                    : PHP coding is probably as a replacement for CGI scripts.
                    : 
                    : The php package contains the module (often referred to as
                    : mod_php) which adds support for the PHP language to Apache
                    : HTTP Server.
PHP7.2のインストール
yum install --enablerepo=remi,remi-php72 php
上記のコマンドでこの
エラー: パッケージ: php-7.2.9-1.el7.remi.x86_64 (remi-php72)
要求: libargon2.so.0()(64bit)

ようなエラーが出る場合は、「epel」リポジトリを追加してコマンドを打ってください。下記に例を示します。
yum install --enablerepo=epel,remi,remi-php72 php
PHPアップデート後のバージョンの確認
$ php -v

PHP 7.2.7 (cli) (built: Jun 20 2018 08:21:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.7, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

PHP7.2がインストールされました。

PHPの拡張機能のインストール
$ yum -y install --enablerepo=remi --enablerepo=remi-php72 php php-opcache php-devel php-mbstring php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-gd php-intl php-symfony php php-pdo php-xml php-tokenizer php-pear php-zip

インストールされているRPMパッケージの状態を確認しておきます。

$ rpm -qa | grep php

PHP7.2関連のパッケージがインストールされていることが確認できると思います。

Apacheの再起動

$ service restart httpd

PHPを7.0から7.2へアップデートをしました。
Laravel5.6などを使用する際には、システム要件が、PHP7.1.3以上だったりするので、PHP7.2にアップデートすることがある方もいると思います。

そのような際には、是非参考にしてください。