Random Circuits
Experiment log

WordPressのCSVインポートで「重大なエラー」が発生。古いプラグインを調査した記録

CSVを読み込むだけでWordPressが重大なエラー

長く運用されているWordPressサイトでは、導入当時から使い続けているプラグインが残っていることがあります。

今回相談されたのは、メールマガジン配信用のプラグインでした。

ユーザー一覧を作るためCSVファイルをインポートすると、

「このWebサイトに重大なエラーが発生しました」

と表示されます。

普段のサイト表示には問題ありません。

メルマガ機能もこれまで使用していました。

CSVインポートという特定の操作だけでエラーになります。

こういうケースで怖いのは、

本番サイトで何度も試して状況を悪化させること

です。

最初にテスト環境で再現する

そこで最初に行ったのが、本番環境のコピーを使ったテストです。

WordPress本体、テーマ、プラグイン、データベースの状態をできるだけ本番に近づけ、そこで同じCSVをインポートします。

結果は同じ。

CSVのインポート時にエラーを再現できました。

トラブル調査では、

再現できる環境を作れるかどうか

がかなり重要です。

再現できれば、プラグインを止めたりPHPの状態を確認したりしても本番サイトへの影響を気にせず調べられます。

古いプラグインは現在のWordPressと合わないことがある

今回使用されていたのは、かなり以前から存在するメール配信系プラグインです。

WordPressは長い間に、

などが変化しています。

プラグイン側がそれらに追従していない場合、

「昔は普通に動いていた機能が、ある日突然使えなくなる」

ことがあります。

特に注意したいのがPHPです。

PHP7系では動いていたコードがPHP8系ではエラーになる、といったことも珍しくありません。

「メールが送れるか」も別に確認する

CSVインポートの問題と並行して、実際のメール送信機能も確認しました。

テスト用のメールアドレスを登録して配信。

こちらについては正常にメールが届きました。

つまり、

CSVインポートでエラーになることと、メールそのものを送信できないことは別問題

だと分かります。

これも重要な切り分けです。

「メルマガプラグインでエラーが出る」と聞くとプラグイン全部が壊れているように思えますが、実際には特定機能だけの問題かもしれません。

サーバー時刻のズレも見つかった

調査中、別の気になる点も見つかりました。

メールや管理画面に表示される時間と実際の時間が合っていません。

WordPress側のタイムゾーンだけではなく、サーバー側で扱っている時刻も確認する必要があります。

メルマガシステムでは、

など、時刻を基準にした処理が多くあります。

数時間ずれているだけでも、後からログを調査するときに混乱します。

CSVインポートエラーの直接原因とは限りませんが、

トラブル調査中に見つけた異常は別件として記録しておく

ことが大切です。

「直す」以外に「今後も使うべきか」を考える

古いプラグインで問題が発生した場合、

コードを修正して動くようにすることはできるかもしれません。

ただし、それとは別に、

「このプラグインを今後も使い続けるべきか」

も考える必要があります。

一箇所を直しても、次のWordPressやPHPアップデートで別の箇所が壊れる可能性があります。

特にメール配信は重要な機能です。

個人情報であるメールアドレスも扱います。

長期間メンテナンスされていない仕組みを延命するより、新しいサービスやプラグインへ移行した方が安全なケースもあります。

本番でエラーが出たら、まずコピー環境を作る

今回のようなトラブルで最も重要だったのは、

本番サイトを直接いじらなかったこと

だと思います。

実際の業務サイトで、

「これをやると重大なエラーになる」

ことが分かっている操作を何度も試す必要はありません。

テスト環境で再現し、

  1. エラーを確認
  2. 原因範囲を絞る
  3. 関連機能を個別にテスト
  4. 本番への影響を判断

という順番で調べた方が安全です。

古くから動いているWordPressほど、

「昨日まで動いていたから大丈夫」ではなく、現在の環境とまだ適合しているか

を時々確認する必要がありそうです。