PR

旧バージョンのWordPressとPHPを更新する

スポンサーリンク
スポンサーリンク

旧バージョンのWordPressとPHPを更新する

かなり古いバージョンのWordPressとPHPを最新版に更新したので、その方法をご紹介します。

今回は仕事の依頼で、6年以上未更新のWordPress4.4.1サイトを更新することになりましたが、WordPressだけでなくサーバー側のPHPもバージョンアップが必要になりました。

単にWordPressの更新だけなら簡単でしたが、PHPのバージョン更新や、MySQLデータベースの再作成といったサーバー側の作業もあったので結構大変でした。

途中でヒヤッとした場面もありましたが、無事に更新できてよかったです。

WordPressを古いバージョンのままで放置すると、サイトが表示されなかったり、不正ログインや改ざんなどのセキュリティ被害が発生します。

WordPressは常に最新バージョンに更新して使ってください。

あと、今回のサーバーはWADAXでしたが、PHPのバージョン変更やMySQLデータベースを作成する場合は、利用中のサーバーごとに手順が違うのでよく確認してください。

※ WordPressを更新する前に、必ずバックアップしてください。また、更新に失敗した場合、サイトが表示されない等のリスクがあるので、自力でトラブルを解決できる方のみ行ってください。

スポンサーリンク

WordPressとPHP 更新の手順

今回行ったWordPressとPHPの更新手順は以下の通りです。

  • MySQLデータベースを更新 MySQL5.1 → MySQL5.7
  • PHPを最新版に更新 PHP 5.3.3 → PHP 7.4
  • wp-config.phpを修正
  • WordPressを最新バージョンに更新 WordPress4.4.1 → WordPress6.0.1

MySQLのバージョンが古いと、PHPのバージョンアップができないので、まずデータベースを再作成しました。続いて最新版のWordPressに合わせて、PHPを7.4に更新しています。

あとはWordPress4.4.1を最新版の6.0.1に更新して、プラグインやテーマを更新しました。

旧バージョンのWordPress更新時にエラーが発生した場合は、サーバーのPHPやMySQLデータベースもバージョンアップする必要があります。

このサイトのサーバーはWADAXでした。スペックが古いので新しいプランに切り替えています。

WordPressが更新できない

まずはサイトにログインしてみます。ダッシュボードのWordPressバージョンを見ると、WordPress 4.4.1が稼働していました。

WordPress ダッシュボード

リリースのアーカイブで日付を確認すると、WordPress4.4.1は2016年1月12日となっており、6年半ほど更新されていないようです。

「WordPress 6.0.1 が利用可能です。 今すぐ更新してください。」と表示されているので、バックアップを取って更新しましたが、PHPのバージョンが古いので更新に失敗します。

WordPress 更新失敗

今のサーバーではPHP 5.3.3が稼働しているのですが、最新のWordPress6.0とバージョンが合わないので更新ができず、下記のメッセージが表示されます。

WordPress の自動更新に失敗しました。再度、更新を行ってみてください。
WordPress 6.0.1 は PHP 5.6.20 以降を必要とするため、更新を実行できません。現在稼働しているバージョンは 5.3.3 です。

「WordPress 5.1.13–en_US に自動更新するか、手動でパッケージをダウンロードしてインストールできます。」と表示されていますが、最新バージョンにしないと意味はありません。

WordPressを更新する前に、まずサーバーのPHPをバージョンアップする必要があります。

スポンサーリンク

PHP更新でデータベース接続確立エラーが発生

では、サーバーのPHPを最新の7.4にバージョンアップしてみます。

WADAXでは「マルチドメイン設定」からPHPのバージョンを変更することができます。現在のPHP5.3から、最新のPHP7.4にバージョンアップしました。

PHP バージョン変更

PHPを更新してサイトを表示させると「データベース接続確立エラー」が出ました。このエラー見ると冷や汗が出る・・・(^^;

いろいろ調べてみたところ、このエラーはPHP更新時にデータベース(MySQL)のバージョンが古いと発生するようです。現在のバージョンはMySQL5.1でした。

WADAXの場合、MySQLデータベースのバージョンを途中で変更することはできないので、新しいMySQLデータベースを作成してから、PHPをバージョンアップする必要があります。

MySQLデータベースのバージョン変更

最新のPHP7.4にバージョンアップするため、古いMySQLデータベースを一度エクスポートして、新しいバージョン(MySQL5.7)で作成したデータベースにインポートしました。

MySQL バージョン変更

なお、MySQLのバージョン変更方法はサーバー会社ごとに異なり、この作業はサーバーがWADAXの場合に必要となります。ロリポップ等も新規データベースを作成してバージョンを変更します。

また、使用中でもMySQLバージョンを変更できたり(カゴヤ等)、MySQLの移行ツールを提供しているサーバー(Xserverやさくらインターネット等)もあるので、よく確認してください。

MySQLデータベースのエクスポート

まずは古いデータベースをエクスポートします。「データベース」→「MySQL設定」に進み、管理ツールの「phpMyAdmin」にログインします。

PHPMyAdmin ログイン

データベースを選択して上のタブ「エクスポート」に進み、サーバからデータベースをエクスポートします。

  • エクスポート方法: 簡易 – 最小限のオプションだけ表示
  • フォーマット: SQL
  • エンコーディングへの変換: なし

MySQLデータベース エクスポート

あとは「実行」すると、データベースのエクスポートファイル「●●●●●.sql」が作成されます。

MySQLデータベースを作成

続いて新しいMySQLデータベースを作成します。

コントロールパネルの「MySQL設定」から「新規作成」に進み、MySQLデータベースのバージョンはMySQL5.7を選択、パスワード入力欄にパスワードを入力して、入力確認が良好なら「作成」ボタンをクリックしてください。

MySQLデータベース作成

この時点で最新版のMySQL8.0を選ぶこともできましたが、とりあえず動作することを優先して、既存のMySQL5.7を選択しました。

MySQLデータベースのインポート

最後にエクスポートしたデータベースを、新しいMySQLデータベースにインポートします。

新しく作成したデータベースから、管理ツール「phpMyAdmin」にログインします。

MySQLデータベース

まずはインポート先のデータベースを選択して、上のタブ「インポート」に進み、データベースをインポートします。

アップロードファイルの「参照」から、先ほどエクスポートしたデータベースファイル「●●●●●.sql」を選択します。

MySQLデータベース インポート

その他の項目はそのままで、あとは「実行」すればOKです。これでMySQLデータベースのバージョン変更が完了しました。

スポンサーリンク

wp-config.phpを編集する

WordPressはデータベースの接続情報を「wp-config.php」で管理しています。

今回は新しいMySQLデータベースを作成したので、wp-config.phpに記載されているデータベースのユーザー名やパスワードを変更する必要があります。

wp-config.phpはサーバーにアップされている重要ファイルなので、WordPressの管理画面から編集はできません。

通常はFTP接続用のFTPクライアントソフト(FFFTPなど)を使って、wp-config.phpを編集しますが、ファイルマネージャで編集できるサーバーもあります。

WADAXは「あんしんWPサーバー」のみファイルマネージャーを利用できます。新サーバーは一般の共用サーバーなので、ファイルの編集はFTP接続が必要です。

wp-config.phpはWordPressのルートディレクトリにあります。一般的なサーバーであれば「ドメイン名」→「public_html」内にあるはずです。

wp-config.php編集

wp-config.phpで編集するのは以下の4項目で、「’●●●●●●●●●●●●●●●’」の部分を新たに作成したデータベースの情報に変更します。

  • WordPressのデータベース名
  • MySQLデータベースのユーザー名
  • MySQLデータベースのパスワード
  • MySQLのホスト名
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘●●●●●●●●●●●●●●●’);

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘●●●●●●●●●●●●●●●’);

/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘●●●●●●●●●●●●●●●’);

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘●●●●●●●●’);

WADAXではMySQLのバージョンごとにホスト名とポート番号を指定する必要があるので注意してください。MySQL5.7の場合は「127.0.0.1:3317」となります。

PHP7.4にバージョンアップするとエラーが出る

では、サーバーのPHPを5.3.3から最新の7.4にバージョンアップしてみます。

サイトを表示させると「データベース接続確立エラー」は出なくなりましたが、今度はサイトのヘッダー部分に以下のエラーが表示されました。

PHPバージョン変更 エラー

このエラーはコードがPHP7.0以降に対応していない場合に発生します。

エラー文をDeepLで翻訳すると「description_walker の宣言は Walker_Nav_Menu と互換性がある必要があります。」と出ました。

Warning: Declaration of description_walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /home/●●●●●/public_html/wordpress/wp-content/themes/●●●●●/functions.php on line 47

エラー文の最後を見ると「functions.php on line 47」となっているので、functions.phpを修正する必要があります。

該当の47行目にエラーの原因となるコード文 function start_el(&$output, $item, $depth, $args) があります。

/*	custom walker for the navigation
/*-------------------------------------------*/
class description_walker extends Walker_Nav_Menu
{
      function start_el(&$output, $item, $depth, $args)
      {
           global $wp_query;

以下の通り function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) に修正します。

/*	custom walker for the navigation
/*-------------------------------------------*/
class description_walker extends Walker_Nav_Menu
{
      function start_el(&$output, $item, $depth = 0, $args =  array(), $id = 0)
      {
           global $wp_query;

これでサイト上部のエラー表示が消えました。

スポンサーリンク

WordPress 最新バージョンに更新

これでようやく最新版のWordPressに更新する準備が整いました。

あとはいつもの手順で、最新バージョンのWordPressに更新します。

WordPress更新

続いてデータベースを最新バージョンに更新します。

WordPress データベース更新

最新バージョンのWordPress6.0.1に更新完了です。

WordPress 最新バージョン

今回はサーバーのプランも変更したので、ネームサーバー切り替え前に新サーバー上のサイト動作確認を行いました。

参考記事 hostsファイルを編集してサーバー移行時の動作確認を行う

WordPress更新でセキュリティ対策

以上、WordPressとPHPを最新バージョンに更新するまでの流れをご紹介しました。更新作業を忘れないように、備忘録としてこの記事を作成しておきます。

WordPressは、新機能の追加や細かい不具合を修正するため、常にバージョンアップしています。

また、WordPressはCMSの世界シェア1位で利用者が多く、脆弱性を突いた攻撃を受けやすいので、セキュリティ対策として常に最新版のWordPressに更新する必要があります。

WordPressを更新せず、古いバージョンのままで放置すると、サイト全体に不具合が生じたり、攻撃を受けて不正ログインや改ざんなどの被害が発生します。

WordPressは常に最新バージョンを使うようにしてください。

タイトルとURLをコピーしました