edit for admin | edit | diff | create new | view all | RSS | FrontPage | search | recent changes

RNA説明書(nightly版) - 開発版についてのドキュメントです。

edit

開発版についてのドキュメントです。

はじめに

edit

RNAはGPLに基づいて配布されるフリーソフトウェアです.ライセンスの詳細についてはパッケージに含まれているCOPYINGをご覧ください.ただし本マニュアルおよび一部のライブラリについては別のライセンスが適用される可能性があります.詳細はそれぞれのソースファイルをご覧ください.

インストール

edit

     $ tar zxvf rna1.9.tgz

     my $antenna_owner = 'i2k';  # ← あなたのお名前
     my $base_uri = 'http://www.semblog.org/products/rna/';  # ← RNAを設置するディレクトリのURI

     $ chmod -R 777 rss/ cache/ 
     (もしくはconfig.plで設定された「チェック結果を格納するディレクトリ、および cache 用ディレクトリ)
     $ chmod 755 *.cgi
     $ chmod 666 *.html *.rdf *.xml
     $ chmod 666 etc/.rna*

     $ chmod -R 755 rss/ cache/
     (もしくはconfig.plで設定された「チェック結果を格納するディレクトリおよび cache 用ディレクトリ)
     $ chmod 755 *.cgi

     (ブラウザでアクセスする,もしくはコマンドライン上で実行する)

認証

edit

RNAでは各cgiに対するユーザ認証(Cookieベース)をかけることができます.また,用途に応じて個別に認証の有無を設定できます.利用方法は以下の通りです.

     my $auth_configure_cgi = 1; # 1: 認証を有効に 0: 無効に
     my $auth_file = 'etc/.rna-passwd'; # パスワードのファイル名(変更することをおすすめします)

     $ chmod 666 etc/.rna-passwd

チェックするサイトの設定

edit

TrackBackの追跡

edit

Movable Typeで構築されたサイト内のエントリについてTrackBackおよびRSS内に記述されたリンクの追跡・表示ができます.手順は以下の通りです.

     my $trackback_trace = 1;

     $ chmod -R 777 cache/
     (suEXECが有効である場合は755でも構いません.わからない場合は777に.)

OPML

edit

OPMLによるサイトリストの簡易設定が可能です.OPMLはSharp Reader等で用いられるブックマーク管理のためのXMLフォーマットです.利用方法は以下の通りです.

インポートの際には2重登録をしないようになっていますので,OPML側でチェックするサイトが増えるたびに登録作業をしていただいても構いません.

スタイルシート

edit

     例)@import url(http://www.foo.com/mt/styles-site.css);

テンプレート

edit

テンプレート・ファイルについて

edit

テンプレート・タグ一覧

edit

<$RNABaseURI$>RNA設置場所のURI
<$RNATopURI$>トップページ(index.html)のURI
<$RNATopRSSURI$>トップRSSのURI
<$RNARSDURI$>RSD ファイルのURI
<$RNARecentSiteRSSURI$>recent_site.rdf のURI
<$RNARecentEntryRSSURI$>recent_entry.rdf のURI
<$RNARecentSiteEntryRSSURI$>recent_site_entry.rdf のURI
<$RNAClipRSSURI$>ClipリストのRSS
<$RNAFOAFURI$>FOAF のURI
<$RNAUpdateCGIURI$>rna.cgi のURI
<$RNAAuthenticationCGIURI$>Authentication CGI のURI
<$RNAConfigureCGIURI$>rna-conf.cgi のURI
<$RNAPingCGIURI$>rna-ping.cgi のURI
<$RNAXMLRPCCGIURI$>rna-xmlrpc.cgi のURI
<$RNAAllianceCGIURI$>rna-alliance.cgi のURI
<$RNAClipCGIURI$>rna-clip.cgi のURI
<$RNAOPMLOutputURI$>登録サイトリストのOPML出力を得るURI
<$RNACacheCGIURI$>rna-cache.cgi のURI
<$RNAFOAFCGIURI$>foaf.cgi のURI
<$RNAJavascriptOutputCGIURI$>JavaScript? Feed のURI

<$RNAPageTitle$>ページのタイトル(RSSの channel/titleに相当)
<$RNAPageDescription$>ページのdescription (RSSの channel/descriptionに相当)
<$RNAPageExtraDescription$>RSS の channel/dc:description に相当
<$RNAPageLink$>ページのURI (RSS の channel/link に相当)
<$RNAPageTimezone$>RNAのタイムゾーン
<$RNAPageDate$>ページの日付

<RNACategories></RNACategories>各カテゴリごとの表示を行う。<RNASites>と<RNAItems>を内部にもつことができる。対象カテゴリとその順番を、target属性にて指定可能。例 : <RNACategories target="cat1 cat2">
<RNAContentCategories></RNAContentCategories>内部に<RNAContents>を持つこと以外は<RNACategories>と同じ
<RNASites></RNASites>RNAが取得したRSSごとの表示内容を定義。
<RNAContents></RNAContents><RNASites>内で有効。各RSS内のコンテンツ(<item>)に該当する。
<RNAItems></RNAItems>RSSの<item>に該当する。itemごとの表示内容を定義。
<RNAIfTrackbacksExist></RNAIfTrackbacksExist>対象のitemにトラックバックが存在する場合に表示される。
<RNATrackbacks></RNATrackbacks>トラックバック・エントリごとの表示を定義。
<RNALinks></RNALinks>item/descriptionから抽出したLinkごとの表示を定義。
<RNAIfSiteImageExist></RNAIfSiteImageExist><RNASites>内で使用可能。<image>タグが指定されている場合に、このコンテナの中身が有効になる。中では<$RNASiteImageLink$>、<$RNASiteImageURL$>、<$RNASiteImageTitle$>を使用することが出来る。

<$RNACategoryName$>カテゴリ名
<$RNAContentCategoryName$>カテゴリ名

<RNASiteDateHeader level="day"></RNASiteDateHeader>直前のSiteと日付や時刻が異なる場合に表示する。デフォルトでは、毎日(day)表示する。levelのとりうる値:year、month、day、hour、minute
<RNASiteDateFooter level="day"></RNASiteDateFooter>直後のSiteと日付や時刻が変わる場合に表示
<$RNASiteTitle$>RSSの channel/titleに相当
<$RNASiteLink$>RSSの channel/link
<$RNASiteDescription$>RSSのchannel/descriptionに相当
<$RNASiteExtraDescription$>RSSのchannel/dc:descriptionに相当。
<$RNASiteCreator$>RSSの channel/dc:creatorに相当。
<$RNASiteDate$>RSSのchannel/dc:dateに相当。
<$RNASiteTimezone$>タイムゾーン
<RNAIfSiteImageExist>
<RNAContentCategories>

<RNAContentDateHeader level="day"></RNAContentDateHeader><RNASiteDateHeader>と同じ。
<RNAContentDateFooter level="day"></RNAContentDateFooter><RNASiteDateFooter>と同じ。
<$RNAContentTitle$>RSSの item/titleに相当
<$RNAContentLink$>RSSの item/link
<$RNAContentDescription$>RSSのitem/descriptionに相当
<$RNAContentExtraDescription$>RSSのitem/dc:descriptionに相当。
<$RNAContentCreator$>RSSの item/dc:creatorに相当。
<$RNAContentDate$>RSSのitem/dc:dateに相当。
<$RNAContentTimezone$>タイムゾーン
<$RNAContentSourceTitle$>RSSのitem/ag:sourceに相当。Contentの出展のタイトル
<$RNAContentSourceLink$>RSSのitem/ag:sourceURLに相当。Contentの出展のURI
<RNAIfTrackbacksExist>
<RNAIfLinksExist>

<RNAItemDateHeader level="day"></RNAItemDateHeader><RNASiteDateHeader>と同じ。
<RNAItemDateFooter level="day"></RNAItemDateFooter><RNASiteDateFooter>と同じ。
<$RNAItemTitle$>RSSの item/titleに相当
<$RNAItemLink$>RSSの item/link
<$RNAItemDescription$>RSSのitem/descriptionに相当
<$RNAItemExtraDescription$>RSSのitem/dc:descriptionに相当。
<$RNAItemCreator$>RSSの item/dc:creatorに相当。
<$RNAItemDate$>RSSのitem/dc:dateに相当。
<$RNAItemTimezone$>タイムゾーン
<$RNAItemSourceTitle$>RSSのitem/ag:sourceに相当。Itemの出展のタイトル
<$RNAItemSourceLink$>RSSのitem/ag:sourceURLに相当。Itemの出展のURI
<RNAIfTrackbacksExist>
<RNAIfLinksExist>

<$RNATrackbackTitle$>トラックバックのタイトル
<$RNATrackbackURI$>トラックバックもとのURI
<$RNATrackbackDescription$>トラックバックのdescription(exerpt)

<$RNALinkTargetTitle$>Link先のタイトル
<$RNALinkTargetURI$>Link先のURI

      <RNAIfSiteImageExist>
        <a href="<$RNASiteImageLink$>"><img src="<$RNASiteImageURL$>" alt="<$RNASiteImageTitle$>" /></a>
      </RNAIfSiteImageExist>

     例:<$RNAPageDate format="%Y年%m月%e日"$>
     例:<$RNAContentDate format="%Y.%m.%d %I:%M %p"$>
     多言語対応(%X等)は実装されていません.

制御文字内容
%aabbreviated weekdayMon、Thu
%AweekdayMonday、Thursday
%babbreviated month nameJan、 Sep
%Bmonth nameSeptember
%dday of the month、two digits09、 01
%eday of the month' 9'
%H24-hour clock16、03
%I12-hour clock04、11
%k24-hour clock' 9'
%l12-hour clock' 4'
%mmonth、two digits 09
%Mminute、two digits02
%Ssecond、two digits04
%yyear、two digits 01
%Yyear、four digits2001
%pEither AM or PMAM

カテゴリごとのページの設置

edit

RNAでは、デフォルトで作成されるページの他に、追加ページを設置することが出来ます。追加ページでは、対象カテゴリを設定することが出来ます。

手順

edit
Categoryスペース区切りで入力します。空の場合は、すべてのカテゴリが対象になります。
Typeどのリストから派生させるかを選択します。
URICategoryとTypeを入力した後にURI欄をフォーカスすると、自動的にデフォルトの名前が入ります。適宜修正してください。
Titleページのタイトルを入力します。
Descriptionページの説明文を入力します。
Templateテンプレートを選択します。使用するテンプレートは、あらかじめRNAのテンプレートディレクトリ(デフォルト:template/) に入れておきます。(注:テンプレートのファイル名は 「〜template」としてください。「〜」の部分は任意です。)

cronでの更新について

edit
cronでの実行はこちらではテストしていませんが、下記のように設定すれば動くはずです。 RNA-cron事例について

考慮点

edit

cron用スクリプトの例1(ローカルのシェルで実行する)

edit
#!/bin/sh
cd /<RNAがインストールされているディレクトリ>/
./rna.cgi >/dev/null 2>&1

cron用スクリプトの例2(http越しにアクセスする)

edit
#!/bin/sh
/usr/bin/wget -q http://<RNAのURL>/rna.cgi > /dev/null 2>&1

スパムの防止について

edit

予想される攻撃

edit
RNA では、ブラウザから簡単に、アンテナの更新などの操作ができます。 しかし、便利な反面、rna.cgiなどのCGIに短時間に連続してアクセスするスパム攻撃の標的になる危険性もあります。特に、トラックバック追跡を短時間に集中して実行されると、

といった影響が発生する可能性があります。

回避法1:最小実行間隔の設定(RNAの設定)

edit
RNAでは、「Refresh Antenna」と「Trace Link/Trackback」の2つのオペレーションについて、最小実行間隔を設定することが出来ます。 config.plにおいて、$min_interval_refresh と $min_interval_linktrace に間隔を秒単位で設定してください。 たとえば、
$min_interval_refresh   = 1 * 60;  # [sec]
$min_interval_linktrace = 10 * 60;  # [sec]
と設定すると、「Refresh Antenna」は 1分以上の間隔をあけないと実行できないようになります。同様に、「Trace Link/Trackback」は 10分間隔となります。

回避法2:.htaccess によるアクセス制御 (Webサーバの設定)

edit
多くのWebサーバーでは、.htaccessファイルを用いてアクセス制御を実行することが出来ます。設定方法については google://.htaccess などを参考にしてください。

その他のトピック

edit

未来の日付を持つエントリについて

edit

記事を投稿する際、未来の日付を指定する機能をもつCMSツールがあります。結果として、未来の日付のエントリを持つRSSやAtomが作成されます。その機能自体にはいろいろと使い道がありそうです。しかし、未来日付のエントリを持つRSSをアンテナやリーダーでアグリゲートした場合、特定サイトの記事だけが常時一番上に表示されてしまいます。

RNAでは、未来日付のエントリを対象外とすることができます。具体的には、config.pl において、下記のように設定します。

[変更前] 
my $allow_future_entries = 1;
    ↓
[変更後]
my $allow_future_entries = 0;

Weblogツールを認証サーバーとして使用する方法

edit
config.pl において下記の変数を適切に設定すると、XML-RPCに対応しているWeblogツールと同じユーザー名/パスワードにてRNAにログインできます。その際、RNAのパスワードファイル(デフォルト etc/.rna-passwd)に登録されているアカウントは無効になります。 Movable Type 3.01D-ja で動作確認済みです。

【例】
$auth_mode = 'weblog'; 

$weblog_xmlrpc_uri = 'http://foo.bar.com/mt3/mt-xmlrpc.cgi'; # WeblogツールのXML-RPCサーバーを指定します。 
$weblog_id = 4;   # 自分のWeblogの BlogIDを設定します。