CentOS6のPHPを7.3に更新

自宅サーバのOSがCentOS6.xのため、デフォルトでインストールされているPHPのVerは5.3.3という骨董級に古いものだった。
ついに最新のWordpressから非対応宣告を受けてしまったため、更新を決意した。

目次

既存PHPの削除

まず、念のためPHPの設定ファイル(/etc/php.ini)などをコピーし、退避しておく。

次に、インストールされているPHPのVerとパッケージを確認する。

[user@server ~]# php -v
PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
[user@server ~]# yum remove php-*
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
削除処理の設定をしています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package php.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-cli.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-common.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-devel.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-gd.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-mbstring.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-mysql.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-pdo.x86_64 0:5.3.3-49.el6 will be 削除
---> Package php-xml.x86_64 0:5.3.3-49.el6 will be 削除
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 パッケージ           アーキテクチャ バージョン             リポジトリー   容量
================================================================================
削除:
 php                  x86_64         5.3.3-49.el6           @base         3.5 M
 php-cli              x86_64         5.3.3-49.el6           @base         6.2 M
 php-common           x86_64         5.3.3-49.el6           @base         2.9 M
 php-devel            x86_64         5.3.3-49.el6           @base         3.0 M
 php-gd               x86_64         5.3.3-49.el6           @base         324 k
 php-mbstring         x86_64         5.3.3-49.el6           @base         2.1 M
 php-mysql            x86_64         5.3.3-49.el6           @base         216 k
 php-pdo              x86_64         5.3.3-49.el6           @base         168 k
 php-xml              x86_64         5.3.3-49.el6           @base         307 k

トランザクションの要約
================================================================================
削除                 9 パッケージ

インストール済み容量: 19 M
これでいいですか? [y/N]

ここで、インストールされているパッケージはgeditなどにコピーしておく。コピーが完了したら「y」をタイプ。

パッケージをダウンロードしています:
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  削除中                  : php-mysql-5.3.3-49.el6.x86_64                   1/9 
  削除中                  : php-devel-5.3.3-49.el6.x86_64                   2/9 
  削除中                  : php-5.3.3-49.el6.x86_64                         3/9 
  削除中                  : php-cli-5.3.3-49.el6.x86_64                     4/9 
  削除中                  : php-pdo-5.3.3-49.el6.x86_64                     5/9 
  削除中                  : php-gd-5.3.3-49.el6.x86_64                      6/9 
  削除中                  : php-xml-5.3.3-49.el6.x86_64                     7/9 
  削除中                  : php-mbstring-5.3.3-49.el6.x86_64                8/9 
  削除中                  : php-common-5.3.3-49.el6.x86_64                  9/9 
  Verifying               : php-mbstring-5.3.3-49.el6.x86_64                1/9 
  Verifying               : php-pdo-5.3.3-49.el6.x86_64                     2/9 
  Verifying               : php-mysql-5.3.3-49.el6.x86_64                   3/9 
  Verifying               : php-xml-5.3.3-49.el6.x86_64                     4/9 
  Verifying               : php-cli-5.3.3-49.el6.x86_64                     5/9 
  Verifying               : php-5.3.3-49.el6.x86_64                         6/9 
  Verifying               : php-gd-5.3.3-49.el6.x86_64                      7/9 
  Verifying               : php-devel-5.3.3-49.el6.x86_64                   8/9 
  Verifying               : php-common-5.3.3-49.el6.x86_64                  9/9 

削除しました:
  php.x86_64 0:5.3.3-49.el6             php-cli.x86_64 0:5.3.3-49.el6          
  php-common.x86_64 0:5.3.3-49.el6      php-devel.x86_64 0:5.3.3-49.el6        
  php-gd.x86_64 0:5.3.3-49.el6          php-mbstring.x86_64 0:5.3.3-49.el6     
  php-mysql.x86_64 0:5.3.3-49.el6       php-pdo.x86_64 0:5.3.3-49.el6          
  php-xml.x86_64 0:5.3.3-49.el6        

完了しました!

yumのキャッシュをクリア

念のため、キャッシュをクリア。

[user@server ~]# yum clean all
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
リポジトリーを清掃しています: base extras remi-safe updates
すべて掃除しています
Cleaning up list of fastest mirrors
6 delta-package files removed, by presto

新しいPHPのインストール

最初にレポジトリをアップデートしておく。PHP削除前に記録したパッケージを確認しながら、新しいPHPでインストールするパッケージを設定する。実は新しいPHPのレポジトリはremiにある。

[user@server ~]# yum update http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
更新処理の設定をしています
remi-release-6.rpm                                       |  15 kB     00:00     
/var/tmp/yum-root-SbVL65/remi-release-6.rpm を調べています: remi-release-6.10-1.el6.remi.noarch
/var/tmp/yum-root-SbVL65/remi-release-6.rpm: インストールされたパッケージを更新しません。
更新と設定されたパッケージがありません。
[user@server ~]# yum install --enablerepo=remi-php70 php php-common php-devel php-gd php-mbstring php-mysql php-pdo php-xml
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi-php70: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
remi-php70                                               | 3.0 kB     00:00     
remi-php70/primary_db                                    | 206 kB     00:00     
パッケージ php-mysql は php-mysqlnd によって不要になりました。代わりに php-mysqlnd-7.0.33-9.el6.remi.x86_64 のインストールを試みています。
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package php.x86_64 0:7.0.33-9.el6.remi will be インストール
--> 依存性の処理をしています: php-cli(x86-64) = 7.0.33-9.el6.remi のパッケージ: php-7.0.33-9.el6.remi.x86_64
---> Package php-common.x86_64 0:7.0.33-9.el6.remi will be インストール
--> 依存性の処理をしています: php-json(x86-64) = 7.0.33-9.el6.remi のパッケージ: php-common-7.0.33-9.el6.remi.x86_64
---> Package php-devel.x86_64 0:7.0.33-9.el6.remi will be インストール
--> 依存性の処理をしています: libedit-devel(x86-64) のパッケージ: php-devel-7.0.33-9.el6.remi.x86_64
---> Package php-gd.x86_64 0:7.0.33-9.el6.remi will be インストール
--> 依存性の処理をしています: gd-last(x86-64) >= 2.1.1 のパッケージ: php-gd-7.0.33-9.el6.remi.x86_64
--> 依存性の処理をしています: libgd.so.3()(64bit) のパッケージ: php-gd-7.0.33-9.el6.remi.x86_64
---> Package php-mbstring.x86_64 0:7.0.33-9.el6.remi will be インストール
---> Package php-mysqlnd.x86_64 0:7.0.33-9.el6.remi will be インストール
---> Package php-pdo.x86_64 0:7.0.33-9.el6.remi will be インストール
---> Package php-xml.x86_64 0:7.0.33-9.el6.remi will be インストール
--> トランザクションの確認を実行しています。
---> Package gd-last.x86_64 0:2.2.5-5.el6.remi will be インストール
--> 依存性の処理をしています: libwebp.so.5()(64bit) のパッケージ: gd-last-2.2.5-5.el6.remi.x86_64
---> Package libedit-devel.x86_64 0:2.11-4.20080712cvs.1.el6 will be インストール
--> 依存性の処理をしています: ncurses-devel のパッケージ: libedit-devel-2.11-4.20080712cvs.1.el6.x86_64
---> Package php-cli.x86_64 0:7.0.33-9.el6.remi will be インストール
---> Package php-json.x86_64 0:7.0.33-9.el6.remi will be インストール
--> トランザクションの確認を実行しています。
---> Package gd-last.x86_64 0:2.2.5-5.el6.remi will be インストール
--> 依存性の処理をしています: libwebp.so.5()(64bit) のパッケージ: gd-last-2.2.5-5.el6.remi.x86_64
---> Package ncurses-devel.x86_64 0:5.7-4.20090207.el6 will be インストール
--> 依存性解決を終了しました。
エラー: パッケージ: gd-last-2.2.5-5.el6.remi.x86_64 (remi-safe)
             要求: libwebp.so.5()(64bit)
 問題を回避するために --skip-broken を用いることができません
 これらを試行できます: rpm -Va --nofiles --nodigest

はて、libwebpというモジュールで引っかかってしまった。yumでインストールしようとするも利用できませんと言われる。

[user@server ~]# yum install libwebp
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
パッケージ libwebp は利用できません。
エラー: 何もしません

libwebp のアップデート

ググると、epelレポジトリのlibwebpでアップデートすれば良さそう・・・自信ないが、とりあえず試してみる。

[user@server ~]# yum install --enablerepo=epel libwebp
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
epel                                                     | 5.3 kB     00:00     
epel/primary_db                                          | 6.0 MB     00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package libwebp.x86_64 0:0.4.3-3.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 パッケージ        アーキテクチャ   バージョン             リポジトリー    容量
================================================================================
インストールしています:
 libwebp           x86_64           0.4.3-3.el6            epel           210 k

トランザクションの要約
================================================================================
インストール         1 パッケージ

総ダウンロード容量: 210 k
インストール済み容量: 659 k
これでいいですか? [y/N]y
パッケージをダウンロードしています:
Setting up and reading Presto delta metadata
epel/prestodelta                                         | 3.9 kB     00:00     
Processing delta metadata
Package(s) data still to download: 210 k
libwebp-0.4.3-3.el6.x86_64.rpm                           | 210 kB     00:00     
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : libwebp-0.4.3-3.el6.x86_64                      1/1 
  Verifying               : libwebp-0.4.3-3.el6.x86_64                      1/1 

インストール:
  libwebp.x86_64 0:0.4.3-3.el6                                                  

完了しました!

とりあえず、正常に完了

気を取り直して再度PHPのインストール

もう一度トライしてみる。

[user@server ~]# yum install --enablerepo=remi-php73 php php-common php-devel php-gd php-mbstring php-mysql php-pdo php-xml
読み込んだプラグイン:aliases, changelog, fastestmirror, presto, refresh-packagekit,
                   : security, tmprepo, verify, versionlock
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * remi-php73: ftp.riken.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp.iij.ad.jp
パッケージ php-mysql は php-mysqlnd によって不要になりました。代わりに php-mysqlnd-7.3.6-3.el6.remi.x86_64 のインストールを試みています。
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> Package php.x86_64 0:7.3.6-3.el6.remi will be インストール
--> 依存性の処理をしています: php-cli(x86-64) = 7.3.6-3.el6.remi のパッケージ: php-7.3.6-3.el6.remi.x86_64
---> Package php-common.x86_64 0:7.3.6-3.el6.remi will be インストール
--> 依存性の処理をしています: php-json(x86-64) = 7.3.6-3.el6.remi のパッケージ: php-common-7.3.6-3.el6.remi.x86_64
---> Package php-devel.x86_64 0:7.3.6-3.el6.remi will be インストール
--> 依存性の処理をしています: libargon2-devel(x86-64) のパッケージ: php-devel-7.3.6-3.el6.remi.x86_64
--> 依存性の処理をしています: libedit-devel(x86-64) のパッケージ: php-devel-7.3.6-3.el6.remi.x86_64
---> Package php-gd.x86_64 0:7.3.6-3.el6.remi will be インストール
--> 依存性の処理をしています: gd-last(x86-64) >= 2.1.1 のパッケージ: php-gd-7.3.6-3.el6.remi.x86_64
--> 依存性の処理をしています: libgd.so.3()(64bit) のパッケージ: php-gd-7.3.6-3.el6.remi.x86_64
---> Package php-mbstring.x86_64 0:7.3.6-3.el6.remi will be インストール
--> 依存性の処理をしています: libonig.so.5()(64bit) のパッケージ: php-mbstring-7.3.6-3.el6.remi.x86_64
---> Package php-mysqlnd.x86_64 0:7.3.6-3.el6.remi will be インストール
---> Package php-pdo.x86_64 0:7.3.6-3.el6.remi will be インストール
---> Package php-xml.x86_64 0:7.3.6-3.el6.remi will be インストール
--> トランザクションの確認を実行しています。
---> Package gd-last.x86_64 0:2.2.5-5.el6.remi will be インストール
---> Package libargon2-devel.x86_64 0:20161029-7.el6.remi will be インストール
---> Package libedit-devel.x86_64 0:2.11-4.20080712cvs.1.el6 will be インストール
--> 依存性の処理をしています: ncurses-devel のパッケージ: libedit-devel-2.11-4.20080712cvs.1.el6.x86_64
---> Package oniguruma5.x86_64 0:6.9.2-1.el6.remi will be インストール
---> Package php-cli.x86_64 0:7.3.6-3.el6.remi will be インストール
---> Package php-json.x86_64 0:7.3.6-3.el6.remi will be インストール
--> トランザクションの確認を実行しています。
---> Package ncurses-devel.x86_64 0:5.7-4.20090207.el6 will be インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 パッケージ         アーキテクチャ
                              バージョン                    リポジトリー   容量
================================================================================
インストールしています:
 php                x86_64    7.3.6-3.el6.remi              remi-php73    3.0 M
 php-common         x86_64    7.3.6-3.el6.remi              remi-php73    1.1 M
 php-devel          x86_64    7.3.6-3.el6.remi              remi-php73    1.4 M
 php-gd             x86_64    7.3.6-3.el6.remi              remi-php73     74 k
 php-mbstring       x86_64    7.3.6-3.el6.remi              remi-php73    859 k
 php-mysqlnd        x86_64    7.3.6-3.el6.remi              remi-php73    210 k
 php-pdo            x86_64    7.3.6-3.el6.remi              remi-php73    113 k
 php-xml            x86_64    7.3.6-3.el6.remi              remi-php73    175 k
依存性関連でのインストールをします。:
 gd-last            x86_64    2.2.5-5.el6.remi              remi-safe     129 k
 libargon2-devel    x86_64    20161029-7.el6.remi           remi-safe      12 k
 libedit-devel      x86_64    2.11-4.20080712cvs.1.el6      base           26 k
 ncurses-devel      x86_64    5.7-4.20090207.el6            base          641 k
 oniguruma5         x86_64    6.9.2-1.el6.remi              remi-safe     188 k
 php-cli            x86_64    7.3.6-3.el6.remi              remi-php73    4.4 M
 php-json           x86_64    7.3.6-3.el6.remi              remi-php73     62 k

トランザクションの要約
================================================================================
インストール        15 パッケージ

総ダウンロード容量: 12 M
インストール済み容量: 52 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 12 M
(1/15): gd-last-2.2.5-5.el6.remi.x86_64.rpm              | 129 kB     00:00     
(2/15): libargon2-devel-20161029-7.el6.remi.x86_64.rpm   |  12 kB     00:00     
(3/15): libedit-devel-2.11-4.20080712cvs.1.el6.x86_64.rp |  26 kB     00:00     
(4/15): ncurses-devel-5.7-4.20090207.el6.x86_64.rpm      | 641 kB     00:00     
(5/15): oniguruma5-6.9.2-1.el6.remi.x86_64.rpm           | 188 kB     00:00     
(6/15): php-7.3.6-3.el6.remi.x86_64.rpm                  | 3.0 MB     00:00     
(7/15): php-cli-7.3.6-3.el6.remi.x86_64.rpm              | 4.4 MB     00:00     
(8/15): php-common-7.3.6-3.el6.remi.x86_64.rpm           | 1.1 MB     00:00     
(9/15): php-devel-7.3.6-3.el6.remi.x86_64.rpm            | 1.4 MB     00:00     
(10/15): php-gd-7.3.6-3.el6.remi.x86_64.rpm              |  74 kB     00:00     
(11/15): php-json-7.3.6-3.el6.remi.x86_64.rpm            |  62 kB     00:00     
(12/15): php-mbstring-7.3.6-3.el6.remi.x86_64.rpm        | 859 kB     00:00     
(13/15): php-mysqlnd-7.3.6-3.el6.remi.x86_64.rpm         | 210 kB     00:00     
(14/15): php-pdo-7.3.6-3.el6.remi.x86_64.rpm             | 113 kB     00:00     
(15/15): php-xml-7.3.6-3.el6.remi.x86_64.rpm             | 175 kB     00:00     
--------------------------------------------------------------------------------
合計                                            4.8 MB/s |  12 MB     00:02     
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
  インストールしています  : php-common-7.3.6-3.el6.remi.x86_64             1/15 
  インストールしています  : php-json-7.3.6-3.el6.remi.x86_64               2/15 
  インストールしています  : php-cli-7.3.6-3.el6.remi.x86_64                3/15 
  インストールしています  : php-pdo-7.3.6-3.el6.remi.x86_64                4/15 
  インストールしています  : gd-last-2.2.5-5.el6.remi.x86_64                5/15 
  インストールしています  : libargon2-devel-20161029-7.el6.remi.x86_64     6/15 
  インストールしています  : ncurses-devel-5.7-4.20090207.el6.x86_64        7/15 
  インストールしています  : libedit-devel-2.11-4.20080712cvs.1.el6.x86_    8/15 
  インストールしています  : oniguruma5-6.9.2-1.el6.remi.x86_64             9/15 
  インストールしています  : php-mbstring-7.3.6-3.el6.remi.x86_64          10/15 
  インストールしています  : php-devel-7.3.6-3.el6.remi.x86_64             11/15 
  インストールしています  : php-gd-7.3.6-3.el6.remi.x86_64                12/15 
  インストールしています  : php-mysqlnd-7.3.6-3.el6.remi.x86_64           13/15 
  インストールしています  : php-7.3.6-3.el6.remi.x86_64                   14/15 
  インストールしています  : php-xml-7.3.6-3.el6.remi.x86_64               15/15 
  Verifying               : oniguruma5-6.9.2-1.el6.remi.x86_64             1/15 
  Verifying               : php-json-7.3.6-3.el6.remi.x86_64               2/15 
  Verifying               : php-cli-7.3.6-3.el6.remi.x86_64                3/15 
  Verifying               : php-mysqlnd-7.3.6-3.el6.remi.x86_64            4/15 
  Verifying               : php-7.3.6-3.el6.remi.x86_64                    5/15 
  Verifying               : php-common-7.3.6-3.el6.remi.x86_64             6/15 
  Verifying               : ncurses-devel-5.7-4.20090207.el6.x86_64        7/15 
  Verifying               : php-xml-7.3.6-3.el6.remi.x86_64                8/15 
  Verifying               : libargon2-devel-20161029-7.el6.remi.x86_64     9/15 
  Verifying               : gd-last-2.2.5-5.el6.remi.x86_64               10/15 
  Verifying               : libedit-devel-2.11-4.20080712cvs.1.el6.x86_   11/15 
  Verifying               : php-pdo-7.3.6-3.el6.remi.x86_64               12/15 
  Verifying               : php-gd-7.3.6-3.el6.remi.x86_64                13/15 
  Verifying               : php-mbstring-7.3.6-3.el6.remi.x86_64          14/15 
  Verifying               : php-devel-7.3.6-3.el6.remi.x86_64             15/15 

インストール:
  php.x86_64 0:7.3.6-3.el6.remi           php-common.x86_64 0:7.3.6-3.el6.remi  
  php-devel.x86_64 0:7.3.6-3.el6.remi     php-gd.x86_64 0:7.3.6-3.el6.remi      
  php-mbstring.x86_64 0:7.3.6-3.el6.remi  php-mysqlnd.x86_64 0:7.3.6-3.el6.remi 
  php-pdo.x86_64 0:7.3.6-3.el6.remi       php-xml.x86_64 0:7.3.6-3.el6.remi     

依存性関連をインストールしました:
  gd-last.x86_64 0:2.2.5-5.el6.remi                                             
  libargon2-devel.x86_64 0:20161029-7.el6.remi                                  
  libedit-devel.x86_64 0:2.11-4.20080712cvs.1.el6                               
  ncurses-devel.x86_64 0:5.7-4.20090207.el6                                     
  oniguruma5.x86_64 0:6.9.2-1.el6.remi                                          
  php-cli.x86_64 0:7.3.6-3.el6.remi                                             
  php-json.x86_64 0:7.3.6-3.el6.remi                                            

完了しました!

お、うまく言った模様。
途中で「php-mysql は php-mysqlnd によって不要になりました。」とのことで、php-mysqlndがインストールされた模様。これはあらかじめわかっていたが、ちゃんとインストール内容切り替えてくれた。

バージョンアップ完了

無事にインストールできたようで、念のため最終確認。

[user@server ~]# 
PHP 7.3.6 (cli) (built: May 28 2019 15:55:47) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies

OKですね。あとはPHP使っているWEBページの確認。
このページを閲覧いただけているということは、うまくいっているということです。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次