自宅サーバの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ページの確認。
このページを閲覧いただけているということは、うまくいっているということです。
コメント