WordPressプラグイン EWWW Image Optimizer に不具合 DBエラーの原因に?

このエントリーをはてなブックマークに追加

最近仕事で制作したWordPressサイトが急に重くなり、ここ数日いろいろな対策をしていました。
こういった場合よくあるのが重たい処理を行うプラグインを導入しているというケースがあるのですが、”EWWW Image Optimizer”というプラグインが原因の一つだったようです。

EWWW Image Optimizerとは

まずは簡単にEWWW Image Optimizerについての説明を。
このプラグインは、WordPressに投稿された画像を自動で最適化し、容量を小さくしてくれるプラグインです。
また投稿画像だけでなく、テーマの中にある画像なども見つけ出して最適化してくれるので、サイトの表示速度を改善するときに適しているプラグインです。(それの不具合でサイトの表示が遅くなるという状況ですが…)

フォーラムに投稿された不具合の内容

EWWW Image Optimizerをオフにしたらサイトの表示速度が少し改善されたのでそのことを友人に話したところ、WordPressのフォーラムでこのプラグインに関する投稿を見つけてくれました。

EWWW Image Optimizer [resolved] Database Error (8 posts)

下の方に制作者の方から原因と解決法が提示されています。
原因としては、WordPressがアップデートに伴い、データベースの文字セットがutf8からutf8mb4に変更されたことによるバグだそうです。

解決方法は、MySQLの中から、
KEY path_image_size (path(255),image_size)
ここの255を191に変更します。
KEY path_image_size (path(191),image_size)

phpMyAdminから修正

phpMyAdminから修正する場合は、以下の手順で修正を行います。

  • phpMyAdminにログイン
  • 左のメニューからWordPressで使用しているデータベースを選択
  • 同じく左のメニューから”wp_ewwwio_images”を見つけて選択
  • 「インデックスサイズ」の項目から”path_image_size”を見つける
  • サイズが”255″になっているか確認し、255の場合は「操作」の中にある編集アイコン(鉛筆マーク)をクリック
  • “255”を”191″に変更し、「保存する」ボタンをクリック

使用状況によっては似たようなテーブル名が複数作られていて、他の名前のテーブルにインデックスサイズの設定が入っている場合があります。
僕の場合は”wp_ewwwio_images”, “wp_2_ewwwio_images”, “wp_3_ewwwio_images”の3つのテーブルがあり、”wp_3_ewwwio_images”に入っていました。

終わりに

次期バージョンでは修正するとのことですので、今大きな問題が起きていなければ変更する必要はないかと思います。
そして、トラブルが起きているWordPressサイトはこれで少し改善されたものの他にも原因があるようで、WordPressの最適化はなかなか難しいものだなと…。
サーバー側の知識があまりないのでもっと勉強していきたいと思います。それでは。

お問い合わせはこちら