MTで人気記事ランキングを。クロスブリード!グッとくるものを残していきます。https://crossbreed.tv/archives/200603261315.php11月222003MTで人気記事ランキングを。3.67)Loading...新ブログ始めました!http://crossbreed.hatenablog.comTweetshareずっと設置したいと思っていたmovabletypeのplugin、MTMostVisitedの設置にやっと成功した。このプラグイン、簡単に言えば「記事別アクセスランキング」。Faith@KHさんのネタを見て激しく設置の欲望にかられた。トップページの左側の中ほどにあるやつがそれ。現在のランキングを表示すると↑こうなるMT使ってて、これやりたくてもできなかったヒトは結構いるんじゃないかと思うので、僕の苦難の道を記そうと思う。参考になれば幸いだなあ。実はこのplugin、#BLOGさんとこで見つけて早速やってみたのだが、あっさり撤退。何度やっても上手く行かなかった。調べるうちに分かったことがあった。apacheのアクセスログを使うこのプラグイン、ここのサーバではアクセスログが上手く取れないことが分かった。それなら作ってしまえ!というわけで、ログを取るCGIを作成して成功した。perlなんてさっぱりわからないけど、サンプルを引っ張ってきて見よう見真似で。なんとかなるもんだね。それでは設置方法をば。HangaiさんののApache::ParseLogというapacheログを解析するモジュールが必要です。何にも考えずにダウンロードします。リンク先の「source」ってとこ。(MTのインストールディレクトリ)/extlib/Apache/にアップロード(以下UL)。これで第一段階完了です。hereと書かれたMTMostVisitedのプラグイン(zip)をDLする。“$logdir/access_log.1”,“$logdir/access_log.2”,“$logdir/access_log.3”,“$logdir/access_log.4”,“$logdir/access_log.5”,“$logdir/access_log.6”);こんなカンジで書き換えます。ここでapacheのログが取れないが為に、僕は何日も悩んだのですが、apacheのログがとれ、しかも一週間分とかに区切って出力してくれる優しいホスティング会社に加入している方なら迷わずapacheのログのパスを記述しましょう。自分でログを書き出すプログラムを作ってしまえということを考えた。それと、apacheのログって画像なんかにアクセスしても生成されるから一週間程度で物凄い量になるのでもっと簡単にしたいというのもあった。いうわけで、apacheのログの形式で書き出すアクセス解析のようなperlスクリプトを作ったってわけだ。なんかムダなことをやってるようだがあまり気にしない。ヒトのをパクリまくって作ったんですが。アクセスログ取得スクリプト(へなちょこ)↑ZIPで圧縮してます。解凍したら、テキストエディタでaclog.cgi開こう。‘https://crossbreed.tv/’;$aclogはアクセスログが格納されるファイル名。$maxはログの最大件数。これは好みで$myselfは自分のルートのアドレスをフルパスで。FTPでUPLOADしたら、aclog.cgiのパーミッションを755に。←これはサーバによって違うかも。次に、空のテキストをaccess_logというファイル名で保存してこれもUPLOAD。log.gifという透明なGIFファイルを同じディレクトリにUPLOAD。Archiveに、以下のスクリプトを追加。height="1"></NOSCRIPT>こんなカンジ。