Support » Plugin: Organize Media Library by Folders » メディアライブラリフォルダで致命的エラー!削除も不能

  • Resolved saton

    (@saton)


    「Organize Media Library by Folders」プラグインが関係しての問題が何点か発生して困っています。
    助けてください。

    長くなりますが、問題点は以下に順を追って説明いたします。

    「Organize Media Library by Folders」プラグインには大変お世話になり、ありがたく活用させていただいております。
    先月にサイトをWordPress化した際、ギャラリーサイトへたくさんの過去画像をアップロードした際、思い通りにフォルダ整理が出来て大変助かりました。

    ところが、ここ2~3週間前頃からでしょうか。
    WordPress管理画面のメディア-ライブラリ画面に入るためにクリックしてからの応答時間が長く感じるようになりました。

    と同時に、画像を複数(7枚前後以上)選択して「フォルダ移動」や「削除」することができなくなりました。
    選択数を少なくしたり、最悪は1枚1枚削除や移動は出来たので、それでなんとかやりくりしていました。

    さらに、その頃より「debug.log」が膨大になる(最高で80GBほどになったことも)ようになりました。

    膨大になるときの内容は大多数が、

    PHP Warning:  feof() expects parameter 1 to be resource, bool given in・・・・/wp-content/plugins/dynamic-watermark/protect_images/security-logic.php on line 43
    PHP Warning:  fread() expects parameter 1 to be resource, bool given in・・・・/wp-content/plugins/dynamic-watermark/protect_images/security-logic.php on line 44

    の繰り返しでした。
    そのときはてっきり問題は別の画像用プラグイン「Dynamic Watermark」に問題があるものとばかりおもっていました。

    対処としては、「Dynamic Watermark」を一度削除した後に再インストールして有効化すると、しばらくは「debug.log」の発生がなかったり、あっても数KBレベルで済む期間がとれました。
    でも、何かの拍子にまたGB単位で増えるようになります。

    そのうちPHPのメモリや接続タイムアウトに関すると思われるエラーが毎回のように表示され、WordPress管理画面「メディア-ライブラリ」でのメディア操作ができなくなってしまいました。
    エラー内容は、
    ・PHP Fatal error: Allowed memory size of 134217728 bytes exhausted・・・
    ・PHP Fatal error: Maximum execution time of 120 seconds exceeded・・・
    ・PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)
    ・PHP Warning: mysqli_query(): MySQL server has gone away・・・
    ・PHP Warning: mysqli_query(): Error reading result set’s header・・・

    そして先日、WordPressから「〇〇サイトで技術的な問題が発生しています」というメールも数通受け取っています。
    内容は次のとおりです。

    『
    WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
    今回の場合、WordPress がプラグイン Organize Media Library by Folders でエラーを捉えました。 
    まずはじめに、ご自分のサイト (https://〇〇〇〇/) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ (https://〇〇〇〇/wp-admin/upload.php) を開き、同様に問題がないか確認してください。
    この問題をさらに調査するにはサーバーホストに連絡してみてください。
    
    もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
    (リカバリーリンクあり)
    サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。ですが、心配なく。有効期限後にこのエラーが再度発生すれば新しいリンクをお送りします。
    
    この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
    WordPress バーション5.4.2
    現在のテーマ: diver_child (バージョン )
    現在のプラグイン: Organize Media Library by Folders (バージョン 6.52)
    PHP バージョン7.3.17
    
    エラー詳細
    ===============
    エラータイプ E_ERROR が /・・・〇〇〇〇/wp-content/plugins/organize-media-library/lib/class-organizemedialibrary.php ファイルの 267 行目で発生しました。 エラーメッセージ: Maximum execution time of 120 seconds exceeded
    』

    これを受けてホストサーバであるロリポップへも問い合わせを行いました。
    PHPの設定についてやmysqlについてのアドバイスもいただきましたが、
    Maximum execution time~のエラーについては、
    『「organize-media-library」の影響により、該当のエラーが発生しているようでございました。
    このような場合、該当のプラグインを停止するか、
    プラグインのデータが保存されているフォルダを無効化することにより、エラーが解消するかと思います。』

    とのことでした。

    直感的に、本番サイトでこの作業をすることが怖くでできなかったので、バックアップからローカル環境へ復元させて確認作業をしようと思いました。

    ですが、バックアップはともかく、復元にてこずりました。
    色々やって、最終的にはDuplicatorメインで復元し、UpdraftPlusのバックアップからupload画像を取り込み形でなんとか動作するローカル環境がつくれました。

    1)そのままのセッティングでWordPress管理画面「メディア-ライブラリ」でのメディア操作ができるかどうか確認
    結果:表示に時間はかかりましたが、表示ページは最後まで表示され、フォルダ絞り込み操作もできました。

    2)「organize-media-library」を無効化してみました。
    結果:WordPress管理画面「メディア-ライブラリ」上の操作が明らかに高速になりました。

    3)再有効化
    結果:明らかに読み込みが遅くなりました。が開ききりました。
    実は、以前に無効→有効操作で「作成フォルダがリストに表示されなくなった」経験があり心配していたのですが大丈夫でした。

    4)「organize-media-library」をWordPress管理画面から削除
    結果:削除が出来ませんでした。

    プラグイン管理画面上部には
    『削除に失敗しました:サイトに重大なエラーがありました。WordPressでのデバッグをさらに詳しく見る。』
    の表示です。

    そのときのdebug.logでは

    [15-Jul-2020 06:07:06 UTC] PHP Warning:  array_map(): Expected parameter 2 to be an array, null given in X:\xampp\htdocs\〇〇〇〇\wp-includes\taxonomy.php on line 1867
    [15-Jul-2020 06:07:06 UTC] PHP Warning:  count(): Parameter must be an array or an object that implements Countable in X:\xampp\htdocs\〇〇〇〇\wp-includes\taxonomy.php on line 1859
    [15-Jul-2020 06:07:06 UTC] PHP Warning:  array_diff(): Expected parameter 1 to be an array, object given in X:\xampp\htdocs\〇〇〇〇\wp-includes\taxonomy.php on line 1862
    [15-Jul-2020 06:07:06 UTC] PHP Fatal error:  Maximum execution time of 120 seconds exceeded in X:\xampp\htdocs\〇〇〇〇\wp-includes\taxonomy.php on line 1862

    が連続していました。

    5)「organize-media-library」を強制削除
    WP管理画面から削除が出来ないので、一旦ローカルサーバー(xampp)をstopして、
    wp-content/plugins内の「organize-media-library」フォルダを別の場所へ退避させて、サーバー再起動しローカルサイトを起動させると、起動しました。
    管理画面でも普通に操作できた(ように感じました)のでプラグインを再インストールしてみました。

    6)「organize-media-library」を再有効化
    再インストールはできた(ように感じた)のですが、それを有効化しようとボタンを押したら、そこから管理画面上部へのエラー表示のオンパレードでした。
    そのあたりでのdebug.log内容を貼っておきます。

    『
    [15-Jul-2020 06:26:46 UTC] PHP Warning:  mysqli_query(): MySQL server has gone away in X:\xampp\htdocs\〇〇〇〇\wp-includes\wp-db.php on line 2024
    [15-Jul-2020 06:26:46 UTC] PHP Warning:  mysqli_query(): Error reading result set's header in X:\xampp\htdocs\〇〇〇〇\wp-includes\wp-db.php on line 2024
    [15-Jul-2020 06:26:46 UTC] PHP Warning:  mysqli_query(): MySQL server has gone away in X:\xampp\htdocs\〇〇〇〇\wp-includes\wp-db.php on line 2024
    [15-Jul-2020 06:26:46 UTC] PHP Warning:  mysqli_query(): Error reading result set's header in X:\xampp\htdocs\〇〇〇〇\wp-includes\wp-db.php on line 2024
    [15-Jul-2020 06:26:46 UTC] WordPress データベースエラー: MySQL server has gone away for query INSERT INTO <code>wpph_usermeta</code> (<code>user_id</code>, <code>meta_key</code>, <code>meta_value</code>) VALUES (1, 'wpph_organizemedialibrary', 'a:4:{s:4:\"dirs\";s:1883553:\"{\"18450\":\"E:/xampp/htdocs/backup01serverm/photogallery/wp-content/uploads\\ps_auto_sitemap\",\"18449\":\"E:/xampp/htdocs/backup01serverm/photogallery/wp-content/uploads\\cache\\remote\\s3-amazonaws-com\",\"18448\":\"E:/xampp/htdocs/backup01serverm/photogallery/wp-content/uploads\\cache\\remote\",\"18447\":\"E:/xampp/htd
     ・・・以下、延々と同様なのが3MB分ほど続きます・・・・
    [15-Jul-2020 06:30:58 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at X:\xampp\htdocs\〇〇〇〇\wp-includes\wp-db.php:1491) in X:\xampp\htdocs\〇〇〇〇\wp-admin\includes\misc.php on line 1282
    [15-Jul-2020 06:30:58 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at X:\xampp\htdocs\〇〇〇〇\wp-includes\wp-db.php:1491) in X:\xampp\htdocs\〇〇〇〇\wp-admin\admin-header.php on line 9
    』 

    こんな感じでdebug.log内容と同様のエラー内容が、管理画面上部が埋め尽くされ、
    その上管理用サイドメニューも表示されないのでお手上げ状態になりました。
    ちなみに、その時点で通常サイト表示と操作は問題なかったです。

    ログインした管理画面だけはめちゃくちゃでした。

    7)データベースのみバックアップから復元
    その後、データベースのみ別のバックアップをインポートして管理画面を立ち上げてみると、問題なく操作できました。

    8)テーマとプラグインを無効化
    テーマを「Diver」からデフォルトテーマ「Twenty Twenty」へ切り替え、プラグインは全て無効化しました。

    【使用していた全プラグイン】
    ・BackWPup:バージョン 3.7.1
    ・Classic Editor:バージョン 1.5
    ・Duplicator:バージョン 1.3.36
    ・Dynamic Watermark:バージョン 1.2.0
    ・Extend Media Upload:バージョン 2.00
    ・FooBox Image Lightbox:バージョン 2.7.11
    ・FooGallery:バージョン 1.9.25
    ・Google XML Sitemaps:バージョン 4.1.0
    ・Invisible reCaptcha:バージョン 1.2.3
    ・Organize Media Library by Folders:バージョン 6.52
    ・PS Auto Sitemap:バージョン 1.1.9:有効
    ・SiteGuard WP Plugin:バージョン 1.5.0
    ・UpdraftPlus – バックアップ/復元:バージョン 1.16.26
    ・WebSub/PubSubHubbub:バージョン 3.0.3

    その後、問題の「Organize Media Library by Folders」のみ削除を試みましたが、上記同様に管理画面上からは削除できません。
    仕方なく、こんどは強制削除はせず、そのまま再有効化を試みましたが、これも上記同様のエラー連発で管理画面操作不能になりました。

    まだ本番サイトでは何もためしていません。
    このままでは「Organize Media Library by Folders」プラグインの操作は怖くてできません。
    でも何とかしないとWordPress管理画面のメディア-ライブラリ上の操作が出来ません。

    解決法などアドバイスいただけるとありがたいです、大変助かります。
    どうか、よろしくお願いいたします。

    (その他関連バージョン)
    WordPressバージョン:5.4.2–ja
    サーバー:ロリポップスタンダード
    PHPバージョン:7.3(モジュール)
    データベースバージョン:MySQL5.6

    The page I need help with: [log in to see the link]

Viewing 15 replies - 16 through 30 (of 43 total)
  • Thread Starter saton

    (@saton)

    バージョン7.05ありがとうございます。

    早速ローカル環境3種類とも確認しました。
    1)については、

    Fatal error: Maximum execution time of 120 seconds exceeded in X:\xampp\htdocs\backup01serverm\photogallery\wp-includes\wp-db.php on line 2024
    サイトに重大なエラーがありました。 詳細については、サイト管理者のメール受信ボックスを確認してください。

    でまた管理画面に入れなくなりました。

    2)3)についてはエラー発生はなさそうでした。
    でも、フォルダ操作用ドロップダウンリストは3箇所とも全て空白でした。

    2)がエラーが出なかったようなので、
    おおもとのロリポップサーバー上サイトでバージョン更新を行ってみました。

    結果はエラー表示はなく更新はスムーズに行きました。

    メディアライブラリ画面ででは、上部の「絞り込み」左のドロップダウンリストは選択可能でしたが、その他「一括選択」と各画像のフォルダ選択ドロップダウンリストは空白でした。

    感覚的ですが、2)についてローカルも本番サーバーも同様な動作に感じました。

    1)の本番サイトは、やっぱり怖くて確認できてません。

    報告以上です。
    よろしくお願いいたします

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    Maximum execution time of 120 seconds exceeded
    このエラーは、120秒以上処理がかかって停止したとのエラーです。
    OML は、フォルダー1つにつき、1つのタクソノミーをデータベースに作成します。
    以前、作成した cache(18,451) 関連のタクソノミーが削除しきれていないので、処理を完遂させてください。その後には、そのようなメッセージは出なくなると思います。

    設定画面のボタンの下に書いておきました。

    注意:ファイルやフォルダが多い場合、この処理には時間がかかり、タイムアウトにより処理が中断される場合があります。その場合は、「php.ini」で指定される「max_execution_time」の値を大きくしてください。

    実行時間を増やして、処理を完遂してください。その後、フォルダー数が普通のフォルダー数であれば、実行時間は元に戻してかまわないです。

    もし、レンタルサーバーが、実行時間を増やせなければ、phpMyAdmin を利用して、データベースの中のものを削除します。
    wp_term_taxonomy テーブルの中で、「検索」を押し「taxonomy」フィールドに「media_folder」と入力して、抽出されたデータを「すべてチェックする」で削除。
    wp_terms テーブルの中で、「検索」を押し「slug」フィールドに「oml%」と入力して、抽出されたデータを「すべてチェックする」で削除。

    18,451 ものタクソノミーがデータベースにある事は怖い事です。とりきって、すっきりしてください。

    Thread Starter saton

    (@saton)

    具体的なアドバイス感謝します。

    問題になっていた1)のローカル環境で「max_execution_time」を320まで上げてみましたが駄目。
    その後、1820まで上げて放置しておいたところ、席に戻ったら管理画面に入れていました。
    debug.logへのエラーも無いようです。

    メディアライブラリ画面への移動などとてもとてもスムーズになりました。
    以前は65秒や40秒ほどかかっていた待機時間は、5秒ほどになってうそみたいに軽快です。
    ありがとうございます。

    ただ、やはり

    『3箇所全てのドロップダウンリストでの「フォルダ選択」は空白』

    なので、「フォルダ選択移動」は機能していません。

    こちらの方もどうかよろしくお願いいたします。

    レンタルサーバーでは、現状モジュール版php7.3に設定中でphp.iniはさわれません。
    CGIバージョンのPHP7.3に切り替えたらphp.iniが設定できるとのことですが、「max_execution_time」が設定できるかどうかまだ確認できていません。

    30分近くの設定が可能ならする、だめならアドバイスいただいたようにデータベースの削除操作ということで対処することにします。
    心配なのは、アドバイスいただいた手順でデータベース内のデータを削除することで、全体への悪影響がでないかが少し怖いです。

    とはいうものの、レンタルサーバー上では、
    uploadフォルダ内へ大量Cacheを生成するFooGalleryプラグインが稼働中というのが現状です。

    このプラグインが『cacheをuploadフォルダ内へ生成しないようにする』か、『プラグイン自体を取り除いて別のギャラリーに完全切り替え』しないかぎり、アドバイスいただいた対処をしたとしても、またすぐ繰り返しになりますね。

    できれば、FooGalleryがcache生成を止めるよう変更できれば一番なのですが…
    誰かアドバイスを…と、これはここでする内容ではないですね。

    以上報告です。
    フォルダ操作についてなどもう少しよろしくお願いいたします。

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    FooGallery をとめて、OML で cache フォルダーを除外フォルダーにし、
    OML も止めて、データベースを削除してから、OML 再起動、空白で「フォルダーを作成&変更を保存」ボタンを押す。ブラウザキャッシュをクリアでいけると思います。

    空欄については、ローカル環境とロリポップ上の問題は違うものだと思います。
    ローカル環境については、パスの問題だと思いますが良くわかりません。
    ロリポップ上では、タクソノミーが膨大すぎて、取得できずに空欄になると思います。

    Thread Starter saton

    (@saton)

    データベース内データの削除をアドバイス通り全て行いました。

    いきなりレンタルサーバーで削除していくのはやっぱり怖かったので、
    先にローカルでテストしてから本番作業をしました。
    約18500✕2テーブル✕2回で74000データの削除…なかなか大変でした。

    その甲斐あって、動作が軽くなりました。
    一番動作が重かったレンタルサーバー上のギャラリーサイトでも、
    メディアライブラリ画面への起動待機時間は3秒ぐらいです。

    ところが、例のメディアライブラリ画面内でのフォルダ選択ドロップダウンリストは
    「全て空白」になってしまいました。
    バージョンはOMLが7.06、EMUは2.01で全て最新です。

    今までレンタルサーバー上では「絞り込み」ボタン左のリストでの操作は可能でしたが、それも消えました。

    これで、レンタルサーバー上での2サイト、ローカル環境でテストした5サイトの全てで3つともドロップダウンリストが空白になってしまいました。

    何か確認する項目あればいってください。
    よろしくお願いいたします

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    おそらく、フォルダー名を日本語にしておられる事と思われます。

    >> 6.51バージョンに戻すと、全てのフォルダ操作が出来ることを確認しました。
    >> その後再トライしましたが同様の結果になります。

    6.52 でフォルダー検索方法を変更したのですが、その際に、マルチバイト(日本語など)関連の処理に関して見落としがありました。現在、修正していますのでお待ちください。修正版があがったら、”空白で「フォルダーを作成&変更を保存」ボタンを押す”で、上手く動作すると思います。

    Thread Starter saton

    (@saton)

    バージョン7.07でも早速確認してみましたが、
    残念ながらドロップダウンリスト3箇所とも空白でした。
    レンタルサーバー上の2サイトとローカルでも同様です。

    先日、
    >> 6.51バージョンに戻すと、全てのフォルダ操作が出来ることを確認しました。
    >> その後再トライしましたが同様の結果になります。

    という報告をさせていただいた時点では、たしかに6.51に戻すと操作できたのですが、
    どのバージョンからかははっきりしていませんが、6.51に戻しても全てが空白になるようになりました。

    唯一の例外は、以前テスト用にゼロから新規にWordPress設定したローカルサイトです。
    これだけは6.51に戻すと「一括選択」と各画像右端のドロップダウンリストだけは表示/操作できます。
    ただし、上部「絞り込み」ボタン横のドロップダウンリストが空白になるようになりました。
    (7.06のときも同様、英語→翻訳更新しても同様でした)

    解決の糸口になるといいのですが…
    よろしくお願いいたします

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    phpMyAdmin で見てみて、
    wp_term_relationships には、大量(18,000件以上)のデータがありますでしょうか?

    もし、ありましたら、
    WP-Optimize – Clean, Compress, Cache プラグインを使ってみて、
    データベースを最適化してみたら、その辺が消えるかもしれません。

    https://ja.wordpress.org/plugins/wp-optimize/

    Thread Starter saton

    (@saton)

    phpMyAdmin で見てみたところ、
    ギャラリーサイトはwp_term_relationshipsに
    「Showing rows 0 – 29 (18299 total, クエリの実行時間 0.0003 秒)」
    となっていました。

    「WP-Optimize – Clean, Compress, Cache」プラグインで
    「データベーステーブルの最適化」を実行しましたが、
    その後も同数のデータがあり、消えてはいませんでした。

    その後、空白保存やキャッシュクリアなどの後、
    メディアライブラリで表示確認してみましたが変化は無いようです。
    (確認したのはレンタルサーバー上のギャラリーサイトと、その複製ローカルサイト2つです)

    以上ご報告です。
    よろしくお願いいたします

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    phpMyAdmin で、
    wp_term_taxonomy と wp_term_relationships の term_taxonomy_id の値が対応しています。

    wp_term_relationships で、wp_term_taxonomy に無い値があったら、それを削除してください。


    wp_term_relationships -> term_taxonomy_id -> 460
    460 の値が、
    wp_term_taxonomy -> term_taxonomy_id に存在しなかったら、
    wp_term_relationships -> term_taxonomy_id -> 460 を削除する。

    それぞれの列を、ソートすると分かり易いと思います。

    Thread Starter saton

    (@saton)

    ありがとうございます。
    別件でちょっとバタバタしてましてまだ確認できていません。
    確認と削除等でき次第報告させていただきますので、
    またよろしくお願いいたします。

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    最新バージョン 7.09 に、wp_term_relationships を掃除する処理を入れましたので、上記の事はやらなくて良いです。管理画面上で、いずれかの画面を読み込むだけで処理が完了します。

    Thread Starter saton

    (@saton)

    最新バージョン 7.09へ更新しました。
    レンタルサーバーで2サイト、ローカル環境で3サイトを更新して動作確認しました。

    結果は、残念ながらドロップダウンリスト全てのフォルダ表示が空白でした…

    関係有るかどうかわかりませんが、「Foogallery」プラグインの使用をやめる方向で、各ページのギャラリーをWordPress標準ギャラリーへ切り替え作成はじめました。

    上記で確認した5サイトのうち、3サイトはギャラリーページではありません。
    なので直接関係してないとは思うのですが、以前におっしゃっていたように、cache内フォルダを18500も自動生成し、今後も増え続くことを考えるとやめようと思いました。

    以上報告まで。

    Thread Starter saton

    (@saton)

    レンタルサーバー上の本番サイトにて、
    全てのギャラリーページをWordPress標準ギャラリーベースに切り替えました。

    そして「Foogallery」関連のページを全削除し、プラグイン自体も削除。
    uploadフォルダ内の例のcacheフォルダも全削除。

    その後「WP-Optimize – Clean, Compress, Cache」プラグインで、
    「データベーステーブルの最適化」と「すべての投稿リビジョンをクリーン」を実行。
    最後にOMLの「フォルダーを作成&変更を保存」の空白実行しました。

    残念ながら、メディアライブラリのドロップダウンリスト内の状態は変わらなかったです。

    「絞り込み」ボタン左のリストのみは、一見フォルダリストが表示されているように見えますが、
    実際に存在するフォルダが表示されていなかったり、逆に存在しないはずの
    「/cache/2006/04/20060417104918」フォルダが表示されていたりします。
    ただ、選択して絞り込むと絞り込み動作はできているように見えます。
    ちなみにこれは、一旦OMLを削除→再インストールしても変わりませんでした。

    以上報告です。

    これ以上私に思いつく対策はありません…
    なにか出来ることありませんか?

    よろしくお願いいたします。

    Plugin Author Katsushi Kawamori

    (@katsushi-kawamori)

    「WP-Optimize – Clean, Compress, Cache」プラグインはもうあまり関係ありません。

    私に思いつくのは、あとはブラウザのみです。
    ブラウザは、何をお使いですか?
    また、ブラウザのキャッシュは削除しましたか?

Viewing 15 replies - 16 through 30 (of 43 total)
  • You must be logged in to reply to this topic.