2018年1月からさくらインターネットでVPS(仮想専用サーバ)を借りてLinuxの勉強をしたりWordpressでブログを書いている投資混浴エンジニアの すずめ8(@suzume8_vc) です。
IT業界でシステムエンジニア歴は約20年です。社会人になってからLinuxを触ってます。Linuxに限らずOS周りで何かするときはいったんハマると色々と切り分け作業を行う必要があります。今回記事に書いたPHPに限らず今後も自分のサーバで色々ハマって対応した事例を載せていきますのでどうぞお読みください!
2018年7月から純金積立、投資信託、日本株など投資関係と青森県酸ヶ湯温泉の混浴の記事が伸びているため、投資混浴エンジニアと名乗ってますw
2018年12月6日にWordpress5.0がリリースされました。
同時にPHP7.3.0もリリースされました。
ウィキペディアからPHPについて引用します。
オープンソースの汎用プログラミング言語およびその公式の処理系であり、特にサーバーサイドで動的なウェブページ作成するための機能を多く備えていることを特徴とする
WordPress5.0についてはTwitterでもつぶやきましたが、即時の更新は見送りました。
興味本位で更新したいんやけど、そもそもテーマ(Cocoon)で対応してるかわからんし、なんかあった時が色々大変やし、もう少し調べてみてやるかどうか検討します。
一方で、PHPについては7.3への更新を行いました。
以前、PHP7.1から7.2の最新バージョンへ更新を行ったときに特に問題なかったし、影響も少ないだろうという判断です。
これが結果的にブログへアクセスできなくなるとは思っていませんでした。。
ブログへアクセスできないとは、IEなどブラウザで自分のブログのURLを入力しても「このウェブページにアクセスできません」とエラーが出る状態を指します。
なお、このブログのテーマはCocoonを使ってます。
おそらく2018年12月8日時点でCocoonがPHP7.3へ対応してなかったために今回の問題が発生したものと思われます。
2019年1月6日追記
WordPress5.0.2+Cocoon1.5.1の環境でPHP7.2から7.3へ更新を試みたのですが前回同様にブログへアクセスできなくなりました。
本記事を事前にMicrosoft OneNoteへ保存して、万が一ブログへアクセスできなくなっても記事が読める状態にして切り戻しを行ったため、前回に比べてスムーズに戻すことができました♪
PHP7.3から7.2への切り戻しについて
まずはTeratermを起動してssh 経由でサーバへ接続します。
次に、root権限でコマンドを実行するため su コマンドを実行します。
$ su –
まず、PHP関連でインストールしたパッケージ一覧を表示します。
# yum list installed | grep php
このリストは後にPHP7.2をインストールする際に必要となります。かなりの行数が出ると思いますが必ず全部出力させ、ログに残してください。Teratermですとログの自動保存ができるので設定すると便利です。
次に、PHP関連のパッケージをすべて削除します。
# yum remove php-*
次に、PHP7.2をインストールします。
# yum install php72
次に、PHP関連でインストールしたパッケージ一覧を表示します。
# yum list installed | grep php
最初に実行したときと比較すると明らかに少ないです。
そこで足りないパッケージをすべてインストールしていきます。
PHP7.2のレポジトリを明示的に指定(PHP7.3のレポジトリは使用しないように指定)します。
# yum –disablerepo=remi-php73 –enablerepo=remi-php72 install xxxxx
xxxxx はパッケージ名が入ります。依存するパッケージはインストールしてくれますが、それでも数十回は実行する必要があると思います。
途中、いくつかのパッケージ で 「xxxxx は利用できません」、というエラーメッセージが出ましたが、PHP7.2では利用できない(PHP7.3で利用できるパッケージ)と判断して飛ばしました。
再度、PHP関連でインストールしたパッケージ一覧を表示します。
可能であれば、WinMergeなどDIFFツールなどで最初に実行した時と比較すると良いです。
# yum list installed | grep php
最後に、HTTPデーモンを再起動します。
俺の場合はCentOS7なので、systemctl コマンドにて行いました。
CentOS6以下の場合はservice コマンドとなります。
# systemctl restart httpd
ブラウザで自分のブログのURLを入力して無事に接続出来れば切り戻し完了です♪
今後について(2019年11月13日更新)
事前にCocoonの公式サイトでPHP7.3の対応状況を調べてから行うようにします。
不明な場合はフォーラムで質問してから行うようにします。
2019年11月13日時点では対応してないと思われますが、いつかは対応してもらえるでしょう。
フリーのテーマなので文句は言えないです。
あと、PHPの更新を行うときはWordpressのバックアップとPHP7.2時点のインストールしたパッケージ一覧(yum list installed | grep php)があるとなお良いと思います。
なお、2019年11月28日にPHP7.4がリリース予定です。
PHP7.3を飛ばして、PHP7.2からPHP7.4へ直接更新することも検討したいと思います。
その後の結末(2022年3月5日更新)
2022年3月になってようやくPHP7.2からPHP7.3へアップデートできました。
Wordpressで使用しているプラグインを必要最小限にしたのが良かったのかもしれません。
ただPHP7.3も2021年12月にセキュリティサポートが終了していたことがわかり、最終的にPHP7.4までアップデートしました。
まとめ
- PHP7.2から7.3へ更新したところブログへアクセスできなくなりました!
- 俺が使っているテーマ(Cocoon)がPHP7.3に対応してないものと思われます!
- PHP7.3から7.2へ切り戻しを行いました!
- 2022年3月現在はPHP7.4へアップデート済みです!