

WordPressの記事、Gitで管理したいな。
お!あるじゃん。「WordPress Github Sync」ってプラグイン。
Githubと連携して、記事ファイルを書き換えたらWebhookで自動更新出来るみたい。
めっちゃ便利。
・・・数日後。
あれ?なんか重いな。
たまに500エラーが出る!?
管理画面にもブログにもアクセス出来ない・・・。
となった僕。
WordPressが消費しているメモリをチェックしたら、ありえない数値でした・・・。
原因は、このプラグイン。
「WordPress Github Sync」。
今から使おうとしている場合は、注意して下さい。
すでに現在使用中で困っている場合は、対処法も書きましたので参考にしてください。
先に結論からお伝えすると、
データベース上に不要なデータを追加しているのが原因です。
WordPressのデータベース上の、「wp_options」の、GitHub Syncが追加したデータを削除すれば解決します。
option_nameに「ghs」という単語が含まれているデータです。
記事をGitで管理、バックアップしたかった「WordPress Github Sync」
WordPressで記事を書いていたときのこと。
「んー。WordPressのエディタ使いづらいなぁ。Vim使えないし、エディタ使いたいなあ。」
と思った僕でした。
普段コーディングするときは、VSCodeにVim拡張を入れて使っています。
また、Windows機のためターミナルをgit bashにしており、シェルスクリプトも書き放題です。
ということで、WordPressの記事もGitで管理できたら楽だなあ。
と思ったわけです。
そんなことを考えていたら、あるではないですか。
GitHubで記事を管理出来るプラグインが!
日本語でヒットしたこちらの記事。
どうやら、GitHubとWordPressをWebhookで連携させ、GitHub上の記事が更新されたら、自動的にWordPressの記事を更新してくれるという。
作者さんのチュートリアルを参考に、セットアップしてみました。
「これで、好きなエディタで記事も書けるし、楽ちんだ!」
と思ったのもつかの間。
あんな面倒なエラーを引き起こすことに気づいたのはもう少し先のお話。
記事投稿ごとに消費メモリがどんどん増えていく現象
本当はプラグインの使い方を含めた紹介記事を書こうと思っていたんですよ。
ですが、このエラーは流石に使い物になりません。
簡単に言うと、
記事を投稿するごとにメモリ消費がガンガン増えていって、サーバーが応答しなくなる。
という恐ろしい現象です。
WordPressのメモリ制限は大体64MBがデフォになっていると思いますが、10記事くらいの状態で、200MBを超えていました。
サーバーのログを見ると、
「PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted」
なんてエラーが出ていました。
実際の症状と、原因を探るためにやったこと、一時的な対処についての以前の記事がこちらです。
プラグインそのものが原因なら、プラグインを一度止めてしまえば良いのですが、今回の場合はプラグインがデータベースに追加したデータが原因だったので、ちょっと大変でした。
既にメモリの消費量が増加してしまった場合の対処法
もう既に「WordPress Github Sync」を使用してしまい、僕と同じ現象になってしまっている方へ、対処法をお伝えします。
おそらくこれで、メモリの爆食いは解消されるでしょう。
冒頭でお伝えしたとおり、データベースに無駄な記事データが残っているのが原因です。
なので、データベース上のwp_optionsテーブルに存在している、option_nameに「ghs」でフィルタをかけると引っかかるデータをすべて消しましょう。
そうは言ってもよく分からないという方が多いと思います。
とりあえずWordPressのデータベースを覗いてみましょう。
phpMyAdminにアクセスしてください。
GCPを使って、bitnamiのWordPressを使っている人はログインするのにひと手間必要なので、記事を書きました。
「データベース」タブを選んで、WordPressのデータベースを見てみましょう。
「wp_options」テーブル内に、option_nameに「ghs」という文字が含まれているデータがあるはずです。
それが、諸悪の根源ですね。
記事の数だけあると思います。
ポチポチ手動で削除してもいいですし、SSHでサーバーに入って、mysqlからフィルタかけて削除してもOKです。
削除前にバックアップは取っておくと安心です。
これで、復旧すると思います。
サイトが動いたら、「WordPress Github Sync」プラグインは削除してしまいましょう。
最後に
このバグの原因が分からず、かなりの時間を浪費しました・・・。
最初に、PHP側で出たメモリ不足のエラーをググった時に、メモリの上限を引き上げるという対処法を紹介する記事がいっぱい出てきました。
今回の場合は、根本的な原因を解決しないとメモリがいくらあっても足りないですね・・・笑
コメント