wordpress環境のPHPバージョンアップ(5.4.16 → 7.3.9)したのでメモ。
Contents
はじまり
勉強だりーな
AWS SAPの勉強しているというのに、手が付かない。
そうだ、アウトプットをしよう。と思ってwordpress開いたら鬼のようなプラグインアップデートの通知。
はいはい、更新更新・・・と思ったらJetPackがPHPバージョン低すぎて更新できない云々。。
他にも使いたかったコードハイライト用のプラグインとか使えないことを知り、これはいかんと感じる。
…よし、作業開始。
現在の環境・PHPのバージョンについて
現在のサーバ環境調べてみた。
ちなみにCentOSの標準yumリポジトリで入れたPHP。
後述のサイトにもあるようにyumだと古いPHPが入ってしまう。
自覚はあったけど、流石に時代に取り残されすぎたか。。
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
# php -v
PHP 5.4.16 (cli) (built: Apr 12 2018 19:02:01)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
こちらを参考に整理。
えっ、私のPHPバージョン低すぎ・・・
https://qiita.com/bezeklik/items/72d1ff8393f66673e2bc
自覚はあったがやばい。
- 5.4系最新でもない。 (5.4.16)
- 最新(7.3)から遡ること6世代前。
- サポートとっくに終了している。
どうせなので、最新PHPに上げてみたい。
下調べ
WordPress関連
wordpressはどこまで親切なのか、PHPアップデートに関する情報提供してくれる。
OSSの鑑かもしれない。
https://ja.wordpress.org/support/update-php/
※説明文がローカライズされた状態だと悪徳商法っぽい香りがした
この節は警告から始まりますが、安心してください。ほとんどが技術的な話で、PHP のバージョンアップ前に必要ないくつかの背景情報を説明するだけです。
ざっくり書くと、バックアップしておけ、互換性気にしてね。というところ。
※PHPバージョンアップについての記載は自前サーバなので自力で頑張る、後述。
特にプラグインについては便利な助言が。
何やら、PHP Compatibility Checkerなるプラグインで、アップデートしたいPHPバージョン指定でプラグイン互換性を調べてくれる、らしい。
試しにPHP7.3指定で実行した結果はこんな感じ。
警告対象についてはだめだったらちょっといじるか代替プラグイン探せば大丈夫なレベルのものばかり。
PHP関連
とりあえず7.3にあげてみたい。
centOS向けのコマンドチートシートレベルの良記事があったので、こちらを参考に。
https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0
具体的な作業
今回の作業スコープとしては、PHPを上げるだけ。
Wordpressプラグインはいったんそのままで、上げた後に確認してみる。
※人によってはWordpressの環境確認・準備をもっと行ったが良いと思う。
●epel・remi追加
# yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
●php.ini バックアップ (一応、存在確認)
# cp -p /etc/php.ini /root/.
# # ll /root/php.ini
-rw-r--r-- 1 root root 64946 9月 25 01:46 /root/php.ini
●さらば、PHP5.4 ,,,
# yum remove php-*
ちなみに削除されたパッケージは以下。
基本Baseから入れたものだけど一部メール通知用でepelからimap関連パッケージを入れていた。
===============================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
===============================================================================
削除中:
php x86_64 5.4.16-45.el7 @base 4.4 M
php-cli x86_64 5.4.16-45.el7 @base 8.8 M
php-common x86_64 5.4.16-45.el7 @base 3.8 M
php-gd x86_64 5.4.16-45.el7 @base 343 k
php-imap x86_64 5.4.16-7.el7 @epel 105 k
php-mbstring x86_64 5.4.16-45.el7 @base 1.3 M
php-mysql x86_64 5.4.16-45.el7 @base 232 k
php-pdo x86_64 5.4.16-45.el7 @base 193 k
php-pear noarch 1:1.9.4-21.el7 @base 2.2 M
php-process x86_64 5.4.16-45.el7 @base 79 k
php-xml x86_64 5.4.16-45.el7 @base 325 k
トランザクションの要約
===============================================================================
削除 11 パッケージ
続き、php7.3インストール
愚直にも上記パッケージを一発インストールしてみる。
# yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php php-cli php-common php-gd php-imap php-mbstring php-mysql php-pdo php-pear php-process php-xml
結果、いい感じに依存性解決して後継パッケージをインストール試みてくれた。
これだからyumは便利。。
Is this ok [y/d/n] : →yキーをッターン!と叩いてインストール。
===============================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
===============================================================================
インストール中:
php x86_64 7.3.9-1.el7.remi remi-php73 3.2 M
php-cli x86_64 7.3.9-1.el7.remi remi-php73 4.9 M
php-common x86_64 7.3.9-1.el7.remi remi-php73 1.1 M
php-gd x86_64 7.3.9-1.el7.remi remi-php73 80 k
php-imap x86_64 7.3.9-1.el7.remi remi-php73 87 k
php-mbstring x86_64 7.3.9-1.el7.remi remi-php73 510 k
php-mysqlnd x86_64 7.3.9-1.el7.remi remi-php73 233 k
php-pdo x86_64 7.3.9-1.el7.remi remi-php73 127 k
php-pear noarch 1:1.10.9-3.el7.remi remi 359 k
php-process x86_64 7.3.9-1.el7.remi remi-php73 82 k
php-xml x86_64 7.3.9-1.el7.remi remi-php73 207 k
依存性関連でのインストールをします:
gd-last x86_64 2.2.5-8.el7.remi remi 134 k
libargon2 x86_64 20161029-3.el7 epel 23 k
libwebp7 x86_64 1.0.2-1.el7.remi remi 265 k
oniguruma5 x86_64 6.9.3-1.el7.remi remi 193 k
php-fedora-autoloader noarch 1.0.0-1.el7.remi remi 8.9 k
php-json x86_64 7.3.9-1.el7.remi remi-php73 65 k
トランザクションの要約
===============================================================================
インストール 11 パッケージ (+6 個の依存関係のパッケージ)
インストール後はPHP7.3インストール直後のphp.iniを一応バックアップとって、コピってたphp.iniと差し替え。
Apache再起動して動作確認。
phpバージョンは7.3.9になりました。 (なんだ、簡単。。)
# cp -p /etc/php.ini /etc/php.ini.default73
# cp -p /root/php.ini /etc/php.ini
cp: `/etc/php.ini' を上書きしますか? y
# systemctl restart httpd
# php -v
PHP 7.3.9 (cli) (built: Aug 27 2019 22:52:39) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
結果
割とサクッとPHP7.3にできた! JetPackもいい感じに動作
wordpress側の動作も今の所問題なし。
重ねて言うけれど、雑な使い方しているので人によってはこんなにスムーズに行かないのだろうな。
まとめ
ミドルウェアのバージョンアップはやってみたら簡単な場合もあるので、面倒くさがらず、意識高めであろう。と思った。