WordPressでのトラブルの件

2484828787-wordpress-588495_1920-y8Ow-640x426-MM-100

 

新しい職場での仕事の1つに、WordPress のサポートがあるのですが、さっそくトラブルがあったのでそのメモ。

 

最初は、インターネットで公開しているブログサーバーの応答が異常に遅い、とのクレームがあり対応することに。
先輩社員の助言があり、最初は Disk Full を疑ったのですが(ファイルアップした直後に遅くなった、という話も伝わっていたし)、どうも違うようでした。

サーバーでは、Linux (CentOS)で Apache httpd を使っていたので、error_log を見たところ、頻繁にワーニングが発生している。しかも、 top コマンドで確認すると、ロードアベレージが90というとんでもないことに。

どうも、何かを繰り返し実行しててプロセスが大量に発生してしまい、スワップまで使っていまったことで、Disk I/Oが追いつかなくなったため、遅延が発生していると思われた。

httpd の error_log で、怪しいのは WordPress のプラグインと解ったので、その対応だけ作成者に依頼し、そのプラグインを停止したら普通に戻りました。

 

状況はこんな感じですが、実は根が深い問題が。

httpd の error_log を見るかぎり、プラグインによる書き込みができなかったことで、この処理をやり直したようで、プロセスが異常発生している、と判断できる。
まず、このプラグインは書き込みができなかったらエラー表示して、処理を止める仕様になっていない。といことは、同じようなプラグインがあるかもしれない。知らずにそういったプラグインを入れる人がまたいるかもしれない。

 

そもそもなんで書き込みできななかったのか。

まず、WordPressのシステム領域はユーザーのpublic_htmlにある。このアカウントはバックアップ用で、WordPressシステムはそのアカウントがオーナーになっている。しかし、アップロードしたりプラグインを入れたりするのは、httpd のアカウント (CentOSでは apache )なので、厳密にいえば WordPressシステムの中に apache が書き込みできないディレクトリが存在する。

プラグイン側で、書き込み可能なディレクトリを使っていれば、今回のような事態は発生しなかったし、httpd のアカウントが、WordPressのシステムを使っているアカウントのディレウトリに書き込み可能になっていれば、問題はなかった。

たぶん、セキュリティを考慮すれば、プラグイン側がまずいような気がするが、妥協して
apache が WordPress システムを書き込みできるようにする必要があった。(そうしないと、WordPress の最新版にユーザーの判断でアップできない)

 

昔は、チームで作業する人がプロジェクト毎に書き込みできるように、と言われてアカウントのグループ設定がかなり複雑になってしまい苦労した経験がある。WordPressのようななんでも自動でできるブログで、グループの設定で悩むとは思わなかった。

この設定で 2012年から運用してて、よく問題にならなかったものだと、そっちの方にも感心してしまったが。。。

まあ、なんとかしましょう。

Linuxでお仕事

新しい職場での仕事について、1ケ月以上経ちました。
まだまだ慣れない点や解らない点も多いのですが、とりあえず、過ごしています。

ネットワーク管理、サーバー管理、Webプログラムなど、まあ、何でもやることになるのですが、今、一番多い頼まれ事は、学生の問い合わせ対応。
新しい職場が大学の事務所で、情報システムと施設管理を兼ねた部門(といっても課長以下4人、派遣2人の部署)。しかも、学生に学校から買ってもらったパソコンの面倒も見ている。4月は、ひっきりなしに学生が訪れて、なんて忙しいところか、と思ったが、今は落ち着いている。

施設管理を兼ねているので、やれ教室のなんとかが、とか、グランドのなんとか、広い敷地内にある建物に呼ばれて、事務員が不在が多い。さらに、大きなイベントや改装の打ち合わせとかあると、もう人数が足りない。

そんな部署なので、IT機器の面倒もそれなり。外部の業者に任せっぱなし。
とにかく、何かあったときだけ...

なんとか、サーバーとは自分がある程度把握して、対応したいと調べているのですが、不備が多い。

とはいえ、貸してもらったPCは、Intel Core i7 のそこそこのスペック。
VirtualBOX に CentOS を入れてホストOSとファイルを共有し、ホストOSではEclipse でPHPを編集したら、VirtualBOXのゲストOSの apache で動かす、なんてPHP開発なら当然な環境が実現できました。

前の会社では、パソコンのスペックが低すぎたり、仕事そのものがなかったりで、できなかったこと。この点は、いいかも。

あとは、チャレンジングな依頼があれば、ベストなんですが。
これはちょっと…