ソニーペイメントサービスの2つの決済モジュール

アップグレードの重要性とその方法

WordPress でホームページを運用するには、メンテナンスというランニングコストがかかるという事を、多くのユーザーが認識するようになってきました。とはいえ、インストールしたまま放置しているサイトもまだまだ少なくありません。

ここでいうメンテナンスとは、WordPress や プラグイン、PHP などの更新作業のことを指しています。こういった作業は定期的に行う必要があり、自分でできない場合(特にECサイトのような機会損失というリスクを冒したくない場合)は業者にアウトソーシングするということになります。

ここでは、運用に必要なこのアップグレード(更新作業)の重要性と方法について、Welcart を利用したECサイトを前提に解説したいと思います。  

アップグレードの重要性

  WordPress は年に2から3回のメジャーアップデートがあります。また、バグや脆弱性の修正があるたびにマイナーアップデートが行われます。この内メジャーアップデートでは主に新機能の追加などが行われており、通常は手動でアップグレードを実行することになります。マイナーアップデートは自動でバージョンアップされますので特に何かを行う必要はありません。ECサイトにとって怖いのはセキュリティーホールですので、このマイナーバージョンの自動アップデートはとてもありがたいものです。

重要な修正はマイナーアップデートで自動更新されるので、現状の機能に満足していればメジャーアップはしなくてもよさそうに思えますが、周りの環境が変わっていく中、古いバージョンを使い続けるとことはできません。

  Welcart をはじめ各種プラグインのバージョンアップは不定期で、WordPress 本体のようにメジャーとマイナーに分かれていないのが実情です。WordPress 5.8.1 がリリースされると同時に、同じ修正を行った5.7.3がリリースされるといった過去のバージョンの修正リリースはプラグインの場合ほとんど行われていません。つまり Welcart 1.9.5 を利用している環境に Welcart 2.3.1  の修正を実装したいと思った場合、メジャーアップも含めて2.3.1にアップグレードしなくてはいけないということになります。このアップデートの差分が大きくなればなるほどリスクが高くなります。アップグレード作業をまめに行っておけば、たとえ不具合が出たとしても軽症で済みます。

下記のグラフは2021年現在のWelcartの利用バージョンの分布です。残念ながら未だ脆弱性のあるバージョンを使用している危険なサイトが多く存在しているようです。バージョン1.9以上であれば、最新版(2.3)に更新してもさほど問題は起こらないはずです。早急にメンテナンスを行っていただき、バージョン2.3以降をご利用いただきたいと思います。

Welcartの利用バージョンの分布(2021現時点)

  Theme(テーマ)はアップデートできるものとできないものがあります。実は、次に説明するPHPのアップデートの影響を受ける可能性が高いのがこのテーマです。長年サイトを運用していると、利用しているサーバーのPHPがアップデートされ、否が応でも新しいPHPの環境で運用しなくてはいけなくなります。WordPress やプラグインはアップデートすれば何とか対応できますが、子テーマ展開していない環境では必ずと言っていいほど不具合が発生します。 テーマはサイトごとに様々なカスタマイズが施され、スタイルシートやテンプレートが編集されていることが多いかと思います。それが子テーマであれば親テーマを更新することで不具合を少なくすることができるでしょう。子テーマ展開していない場合は、使用しているテーマ内のプログラムをせっせと修正しなくてはいけなくなり、プログラマーのスキルが必要となります。テーマは子テーマ展開し、親テーマはまめに更新することが必要です。

  PHP は WordPress と比べて頻度は低いですが、バージョン3、4、5、7、8と更新しています。WordPress 本体は既にPHP8に対応していますが、これに対応完了しているプラグインはまだまだ多くありません。Welcart も今のところPHP7.4までの対応となっています。 PHPがアップデートされると、今まで使用できていたプログラムが一部使用できなくなり修正を余儀なくされます。WordPress 本体やプラグインはアップグレードすることでそういった不具合を回避できますが、厄介なのはテーマです。子テーマ展開は非常に重要な運用方法となります。

  これらのアップデートは、新機能の追加、処理スピードの改善、バグや脆弱性の修正のために行われるもので、特に個人情報を扱うECサイトとしては古いバージョンのまま運用を続けることはとても危険です。故に、アップデートを伴う保守(メンテナンス)を定期的に行うことが非常に重要なサイト運営の一つであるという事を認識しなくてはいけません。  

アップグレードの方法

作業手順

WordPress のサイトをアップデートする場合の順番にはいろいろ考え方があるかと思いますが、弊社では以下の手順でアップデート作業を行っています。

アップデート作業手順

  1. メンテナンスモードの導入
  2. バックアップ
  3. 全プラグインの停止
  4. WordPress の更新
  5. プラグインの更新と有効化
  6. テーマの更新
  7. PHP の更新
  8. テーマの修正

1. メンテナンスモードの導入

公開中のECサイトでは、クレジット決済でエラーが出てしまわないように、サイトをメンテナンスモードにして作業を行うのが良いかと思います。データベースの整合性を取るためにも、バックアップを取る前にメンテナンスモードにしておくべきです。

メンテナンスモード・プラグインはいろいろありますが、弊社では下記のプラグインを使用しています。

WP Maintenance Mode 作者: Designmodo

2. バックアップ

アップデート作業中に起こる不測の事態に備えて、ファイルとデータベースのバックアップは必ず取るようにします。弊社では、下記のプラグインを使用してプラグインとテーマのファイル一式とデータベースをバックアップしています。メディアファイルのバックアップも取れますが、バックアップが大きくなり過ぎますので、アップデート作業ではプラグインとテーマファイルがあれば十分かと思います。問題が発生して元に戻したい場合は「復元」をクリックするだけです。

UpdraftPlus 作者: UpdraftPlus.Com, DavidAnderson

3. 全プラグインの停止

稀に、プラグインの動作不良により、WordPress のアップデートが失敗する場合があります。慎重に更新作業を行いたい場合は、WordPress を更新する前に全てのプラグインを停止しておきます。

管理画面「プラグイン」画面に入り、メンテナンスモード以外の全てのプラグインにチェックを入れて、一括操作から「無効化」を選択して適用をクリックします。  

4. WordPress の更新

管理画面「ダッシュボード -更新-」画面に入り、WordPressの日本語版をインストールします。少し時間がかかる場合がありますが、1分以上画面が切り替わらない場合、または画面が真っ白のままになっている場合はインストールが途中で止まっている可能性があります。このような場合の対処法は次の通りです。

  • もう一度管理画面のダッシュボードを表示してみて、問題なく表示される場合
    15分ほど待って、もう一度「更新」作業を行ってみてください。

  • ダッシュボードを表示しようとしても真っ白で表示できない場合
    できればサーバーのエラーログを確認してみてください。WordPress 本体のファイルの配置に失敗している可能性がありますので、FTPを使ってWordPress のファイルを直接アップロードすることで改善する場合があります。

改善しても動作が不安定な場合は、一旦バックアップから復元して、最初からやり直してみると良いです。  

5. プラグインの更新と有効化

プラグインの更新では、ファイルの転送やサーバー上での解凍に失敗する場合があります。ですので、更新のページから一括で更新してしまうのではなく、プラグインページから一つずつ更新し有効化して、どのプラグインがエラーを出すかを確認しながらアップデート作業を行うのが良いかと思います。
一つずつ更新を行いエラーになった場合は、エラーメッセージと共にプラグインの表示が赤くなります。このような場合の対処法には次のようなことが考えられます。

  • 書き込みができない
    ディレクトリ等に書き込み権限がないために更新ができない状態です。FTPでアクセスしパーミッションを変更して更新するか、そのプラグインのディレクトリを削除してしまい新規でインストールする方法もあります。
  • インストール中
    なぜかインストール中、更新中と出てアップデートできない場合は、FTPでファイルを確認し .maintenance というファイルを削除し、もう一度更新してみます。

  • 最新版です
    更新をしたのに「最新版です」のようなメッセージの場合は、ファイルが全部そろっていないなど何らかの障害が発生している可能性があります。再表示するとそのプラグインがなくなっている場合もあります。このような場合は、FTPでそのプラグインのディレクトリを削除し、新規でインストールした方が安全です。

  • 更新はできるが有効化ができない、もしくは有効化でエラーが出る場合
    この場合は簡単に改善できないかもしれません。まずはどの様なエラーなのかサーバーのエラーログを確認してみる必要があります。よくあるのは、PHPのバージョンが要件にあっていない場合があるので注意が必要です。Welcart2.3.4 ではPHP7.4 が利用できますがPHP8にはまだ対応していません。
    要件を満たしているにもかかわらずプラグインにエラーが出ている場合は、開発元に状況を報告して直してもらわなくてはいけません。自分で修正は行わない方が良いです。

古い記事では、プラグインをアップデートする際には、バックアップ用として旧プラグインのフォルダ名を変更して、新規でインストールするといった説明をしているものもありますが、フォルダ名を変更しただけではWordPressに認識されてしまうのであまり良くないと思います。ダウンロードして保管するなどして、フォルダ名の違う同じプラグインが存在しないようにすると良いでしょう。手順2でとったバックアップで、そのプラグインのみを取り出すことも可能ですので、フォルダ名の変更は不要です。  

6. テーマの更新

利用しているテーマが親テーマの場合、「外観」を確認して更新通知が出ているかを確認します。通知が出ていれば「更新」を押してアップデートしますが、ここで注意が必要です。有効化しているテーマは更新しないようにしてください。親テーマを改変(カスタマイズ)している場合、この「更新」を行うとカスタマイズが全て上書きされてしまい無くなってしまいます。
自分でカスタマイズしてしまっている親テーマ(子テーマの場合は問題ない)で新しいバージョンがリリースされている場合は、本来は自分でその修正点を組み込んでいかなくては行けないので、非常に難しいメンテナンスとなります。テーマの修正はスキルがないと難しいので、できるだけ子テーマ展開してカスタマイズを行うよう心掛けると良いでしょう。

テーマは更新されず長い間使い続けることが多いので、PHPのバージョンが上がるとテーマ内のプログラムにエラーが発生します。どの程度のエラーが発生するかは、テーマ内のプログラムの大きさやPHPのアップデート具合(いくつ上げるか)などで大きく変わってくるかと思います。機能的なカスタマイズもテーマに施されていることが多いので、この辺りが最もコストのかかるところとなります。  

7. PHPの更新

PHPの更新はご利用のサーバーでの更新となります。各サーバー会社によってどの様に更新するのか、またどのバージョンに変更できるかが異なりますので、サーバーのコントロールパネルを確認してください。変更できる場合は元に戻すことも可能な場合が多いので、まずはアップデートしてどのようになるか確認してみると良いかと思います。

何度も申し上げますが、Welcartは現在(2021年11月)PHP8には対応していません。Welcart2.3.4 とPHP7.4 が今のところベストな組み合わせです。PHP8対応は2022年春頃対応の予定です。  

8. テーマの修正

PHPをアップデートするとテーマでいろいろエラーが出てくるかと思います。サーバーのエラーログを確認できるようでしたら確認してみてください。サーバーによってはリアルタイムにエラーログを確認できないところもあるので、その様な時はデバッグモードにしてエラーを表示させて確認することも可能です。この場合エラーがフロントにも表示されてしまいますので注意が必要です。エラーメッセージが確認できたら一つずつ潰していく作業となります。プログラミングのスキルがないと難しいでしょう。

また、PHPをアップデートすると、制限のかかっていたプラグインの更新通知が再び出てくる可能性がありますので、新しいPHPのバージョン下で再度プラグインの更新通知を確認してみましょう。

 

全ての作業が完了したら、最後にメンテナンスモードを解除するのを忘れないようにしましょう。

  この様にアップグレードというメンテナンスは、うまく行けば「更新」をクリックするだけで簡単に終わりもすれば、一旦不具合が出た場合はとても手間のかかる作業となります。そして更新しない期間が長ければ長いほどたくさんの不具合が発生し、それを改善するのが難しくなります。ですので、アップグレードはまめに行うようにして、不具合が出た場合はその都度修正して運用していくのが長く使い続ける秘訣だと思います。

Welcart は年に4~6回程度、専用の拡張プラグインは年に1~3回程度のアップデートがあります。Welcart.com のリリース情報では、新しいバージョンがリリースされる度にどのような変更があったのかをお知らせしています。またメルマガでもお知らせしていますので、メンテナンスの参考にしていただけたらと思います。