Ranking Link Ver.1.86 Manual

Ranking Link Ver.1.86 Manual


この度はRanking Link Ver.1.86をダウンロードしていただき、ありがとうございます。
以下にランキングの挙動とFAQを記します。
必ずお読みください。
また、読んでいない方にはサポートを行いません。


1.挙動 △上に戻る

更新時の挙動について簡単に説明します(Ver.1.60以前とは異なる部分があります)。
今のところ、あまり書くことが無いです。
Ver.UPで増えていくかもしれません。

更新間隔
ランキング設定で見られる「次回更新予定時間」は、あくまで予定です。
CGIは、何か引き金が無いと動きません。
ここでは、INまたはOUTカウントが引き金となり、更新のチェックを行っています。
カウントがあったときに、予定時間を過ぎていたら更新がなされます。
よって、1つのサイトも無いときは更新されません。


更新の流れ
データ読み込み>削除対象チェック>ランキング表示作成>カウントリセット・シフト>データ書き込み>自動削除
 
以上のような順番で処理が行われます。
「削除」は自動削除のことで、指定日数以上アクセスが無いサイトを削除します。
カウントシフトは、継続カウント方式の時の処理で、1日分カウントをずらす処理です。
 
Ver.1.60以前は、リセットが表示作成と同時に行われていました。
このように処理順を変更することで、リセット方式+INカウントゼロ非表示の設定で、
リセットの瞬間に1サイトも表示されない、という現象を防ぐことが可能になりました。


順位のつけ方
INカウント及び新着では、INカウント/OUTカウント/月計IN/月計OUT/累計IN/累計OUTの順に並べ替えを行います。
OUTカウントでは、OUTカウント/INカウント/月計OUT/月計IN/累計OUT/累計INの順です。
全てが同じカウントのサイトがあっても、同着処理は行われません。
1位が3サイトある、のような状況にはならない、ということです。


バックアップ
Ranking Link では、1日一回自動バックアップを行っています。
よって、基本的に手動バックアップは必要ありません。
バックアップを行うのは、日付が変わった時点での最初の更新です。
日付をフラグとしてチェックを行っているので、バックアップ間隔の変更は出来ません。


データ修復
Ranking Link では、データが壊れたと判断された場合、自動的に修復を試みます。
IDファイルはあるのに、その中身が無い、という状況を「壊れた」と判断しています。
修復は、まず一時バックアップファイルを探します。
これはアクセスがある毎に作成されるファイルで、常に最新のデータが入っています。
それが見つからない場合は、通常のバックアップを新しい順に探していきます。
これを行っても見つからない場合は修復は不可能なので、そのIDに関係する、残っているファイルを全て削除します。
この時は「データ消失」とシステムログに書かれます。




2.FAQ △上に戻る

サポートBBSに出たFAQをピックアップしてみました。
上記の挙動や、設置説明と内容が重なる部分があります。
ですが、質問が出たということで書いておきます。

Q. 投票ページを表示した後に、トップページに飛ばしたい
A. rl_prf.cgi で、INのページ表示タイプを 3 に設定。
その下にある2,3 を設定した場合のランキング以外の指定ページのURLで、トップページのURLを指定。

Q. 自動更新がされない(質問多)
A. 上記「挙動」で書いてあるとおり、
INまたはOUTカウントが無いと更新されません。

Q. 動向マークが「×」となって表示されない
A. rl_prf.cgi で、動向マークのURLを設定してください。

Q. ランキングサイトをクリックしたときに、別窓で開かせたい
A. templete.cgi の sub r_indi、
<a href="$siteurl">のところを変更してください。

Q. 携帯用サイトとして使った場合、投票ページから進めない
A. rl_prf.cgi 内の…

#上で 1,3 を設定した場合、リンク元チェックを行う場合は 1 を設定。
$vote_refcheck = 1;

この機能を使わないように、 0 に設定してください。

Q. ランキングに表示されているサイトに飛べない。
A. 原因はいくつか考えられますが、特に無料サーバ系でこの現象が起こります。
代表的な例はトクトクなどです。
rl_prf.cgi を見て、METAタグでジャンプする設定を行ってください。

広告を自動挿入するためのとあるプログラムの影響によるもので、
これがあるとクッキーも使えません。
というか、個人的には広告が入るような無料サーバでの設置はお勧めしません。
更新時はかなりの高負荷になるスクリプトですので…。

Q. 登録時に発信されるメールに、ランキング用のタグを書きたい。
A. rl_mail.cgi 、sub mail_reg 内にこんなものを書きます。

<a href="(絶対パスでのURL)/ranklink.cgi?id=$_[0]">

これが基本になります。
これにバナーでもテキストでも適当にくっつけてください。

Q. 更新すると Internal Server Error になる
A. templete.cgi のミスです。
特殊記号や全角スペースをチェックしてみてください。
それでも解決できないときは、エラーチェックを行ってみてください。

Q. 複数設置したいのですが。
A. 頑張って1つずつ置いてください。
出来るだけ混乱しないように、ディレクトリを分けて設置しましょう。

ちなみに、Ranking Link 自体をそのまま複数設置が出来るようにする、
という予定は今のところ全く無いです。

Q. InterQ での設置の仕方は?
A. まず、templete.pl内のCGIを呼び出している所のURLを全部、
相対表記では無く絶対URL(CGI用のURL)に変更してください。
それと、変更画面や登録画面のHTMLファイル内にあるCGIのURLも同じように変更してください。

それと、templete.cgi内の以下の部分を変更してみてください。
240行目の部分
$siteurl .="./rl_out.cgi?id=$id&url=$_[4]";
を以下のように変更
$siteurl ="貴方のCGI専用URL/rl_out.cgi?id=$id&url=$_[4]";

(注意:この文章はサポートBBSの matuo さんの記述を勝手に引用したものです。
僕は InterQ に置いたことは無いですので、何とも言えません。
また、以上の設置方法がわからなくても matuo さんに直接問い合わせるようなことはしないでください。)

Q. 移転するときに注意する点は?
A. 基本的に、動いているデータ(/ranklink以下)を全てそのまま移動させるだけでOKです。
/data ディレクトリ内にファイルがたくさんあります。
勝手に生成されるものですが、これのパーミッションを 666 またはそれに類する設定にしてください。
これは設置説明には書いてありません。

サーバによってパスワードの暗号化方式が異なる場合があり、
その場合は、全てのサイトに対して新しいパスワードを発行しなくてはなりません。

異なっているかを見極める方法は、移転前に適当な登録を行ってみてください。
そして、移転後にその仮登録サイトの変更・削除のログインを行います。
暗号化が変わっていなければログインできますが、
変わっている場合は、パスワードが認識できないため、ログイン不可能となります。

Q. CGIディレクトリに置いたHTMLは見られないが、
それでもHTML表示を行いたい場合は?
A. 「#CGIディレクトリ内のHTMLが表示できない場合は 1 を設定」の話です。
ここで 1 を設定すると、全てCGIを通して動作することになります。
が、HTMLで表示した方が負荷は低いです。
その方法を説明しますが、このように置くことは考えて作ってないので、
必然的に難易度が結構高くなっています。注意してください。

CGI側からHTML側に、相対パスが通ることが条件です。大抵は通ると思いますが…
/html ディレクトリの中身は、/html_2 ではなく、/html をそのまま使用します。
(わからない方は、マニュアル 2.設置のメッセージを参照)

http://xx.yy.zz/ranking/ にHTMLを、
http://xx.yy.zz/cgi-bin/ranking/ にCGIを置くと仮定します。
この場合、ユーザーに見せるトップページは http://xx.yy.zz/ranking/index.html になります。

まず、rl_prf.cgi を設定します。気を付けなければならないところだけ。
上に示したURLでの設定なので、パスなどは当然変わってきます。


#CGIディレクトリ内のHTMLが表示できない場合は 1 を設定
$htmlindi = 0;

#HTMLを入れるディレクトリ
# check.html等のフォームと出力されるランキングが入ります。
$htmldir = "../../ranking";

#HTMLを入れるディレクトリの http://〜の絶対パス
$abshtmldir = "http://xx.yy.zz/ranking";

#スクリプトを置くディレクトリ(http://〜の絶対パス)
$scriptdir = 'http://xx.yy.zz/cgi-bin/ranking';


次に templete.cgi の 240行目前後、
$siteurl = "";$siteurl .="." if ($htmlindi == 0);
$siteurl .="./rl_out.cgi?id=$id&url=$_[4]";
を削除して、
$siteurl = "../cgi-bin/ranking/rl_out.cgi?id=$id&url=$_[4]";
としてください。
http://xx.yy.zz/ranking/index.html から見た、
http://xx.yy.zz/cgi-bin/ranking/rl_out.cgi の相対パスを設定します。


CGIの設定は以上です。
ここまで出来たら、http://xx.yy.zz/cgi-bin/ranking/ranklink.cgi にアクセスして、
http://xx.yy.zz/ranking/index.html へ飛ばされることを確認します。


通常は、この後表示されているリンクから管理ページに飛ぶわけですが、
リンク切れしているはずなので、http://xx.yy.zz/cgi-bin/ranking/rl_admin.cgi に、
直接URLの入力して飛んでください。

最後にHTMLの設定を行います。
頭に書いたとおり、このように置くように考えられていないので、
ありとあらゆるリンクが通じていません。
「戻る」のリンクや、check.html等にある form タグの action プロパティなど、
全て正しいパスに修正してください。