WordPress6.0.2とPHP7.4.28へのバージョンアップ(データベース接続確率エラーの解消)
このブログのWordPress、PHP、MySQLのバージョンを最新化しました。
ブログを立ち上げて以降、WordPressのバージョンはちまちまあげていたのですが、PHPはまったくもってバージョンアップしていませんでした。
そんな中、仕事でWordPressのバージョンアップをする担当になってしまいましたので、練習もかねてこのブログのバージョンアップをやってみました。
バージョンアップの内容
前提として、このブログはStarServerで運営しています。バージョンアップ作業もSterServerが用意してくれているツールを使って移行しました。
対象 | 移行前Ver | 移行後Ver |
WordPress | 5.7.7 | 6.0.2 |
PHP | 5.6.40 | 7.4.28 |
MySQL | 5.0 | 5.7 |
WordPressのバージョンはダッシュボードで6.0.2(2022/9/25時点では最新)に更新可能とのメッセージが表示されていたのでそのまま6.0.2にしました。
PHPについては、7.2.34がSterServerでは推奨となっていたので7.2.34に。
MySQLのバージョンアップはするつもりはありませんでしたが、PHPのバージョンをあげたことによって、「データベース接続確立エラー」が発生してしまいました。いろいろ調べてみると、MySQLのバージョンアップによって解消できそうでしたので、合わせて実施しました。
バージョンアップの流れ
- WordPressファイルとデータベースのバックアップ
- WordPressを6.0.2にバージョンアップ
- phpを7.4.28にバージョンアップしたがWordPressは「データベース接続確立エラー」で開けなくなる。(php7.3.33までは問題なく動作することを確認)
- MySQLを5.7にバージョンアップしたが、WordPressは「データベース接続確立エラー」のまま。
- wp-config.phpのホスト名を修正することでバージョンアップ作業完了
WordPressのバージョンアップ自体は問題なく完了できましたが、PHPのバージョンアップでつまずきました。根本的な原因追及までやりませんでしたが、MySQLのバージョンを5.7にすることでエラーが解消しました。
また、SterServerでデーターベース移行ツールでMySQLのバージョンをあげると、MySQLのホスト名が変わってしまうので、wp-config.phpの設定も変更する必要があります。
では、各バージョンアップの作業について細かく書いていきます。
サイト全体のバックアップ
バージョンアップ前に忘れていけないのはバックアップです。バージョンアップ作業は、サイトを壊す可能性もあります。もともとバックアップをとっていませんでしたので、プラグイン(BackWPup)を使ってバックアップを行いました。私はソフトウェアエンジニアという仕事がら、バックアップの重要性を理解しているつもりですので、こんな感じでバックアップ設定しました。
- 毎月1日の夜中にバックアップ(定期バックアップ)
- バックアップは3世代(ストレージの枯渇対策。直近3か月を保持。)
また、今回はバージョンアップ前に手動でバックアップを1回実施し、ローカルにもダウンロードすることにしました。(バージョンアップで壊れても戻せるようにするためです。)
WordPressを6.0.2へバージョンアップ
wordPressの管理画面から問題なく完了しました。
phpを7.4.28にバージョンアップ
phpのバージョンはSterServerのサーバー管理ツールで行いました。
phpのバージョンアップ後、サイトアクセスすると「データベース接続確立エラー」が表示されました。
いろいろ調べてみると、MySQLをごにょごにょすれば解決できそうな情報がたくさんでてきましたが、バージョンアップすることで解決する情報もありましたので、MySQLをバージョンアップすることにしました。
MySQLを5.7にバージョンアップ
StarServerのデータベース移行ツールで移行しました。公式サイトに移行ツールの説明があります。
https://www.star.ne.jp/manual/homepage_mysql_migration_tool.php#mysql_migration_link
移行に関する注意は制約がいろいろありますが、大事なのは以下2点ですね。
- 移行を完全に確定させると、バージョンアップ前に戻しができなくなる。
- バージョンアップするとホスト名が変更になる。移行ツール画面で表示される移行前後のホスト名をメモしておくと後述のホスト名変更作業で楽になります。
データベース移行ツール(StarServer公式サイト)
https://www.star.ne.jp/manual/homepage_mysql_migration_tool.php#mysql_migration_link
データベース接続確立エラーの解消
この時点でwordpress6.0.2、php7.4.28、MySQL5.7の状態でしたが、まだデータベース接続確立エラーが解消されませんでした。
ここで失念していたのは、MySQL5.7にバージョンアップすることで、ホスト名が変わることです。
これは、wp-config.phpを書き換えることで対応ができました。
※wp-config.phpの書き換え内容
/** MySQL のホスト名 */
define('DB_HOST', '変更前のホスト名'); ←ここのホスト名を書き換える。
↓
/** MySQL のホスト名 */
define('DB_HOST', '変更後のホスト名');
これで移行作業完了!
WordPressの仕組みが詳しくないないので、何か作業しようとすると都度調べながらになってしまいますね・・・。
今回は「phpとMySQLの互換性」と「StarServerの移行ツールによるホスト名変更」がつまずきポイントのようでした。StarServer側でバージョンアップ作業が簡単にできるようになっていたのはありがたかったです。これを自前でコマンドたたきながらとかになると、もっとつまづいていたかもしれません。
ひとまずこのブログ環境は一通り最新化できましたので一安心です。
これからはセキュリティ対策も兼ねて定期的にバージョンアップは実施していきたいですね。(すぐ忘れる可能性大ですが(・ω・))