Sim Access はリンク元 URL を取得してアクセスランキングを生成するスクリプト。
あらかじめ指定した間隔でランキングを自動生成し、URL の置換や拒否、「一月」 「指定日数」 「最近の○日間」の 3パターンでランキングの生成ができます。
当ブログとメインサイトで以前から使用していた Sim Access ですが、メインサイトの表示がおかしくなったので、ちょっと調査してみました。
症状としてはアクセスランキングが生成されない。 というか何故か首相官邸ホームページが1個だけ表示される。 ウィルスか? 踏み台か? と疑ったがどうも違うよな….
ログを確認すると 2012年10月27日でランキングの生成が止まっている。 ここ愚者の紋章とメインサイト両方とも正常なランキングは 2012年10月27日で停止。 但しメインサイトは2013年01月06日のログがあり、そこには 首相官邸ホームページ が。
10月27日前にプラグインを入れたり、カスタマイズを何かやったかなと考えたが、3か月前のことなので原因がサッパリわからない。
何かヒントはないかと Sim Access 製作者様のサイトに行ってみると、 version 1.1.1 がリリースされていたので、とりあえずバージョンアップしてみることにした。
Sim Access 作者様のサイトはこちら → Sim Access
WordPress での Sim Access 設置・設定
ますダウンロードして解凍した simaccess フォルダを plugins フォルダ下に設置。
次にパーミッションを変更する。 作者様が案内されているのは log が( 707 or 777 )、access.sqlite と rank.html が( 606 or 666)。
当サーバーはヘテムルなのでパーミッションは simaccess フォルダを 「705」 、log フォルダを 「705」、access.sqlite を 「604」 、rank.html を 「604」 とした。
これは以前と同じだが、 header.php の 「</head>」 の前に以下を貼り付ける。
<script type="text/javascript" language="javascript"> <!-- document.write("<img src=\"http://xxxxxxx/wp-content/plugins/simaccess/access.php?ref=" + document.referrer + "\" style=\"width:0;height:0;border:0;\" />"); // --> </script>
更にアクセスランキングを表示する箇所に以下を追加。
<?php include("http://xxxxxxx/wp-content/plugins/simaccess/rank.html"); ?>
設置した URL 「http://xxxxxxx/simaccess/」 にアクセスして、ユーザー名 :「admin」、パスワード :「pass」 と入れるとログインできる。
※「xxxxxxx」 のところは当然自分のドメインね。
Sim Access の表示カスタマイズ
以前のバージョンは rank.php ファイルの22行目あたりを変更すればよかったが、今回の version 1.1.1 は simaccess → class フォルダ内の class.access.php 126行目から165行目を変更する。 下記はここ愚者の紋章の設定。 29行目をイジってる。
// 以下の HTML 部分を編集 // 始まりに表示する部分です $html = '<ol class="ranking">'; // ここまで $rank = 0; $rank_temp = 1; $prev_rank = 0; $prev_count = -1; for ($i = 0; $i < $loop; $i++) { if ($count[$i] == $prev_count) { $rank = $prev_rank; $rank_temp++; } else { $rank = $prev_rank + $rank_temp; $rank_temp = 1; } // 以下の HTML 部分を編集 // ループ部分です。ランキングの数だけ繰り返されます。 /* $rank : 順位 $url[$i] : アクセス元の URL $name[$i] : 表示する文字列 $count[$i] : アクセス数 */ $html .= ' <li class="sliding-element"><a href="'.$url[$i].'" title="'.$name[$i].'">'.$name[$i].'</a></li>'; // ここまで $prev_rank = $rank; $prev_count = $count[$i]; } // 以下の HTML 部分を編集 // 終に表示する部分です。 $html .= '</ol>'; // ここまで
これに jQuery の 「sliding_effect.js」 を組み合わせ CSS を調整すると、右サイドバーのアクセスランキングとなる。
Sim Access をバージョンアップしたので、これでアクセスランキングが生成されるかなと期待したが、いつまでたっても生成されない。 Sim Access にログインはできるのだが、ログも溜まらず。
プラグインとの競合を疑い、 Head Cleaner や WP Super Cache 、WP-DBManager などを OFF にしたりしてみたが効果なし。 あれやこれや悩んだ末、そういえばヘテムルの WAF(ウェブアプリケーションファイアウォール)を ON にしたことを思い出したので、ヘテムルにログインして WAF を OFF にし暫く待つ。
キターーーーー(・∀・)ーーーーー!!! 復活しました Sim Access
ここ愚者の紋章は動作すようになったので、メインサイトである AnswerTaker も同じようにやってみたが、何故かこっちは上手くいかない orz
AnswerTaker は相互リンクを結んでいたりするので、アクセスランキングが表示されないのはマズイ。 しょうがないから ACR のアクセスランキングを当座貼り付け。
こっちはいつになったら解決するのか