PHP 7.3 アップデート

WordPress 最新版導入のため PHP アップデートガイド

・QuickStart


CentOS デフォルトの PHP (5.4) を消去して、Remi レポジトリの php73 と入れ替えを行ないます
標準的な操作なので手順を間違えなければまず問題はおきないようできてます。おきても戻せます
注意点はレポジトリ・バージョンのコンフリクトと、古いプラグインが PHP 7 に対応しているかどうかです。ふつうにやれば大丈夫です
(追伸:転ばぬ先のバックアップ。特に定期的に取得していない方は。多少面倒でもこれをよい機会と思って取得されてはどうでしょうか)

不明点がございましたら下記からお知らせください

JACC お問い合わせフォーム | 株式会社ITSC
https://www.itsc-ltd.co.jp/jacc/contactform/

・バックグラウンド

従来の WordPress 5.1 系列と異なり、WordPress 5.2 系列を利用するには、PHP 5.6以上もしくは PHP 7以上が必要となりますが、CentOS の PHP は PHP 5.4 です。そのため、外部レポジトリからの導入が必要となります

外部レポジトリとは、CentOS 本体(周辺ソフトウェア含む)以外のソフトウェアや、ソフトウェアの新規バージョンをサポートするためのものです

EPEL: Red Hat 社が主として Fedora 用に用意しているコミュニティレポジトリです
Remi: CentOS チームによって保守されているコミュニティレポジトリです

若干乱暴な比喩ですが、スマートフォンでいう Google Play や、App Store と似たような位置づけと言えます。ただし、審査基準はより厳密で、ほぼスタンダードなものとして受け入れられています

今回はそれらを使って、PHP 7.3 の導入を行います

・手順

しつこいよう恐縮ですが、まずバックアップを取得することを強くお勧めします

BackWPup ? WordPress Backup Plugin ? WordPress プラグイン |WordPress.org
https://ja.wordpress.org/plugins/backwpup/

WordPressでバックアップを取る4つの方法(初心者向け)
https://saruwakakun.com/html-css/wordpress/backup

・手順参考例

rpm -qa|grep php
# php check
# if you have php then
yum -y remove php*

yum -y install epel-release

sed -i "s/enable=1/enable=0/" /etc/yum.repos.d/epel.repo

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sed -i "s/enable=1/enable=0/" /etc/yum.repos.d/remi-safe.repo

yum -y --enablerepo=epel install libargon2-devel
yum clean all
yum -y install --enablerepo=remi,remi-php73 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlnd

php --version

apachectl restart


続けて、WordPress のダッシュボードからアップデートを行ってください

・注意


ひとつひとつの手順は、環境によって差異があります
「既にインストールされている」等であれば問題ありませんが、
「~の理由でインストールできない」「~であるが本当に良いか?」などのメッセージがでた場合は、おそらく手順か入力が間違っています。
入力が正しいかどうか、また、下記のFAQや、レポジトリの導入についてご確認ください

もしくは、WordPress 以外の難しいなにかをしていて、本質的に解決できない問題が起きているのかもしれません。この場合は、随意に対応ください。もしくは、当社までお知らせください

なおここで、2つ注意ください

あまり利用者のいないマイナーなプラグインは、PHP 7 に対応していないかもしれません
あらかじめ下記参考サイトを参照の上、チェッカをご利用ください。チェッカをすり抜けてなお動作しない場合は、php56 (EPEL)の利用が一時しのぎになるかもしれません

また、CentOS 本体とのコンフリクトを避けるため
/etc/yum.repos.d/
以下は適切に enabled=0 ください

・参考サイト

Update PHP | WordPress.org
https://ja.wordpress.org/support/update-php/

VagrantのCentOS7にPHP7+WordPressをインストール | Hornet|静岡拠点のWeb、ホームページ制作
https://hombre-nuevo.com/php/php0019/

CentOS7のPHPのバージョンを5.6.x/7.0.x/7.1.x/7.2.x/ 7.3.xにバージョンアップする - Qiita
https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0

・FAQ


なにをどうしたらよいのかまったくわからない / 作業を代行して欲しい

当社にて作業代行を有償で承ります。こちらのフォームからお知らせください

JACC お問い合わせフォーム | 株式会社ITSC
https://www.itsc-ltd.co.jp/jacc/contactform/

今後 WordPress 5.1 系列はサポートされないのか?

不明です。WordPress チームのポリシーは「常に最新版を使え」です
過去、致命的なセキュリティホールがあった際には広範にアップデートがなされたことがありましたが、今後の意向は不明です

yum で php73 を導入しようとしたらなにかエラーがでた・導入できない

たぶんなにかが間違っています。デフォルトの php の消去、レポジトリの導入、選択についてもう一度確認してください
なお、--skip-broken などするのは、自分が何をやっているのか完全に理解していない限り強く非推奨です

libargon2 がないと言われる

libargon2 は Remi でなく EPEL です
yum --enablerepo=epel install libargon2-devel

php-mysqlnd がないと言われる

いくつかの解説サイトでは抜けているようです。ふつうに導入してください
yum --enablerepo=remi,remi-php73 install php73-php-mysqlnd

準備ができたのでダッシュボードから WordPress 5.2.1 への更新を行おうとしたら変なエラーがでてアップデートできない

エラーの内容を注意深く観察してください
たいていは、php-* の何かが足りないといったものです。導入してください
プラグインであれば、これはどうしようもないので、代替プラグインの導入を検討するか、php56 の利用を検討してください

そのうち CentOS 本体が PHP をアップデートしてくれるのではないか? それを待つのはどうか?

おそらく CentOS 7 の PHP は未来永劫 PHP 5.4.x のままです
CentOS (Red Hat Enterprise Linux) は、ポリシーとして、強く互換性にこだわります
そのため、効率向上・セキュリティパッチ以外の導入がなされることは(ほぼ)ありません
最新版が欲しい方は EPEL を用意しているのでそちらを使ってください、という方針なのだと思います

WordPress が白いページのままになってダッシュボードにすらアクセスできなくなった

あまりよくない事態です
/var/log/httpd/ 以下のログを精査して、ひっかかりになっているページ、呼び出しをコメントアウトするなどしてみてください
最悪の場合は、バックアップからの書き戻しを考慮ください

Comments