Ver 20040903


沢山の方々にご協力いただきリリースする事ができました!
ほんとにほんとにありがとうございました〜(深々)

える日和 RING! RING! MIX!! sugarplum zigzag
勝って兜の緒を締めよ / 雨読雑感 / 山城屋 / flava / Silikagel / 想いは言葉にのせて / 碧荷 / mediatex / honey / ももちゃ。
Festa Manifesto ZERO 空中楼閣 nekomataya
はじめに

このページには nicky! へ Trackback を実装する方法が記されています。

なお、Trackback対応となる nicky.cgi はVer2004/06/08以降です。
(nicky.cgiのバージョンは、初期設定ボタンクリックにて表示される画面の右上に表示されます)

サーバーチェック

設置するサーバを選びます。ごめんなさい。
まずは、ご利用されているサーバーで本CGIが動作するかチェックするCGIを設置してください(所要時間約2分)。

  1. tbcheck.cgiをダウンロードする

    このリンクを右クリックして、対象をファイルに保存→ファイルの種類=全て、と指定して、ファイルをダウンロード後、ファイルネームを tbcheck.cgi に修正します。

  2. tbcheck.cgiをサーバに設置する

    nicky.cgiと同じフォルダにバイナリモードでtbcheck.cgiを転送し、パーミッションをnicky.cgiと同じ値に設定します。

  3. tbcheck.cgiを実行する

    IE等のブラウザから以下のようにURIを指定し、tbcheck.cgiを呼び出します。

    http://設置したURI/tbcheck.cgi

    実行結果(最後の行に表示)に『inst = 5, OK』と表示されればオッケーです。

    参考までに、OKの場合の表示例NGの場合の表示例

    Jcode / LWPが実装されていない([1]と表示されずに[]と表示される)サーバをご利用の方はJcode / LWPライブラリの追加方法を参考にしてください。

nicky!用TrackbackCGIの設置

独立して動作する Trackback用のCGIを利用する事にしました。
ベースとなるCGIは、MovableType の作者より配布されている tb-stanaloneで、 これを日本語を扱えるようにしたtb.cgiに手を加えて利用する事にしました。
上記はベースCGIの利用規約、ArtisticLicenseに基づいた表示です。

※ここの記事を元に、上記サイト運営者様、またはその関係者の方々へ質問等せぬようお願いいたします。

  1. ダウンロード&設置

    以下の手順に従ってnicky!用のTrackback CGI、tb.cgiをダウンロード&サーバへ設置します。

    • nicky!用tb.cgiのダウンロード

      ここを右クリックして対象をファイルに保存→ファイルの種類=全てと操作し、ダウンロードします。

    • perl/pathの書き換え

      tb.cgiのperlのパスは#!/usr/local/bin/perlとなっています。
      設置されるサーバに合わせてパスを書き換えてください。

      このヘンはnicky.cgiと同じなので詳細は省略します。

    • tb.cgiをサーバに設置

      例によってEUCスクリプトで配布している為、サーバにはバイナリ転送、もしくは漢字変換=無を指定してサーバのnicky.cgiと同じフォルダに設置します。
      設置後はtb.cgiのパーミッションをnicky.cgiと同じ値に設定します。

  2. パスワードの設定

    Trackbackの送信や、受けたTrackbackを削除する操作を行う為、管理用PCを登録する必要があります。

    以下のようにURIを指定し、先ほど設置した tb.cgi へパスワードを設定します。

    http://設置したURI/tb.cgi?__mode=PassWord
    ※tb.cgi?__mode=の『__』はアンダーバー2つです。

nicky!の設定

Trackbackを表示させるには、nicky!をカスタマイズする必要があります。
以下の手順に従ってカスタマイズしてください。

  1. nicky!のユーザーカスタマイズ画面を呼び出す

    以下のようにURIを指定します。

    http://設置したURI/nicky.cgi?UserCustom

  2. 『トラックバック($tbTagに入ります)』の欄に以下のタグをコピー&ペーストする。


    ※『&tb_id』が気になる方は『&tb_id』でもご利用いただけます。
      どちらも同じ動きです。

  3. ユーザーカスタマイズをご利用されていない方

    Customボタンクリックで作業完了です。

  4. ユーザーカスタマイズをご利用の方

    nicky.cgi?UserCustomの各レイアウトパターンの末尾に$tbTagを追加してください。
    ※$tbTagは、記事のヘッダ($UserCustomHead) / 記事のフッタ($UserCustomFoot) / コメントのカスタマイズでも使用可能です。

以上で作業完了です。

早速実験してみる

Trackbackを使ってみましょう。

  • 新規作成ボタンクリックで記事を作成する。

    tb.cgiが実装されている環境では、『日記作成/編集画面』に『Trackbackを受け付ける』チェックボックスが表示されます。

    チェックを入れ、書込ボタンをクリックしてみましょう。以下のような表示が行われているはずです。

    Trackback(0)

    『Trackback(0)』をクリックし、トラックバックの画面を表示させてみてください。

  • Trackbackを送ってみる

    トラックバックの画面に、『以下のメッセージは管理用PCからのみ表示されます』のフィールドにある、『送信先URI』に以下のURLをコピー&ペーストして、『Send』ボタンをクリックします。

    テスト用Trackback送信先URI(nicky!) →  対象記事(nicky!)
    テスト用Trackback送信先URI(MT) →  対象記事(MT)

    上記はテスト用のページなので、失敗されても構いません。
    ※MTからTrackbackを受けてみました
      MTよりnicky!へTrackbackを送信してみました。
      問題なく受け止められる模様。
      ※MTからTrackbackを受けてみたい方は言っていただければ送ります。

注!テスト前に他所様のサイトめがけて Trackback を送信するのは止めときましょう!

初期設定にも『トラックバック関連』の項が表示されるようになっているので、見といてください。

nicky!用tb.cgiの使い方

見て判りそうな機能については記載していません。

  • パスワードの設定

    http://設置したURI/tb.cgi?__mode=PassWord

    もしパスワードを忘れてしまった場合は、tb.cgiを設置したフォルダにあるtb_admin.cgiファイルを削除後、本コマンドを実施してください。
    『tb.cgi?__mode』の『__』は、アンダーバー2つです。

  • カスタマイズ

    http://設置したURI/tb.cgi?__mode=custom

    徹底したカスタマイズができます。遊び倒してください。
    初期状態でもカスタマイズ内容が表示されますので、簡単に変更できます。
    もし、何だか判らなくなってしまった場合は、tb.cgiと同じフォルダにある『tb_custom.cgi』ファイルを削除すれば初期状態に復旧します。

    以下は各フィールドと使用可能な変数の一覧です。

    • Header

      <html>から始まる画面上部に表示される部分の表示を定義します。

    • Ping Message

      Trackbackの送信先を表示する内容を定義します。
      以下に使える変数名を記します。

      変数名内容
      $url_pingTrackback送信先URI
      $url_nickynicky!のURI
      $titlenicky!のタイトル
      $msgnicky!の概要

    • Footer

      画面の下部に表示する内容を定義します。
      以下に使える変数名を記します。

      変数名内容
      $url_pingTrackback送信先URI

    • Trackback

      受信したTrackbackを表示するフィールドを定義します。
      以下に使える変数名を記します。

      変数名内容
      $urlTrackback送信元URI
      $tb_title記事のタイトル
      $blog_nameページのタイトル(ウェブログ)
      $excerpt概要
      $timeTrackback受信時刻
      $delete削除用リンク(管理用PCのみに表示)

    • Admin

      管理用PCからアクセスされた時にのみ表示されるメッセージです。
      以下に使える変数名を記します。

      変数名内容
      $url_nicky該当記事へのURI
      $page_titleページのタイトル
      $title記事のタイトル
      $msg記事の該当

SPAM対策

簡単なものですがSPAM対策つけました。
予め、ドメインネーム / IPアドレス / URI の何れかを登録しておき、Trackbackを受信した際に左記の項目と比較し、一致した場合は受信を拒否します。

  1. 拒否情報の登録

    nicky.cgi?editrejectとURIを指定し、nicky!の拒否情報登録画面を呼び出します。

    • ドメインネームを指定する

      例えば、ドメインhoge.hoo.barからのTrackbackを拒否したい場合は

      hoge.hoo.bar
      

      と記載します。
      また、『*』を指定する事でワイルドカード指定が可能です。(*hoge.hoo.bar等)

    • IPアドレスを指定する。

      IPアドレス指定は、ドメインを持たないサーバよりTrackbackを送られる場合に有効です。普通に『192.168.1.3』や『192.168.*』等と指定。

    • URIを指定する。

      特定のサイトやページから送られてきたTrackbackを拒否したい場合に有効。

      http://hoge.foo.bar/abc/*

      と登録します。

    登録が済んだら save! ボタンをクリックし、データを保存します。
    データは1行につき1つです。こんな↓感じで

    192.168.1.*
    hoge.foo.bar
    abc.def.ghi
    http://hoge.foo.bar/abc/
    192.168.100.40

    データはいくつでも登録できますが、判定処理時間に比例します。
    データの登録を済ませたら、テストしてみましょう。

  2. テストしてみる。

    次の方法でテストできます。
    tb.cgi?__mode=testreject&ip=192.168.1.3
    tb.cgi?__mode=testreject&hn=hogehoge.foo.bar
    tb.cgi?__mode=testreject&url=http://hoge.foo.bar/abc/tb.cgi
    複合指定もできます。
    tb.cgi?__mode=testreject&ip=192.168.1.3&hn=hogehoge.foo.bar
    tb.cgi?__mode=testreject&ip=192.168.1.3&hn=hogehoge.foo.bar&url=http://hoge.foo.bar/abc/tb.cgi

更新履歴
  • 2004/09/03
    Trackback受信時に HTML へ反映されなくなっていたのを修正。
  • 2004/07/03
    特定の文字コードに弱かったのを強化。
    tb.cgi?__mode=customでバージョンを表示するようにしました。
  • 2004/06/28
    初版リリース

よくある質問とその答え

tbckeck.cgiの実行結果がOKとなっているのが前提です。
tbckeck.cgiの実行結果がNGの場合はサーバーの構成上Trackbackの実装は難しいです。

  1. Trackback送信先URIをブラウザで見ると意味不明な表示となる。

    これはTrackbackの仕様です。
    表示される内容は、Trackback用CGI同士が通信を実施する為の情報なので、ブラウザで人が見ても理解に苦しむ情報が表示されます。

  2. 『以下のメッセージは管理PC用からのみ表示されます。』が表示されなくなった。

    管理PCをCookieで判別しているのですが、Cookieの賞味期限切れです、ごめんなさい。
    お手数ですが、再度 tb.cgi?__mode=PassWord を実施してください。
    また、パスワードを忘れてしまった場合は ftp にて tb_admin.cgi を削除すれば新規パスワードを設定する事ができます。

  3. Trackback実装後、過去ログ(HTML)にTrackback受信件数が表示されない。

    お手数ですが初期設定→過去ログ関連→過去ログをHTMLに保存しない→SETUPボタンクリック、初期設定→過去ログ関連→過去ログをHTMLに保存する→SETUPボタンクリック、と操作してください。
    (1度だけ実行していただければオッケーです)

    それでも過去ログ(HTML)にTrackbackの受信件数が反映されない場合は、ブラウザのキャッシュと思われます。
    強制リロード(IE/NNの場合は[CTRL]ボタンを押しながらリロードボタンクリック)してみてください。

  4. Trackback送り元をクリックした時は別窓表示にしたい。

    デフォルトのTrackback受信表示は XHTML1.1 で出力します。
    (XHTML1.1 には別窓表示用のタグがありません)
    なので以下のようにカスタマイズしていただければ別窓表示となります。

    • カスタマイズ画面を呼び出す。

      以下のようにブラウザのアドレスを指定し、カスタマイズ画面を呼び出します。
      http://設置したURI/tb.cgi?__mode=custom

    • DOCTYPE宣言をXHTML1.0 Transitionalに変更する。

      Header欄(一番上)の以下の行を編集します。

      変更前:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
      変更後:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
      
    • リンクに target="_blank" を追加する。

      TrackBack欄(上から4番目)のリンクの行を以下のように修正します。

      変更前:<a href="$url" class="trackmsg">$tb_title</a></td></tr>
      変更後:<a href="$url" class="trackmsg" target="_blank">$tb_title</a></td></tr>
      

    以上で作業完了です。


(raelian@din.or.jp)