SlimStat は, リアルタイムでアクセス解析ができるWordpressのプラグインです. Googleが提供するAnalyticsやTag Managerはブラウザにスクリプトを停止するアドオンが組み込まれているとアクセス解析ができないので, SlimStatと併用する人は少なくないと思います. ただ, このSlimStatは更新通知が表示されたからと言って, 何の気なしに更新すると アクセスログ が記録されないなどエライ目に遭うので, これまでに使用してきて起こった問題と自分なりの対策を紹介したいと思います.
SlimStatについて
無料で利用できる有名なアクセス解析として, Googleが提供するAnalyticsやTag Managerが挙げられると思います. ただ, 有名であるが故にアクセス解析に記録されないよう, 色々と対策が取られているという問題?があります. このため, 私のようにAnalyticsやTag Manager以外のアクセス解析を利用する方も少なくないと思います. AnalyticsやTag Manager以外にWordpressでアクセス解析が行えるプラグインはいくつかありますが, SlimStatはリアルタイムでアクセス解析ができるプラグインの一つです. 機能としては, 以下の通りです.
- アクセスログ ・・・ どのページアクセスがあったかが見れます. IPアドレスやブラウザ, OS, 端末の情報も表示されます.
- 概要 ・・・ ページビュー数や検索キーワード, アクセス元などの情報の一覧です.
- 訪問者 ・・・ サイトを訪問した人のブラウザやOS, モニタ解像度などの情報の一覧です.
- サイト解析 ・・・ サイトにアクセスした検索キーワードや投稿記事のランキングなどサイトに関する情報の一覧です.
- トラフィック ・・・ サイトにアクセスする際に使われた検索キーワードや検索エンジンなどの割合に関する情報の一覧です.
- Geolocation ・・・ どの国からのアクセスがあったかを世界地図で視覚的に表示しています
- Customize ・・・ アクセスログ以外の上記の項目でどのような情報を一覧に表示するかを設定します.
- アドオン ・・・ 有料で使用していないため, 分かりません.
- 設定 ・・・ SlimStatの機能を設定できます.
アクセス解析には様々な機能を持つJetpackにも搭載されているので, SlimStatと被る機能がいくつかあります. このため, SlimStatを使う理由があるか疑問に思う方もいるかと思います. 私自身がSlimStatを利用する大きな理由は, アクセスログにあります. アクセスログはスパムやbotも見れるので, セキュリティ対策に利用できます. ただ, 予め, .htaccessなどでbot対策をしておかないと, アクセスログがbotのアクセスで埋め尽くされてしまうので注意してください. 初心者が扱えるプラグインとして紹介されていることが多いSlimStatですが, 私が導入した当初は特別な設定が必要がなかったので, 問題なく, すんなり使うことが出来ました. しかし, 最近では更新の度に問題が生じるようになり, 今後の利用を続けるかどうか悩ましいところです.
アクセスログ が記録されない場合
SlimStatが更新されたので, 何の気なしに更新しました. すると, 今まで山のようにあったbotのアクセスがぴたりと止まり, 普通の閲覧者のアクセスまでなくなってしまいました. さらに, SlimStatは投稿者のアクセスも記録するのですが, それすらも記録されていませんでした. この場合, 他のプラグインとの競合を疑うので, 使用しているプラグインを一つ一つ有効無効を繰り返して, 動作確認を行います.
この時に影響を与えていたプラグインはWordfenceでした. ただ, Wordfenceを無効にするとセキュリティーに問題が生じるので, アクセス解析を捨てるか, セキュリティー対策を捨てるかの選択になってしまいました. どちらも捨てられないので, 偶々, 「SlimStat」→「設定」→「メンテナンス」タブのTroubleshootingにあるTracker Statusを見てみると, 「Error: 103 Invalid data signature. Try clearing your WordPress cache.」というメッセージが表示されていました.
そこで, このメッセージについてGoogleで検索してみると, 以下のサイトを見つけることが出来ました.
このサイトの内容を見ると, まず, 以下のことが開発者からのコメントとして以下のことが書かれていました.
Please try switching to “Server Mode” in the settings (General tab), and see if that helps.
訳すと, 「設定のServer Modeに切り替えてみて, そしてヘルプを見て下さい」とのことです. 実際のメニューにはServer Modeはないので, 恐らく, Server Modeではなく, Server Sideでしょう. Server Sideへの切り替えは, SlimStatのメニューにある「設定」→「Basic」タブの「解析モード」で行います. 私の場合, あるバージョンでSlimStatが更新される前はClient Sideで問題なく使えたのですが, いつ頃からかServer Sideでしかアクセスログを記録できなくなってしまいました. もしSlimStatを初めて導入して, アクセスログを記録できない場合, Sever Sideに切り替えてみた方がよいと思います.
また, 最後に開発者の以下のコメントがありました.
You may want to investigate on why admin-ajax.php is not returning any values, when called by the tracker. This is usually related to another security plugin protecting vulnerabilities and such. Usually those plugins can be setup with exceptions to handle cases like this.
要約すると, admin-ajax.phpが何の値も返さない場合, 脆弱性などを保護する他のセキュリティープラグインが関係しているようです. SlimStatがClient Sideで, Wordfenceを有効にした場合にアクセスログが記録できなかったのは, このことと関係していたようです.
その他の問題と対策
SlimStatでアクセスログが記録されるようになって, 喜んでいたのも束の間, 更新する度に以下の問題が生じました.
- Ver. 4.3.2では, Sever Sideに設定されていると, WordPressにログインしている状態ではサイトのプレビューが出来なくなる. プレビューでは, 真っ白なページが表示される.
- Ver. 4.3.4では, Ver. 4.3.2で生じた問題に加え, SlimStat更新後にログアウトするとログイン出来なくなる. ログイン後, 真っ白なページが表示される.
- Ver.4.3.7では, WordPressのVer.4.6.1への更新に伴い, ログイン画面と投稿記事が表示されない(真っ白なページ)ようになる.
- Ver. 4.4では, ログイン時に固定ページや記事は表示される. しかし, ログアウト後では全てのページが真っ白なページとして表示される.
- Ver. 4.4.1では, 固定ページや記事は表示されるが, アクセス解析が記録されない.
- Ver.4.4.2・Ver. 4.4.3では, “Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 31457280 bytes) in”が表示され, ログインも記事表示も出来なくなる.
- Ver.4.4.4では, PHPのメモリサイズを変更した結果, 問題なく動作している.
- Ver.4.6.4では, 「トップ 検索エンジン」のデータが表示されず、エラーメッセージが表示されていた.
- Ver.4.6.9では, ダッシュボードのPV表示にて, “WordPress データベースエラー: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘AND *********** OR dt BETWEEN *********** AND ***********) GROUP BY MONTH(CONVE’ at line 3]”というエラーが表示され, PVが表示されない.
- Ver. 4.3.3・Ver. 4.3.5 – 4.3.6・Ver.4.4.5・Ver.4.5・Ver.4.5.1・Ver.4.5.2・Ver.4.6-Ver.4.6.8・Ver.4.6.9.1・Ver.4.7.1・Ver.4.7.2.1-4.7.4.2・Ver.4.7.5.3・Ver.4.7.7・Ver.4.7.8.1-Ver.4.8.8では, WordPress更新後も問題なし.
このような問題が生じた場合, 基本的にはSlimStatの更新されたプログラムの内容に問題があるため, 自分でデバッグして修正するか, 開発者がバグを修正するまでは手の施しようがありません. SlimStatの更新によって今まで使用していたSlimStatの動作が不安定になった場合はSlimStatが原因である可能性が高いので, 他のプラグインの有効無効を切り替えたりして動作確認をするのは無駄な作業であるかもしれません.
この場合の対策としては, 更新する前に, ちゃんと動作している時のSlimStatをバックアップしておくしかないと思います. さくらインターネットネットではファイルマネージャーでフォルダを指定するとフォルダをZIP形式でダウンロードすることが出来ます. ダウンロードしたZIPファイルは大事に保管しておきましょう. もし, 更新した時にSlimStatの動作がおかしかったり, WordPressにログインできなくなった時はFFFTPやFileZillaなどのFTPクライアントでバックアップしておいたSlimStatを上書きすれば, 元に戻せます. もしそれで駄目な場合は, SlimStatを削除するしかないかもしれません.
photo by akizouさん
Fatal errorについて
SlimStatをVer.4.4.3にアップデートした結果, 以下のようなエラーが表示されるようになりました.
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 31457280 bytes) in /home/*****/*****/*****/wp-content/plugins/wp-slimstat
直訳すると, 内部エラー:利用可能なメモリーサイズをwp-slimstatフォルダ内で消耗したということで, またSlim Statのエラーかと思いがちですが, どうやらそうではないようです.
WordFenceの場合
「Fatal error: Allowed memory size of 134217728 bytes exhausted」で検索を行ってみると, 原因は, SlimStatではなく, Wordfenceにあるようです.
上記サイトで解決方法としては, Wordfenceの「Options」をクリックします.
次に, 「Options」で開かれたページを下へスクロールしていくと「Scans to include」があるので, この項目のチェックを全て外します.
ただし, この項目のチェックを全て外す前に「Export Wordfence Settings」で設定のバックアップを取っておいた方が良いです.
「Scans to include」のチェックを外した後, Wordfenceのメニューにある「Scan」で「Start a Wordfence scan」を実行します.
この「Start a Wordfence scan」でエラーが検出されなければ, 「Scans to include」で外したチェックを元に戻せば良いようです.
ひょっとしたら, これで解決するかもしれません.
ただ, 上記サイトを最後まで読むと, 最終的にはPHPのバージョンも関係しており, さくらインターネットのPHPのバージョンは5.6までです.
私の場合, SlimStatを最新バージョンに更新しても, 上記の手順を試しても, WordfenceのFatal errorが表示されるので, PHPのバージョンが5.3であることが問題なのかもしれません.
現在は, Ver.4.4.2・Ver. 4.4.3でもサイトのログインが出来なくなったり, 記事が表示されなかったりと動作が不安定なので, SlimStatを停止しています.
PHPのメモリサイズの場合
Ver.4.4.x移行, メモリサイズの内部エラーが出てログインできなくなるようになり, 一時期使用を諦めていました.
Ver.4.4.2では, Wordfenceの操作で動くようになっていたのですが, 記事が表示されなかったりと動作が不安定でした.
Ver.4.4.3では, 記事の表示もログインも出来なくなってしまいました.
しかし, その後, メモリサイズの内部エラーについて調べてPHPのメモリサイズを変更したところ, 問題なく動作しました.
PHPのメモリサイズを変更する方法としては, php.iniを修正する方法と.htaccessを修正する方法などがあります.
さくらインターネットで.htaccessを修正する方法では上手くいきませんでした.
なので, さくらインターネットでPHPのメモリサイズを変更するには, サーバーコントロールパネルから行います.
サーバーコントロールパネルにログインし, 右のメニューから「PHP設定の編集」をクリックします.
すると, 以下のように「PHP設定の編集」が表示されます.
PHPのメモリサイズを編集するには, 「memory_limit」の値を変更します.
デフォルトでは96Mとなっており, エラーメッセージでは約134Mを使い切っているということなのでので, それ以上の大きさに設定します.
今回は, デフォルトの2倍に設定し, 192Mに設定します.
このように設定しなおしたところ, SlimStatを有効にしてもVer.4.4.4では, 問題なく動作するようになりました.
ひょっとしたら, Ver.4.4.2とVer.4.4.3も動作したかもしれません.
まとめ
SlimStatを紹介した内容の手順をまとめておきます. 更新する前にSlimStatのフォルダを丸ごとバックアップします(❶). 更新後, アクセスログが記録されない場合, まず解析モードをServer Sideに切り替えます(❷). 既に切り替えてある場合はこの手順を飛ばします. 次に, Server Sideの状態でアクセスログが記録されているかどうかをAccess Logで確認します(❸). アクセスログが記録されているかどうかをすぐに知りたい場合は, 「設定」→「Basic」→「解析」にあるAdmin PagesをTrackにしておくと自分のログインが記録されるので, 閲覧者が来るまで待つ必要がありません. アクセスログが記録されているのを確認したら, プレビューができるかどうかを確認します(❹). プレビューが出来るできないに拘わらず, WordPressからログアウトしてもう一度ログインできるかどうかを確認します(❺). ログインできない場合は, バックアップしたファイルをFTPクライアントを使用して更新したSlimStatに上書きします(❻).
SlimStatは, 非常に高機能なアクセス解析ができますが, その反面, 更新する際に色々と注意が必要なプラグインだと思います. WordPressが更新されると, 非常に短い期間でSlimStatも更新されます. 開発者の迅速な対応は非常に有り難いのですが, 期間も短い分, バグも出やすいのかもしれません. バグが更新される期間はまちまちなので, 改善されるまではバックアップしたSlimStatを上書きしてバグが更新されるまで待つというのがアクセスログを絶え間なく記録する手段だと思います. こんな面倒なことをするぐらいなら他のアクセス解析を利用すれば良いのかもしれませんが・・・. 更新前にバックアップを取る以外は, 操作が簡単で高機能であることには変わりないので, 変える気になれないのが現状です.
当施設の利用者さんの中には, このブログを読んでくださる方もいるので, アクセスログの記録に抵抗を感じるかもしれません. ただ, docomoやau, softbankなどの携帯電話会社の3Gや4Gの移動通信ではGeolocationで表示される地域が決まっているので, 個人の特定は難しいです. それに比べて, 光回線のような固定通信ではアクセスしている地域をある程度特定できます. また, 当サイトはアクセス数が少ないので, サイトにアクセスした日時が分かれば, ある程度, 個人の特定もできてしまいます. しかし, アクセスした日時が分からなければ, 誰がどの記事を読んでいるかは分からず, 個人を特定できないので安心してください. 将来的には, 日時を言っても問題ないくらいアクセス数が増えれば, 当サイトのブログを読む利用者さんはもっと安心できるのかもしれません・・・.
コメント