Thank you! Akiary |
---|
☆Akiaryとは、
YAMAMOTO Akira氏作の、Web日記作成支援環境、フリーソフトである。CGIプログラムであり、よくある掲示板のように、オンラインで更新、メンテナンスができる。
→作者の山本氏による、
Akiaryのページ
(注:現在ご覧のこのページでは、古いバージョンのAkiaryについて扱っています。最新情報は上記のサイトなどで確認してください。)
このサイトは、私いしだなおとが、Akiaryの有用性を世間に知らしめるべく、個人的に運営するものです。
作者である山本氏とは関係がなく、内容は非公式なものです。ご注意ください。
Akiaryをインストールするユーザーさんの手助けになればと思います。
ほとんどの場合は、作者の山本氏が用意したドキュメント「00README.txt」や「Akiaryのページ」
をみれば、解るはずです。Akiaryは、CGIの中では、比較的に簡単に設置できるほうだと思います。
もし上記ドキュメントを見て解らないようだと、導入にはちょっと勉強が必要かもしれません。
ここでは、詳細・冗長な解説を試みますが、内容の難易度的には、上記ドキュメントと大差無いかもしれません。
しかし、導入に障害を感じる初心者に参考になるような解説を、できるだけ盛り込むようにしました。
すでにホームページ制作に慣れている方は、各種参考文献(書籍・ネット)も参考にしながら、CGIにチャレンジしましょう!
同封されているドキュメント(00README.txt)によく目を通しましょう。
圧縮ファイルで配布されていますが、圧縮に関する解説はここでは行いません。
→参考:圧縮・解凍の基礎知識
自分の手で、WWWサーバーにCGIプログラムを設置する必要がありますから、
ある程度、特有の知識が必要になってきます。しかしやってみよう、という気があるなら、
すぐ憶えられます。私は自信はあったのですが、初めてのCGI設置ということで、
つまづいたところもありました。でもダイジョーブ。
※「00README.txt」や「Akiaryのページ」をよく読んでください。 もしそれらと私の書いた文章に食い違いがあると感じたら、作者の山本氏が用意した、「00README.txt」や「Akiaryのページ」のほうが正しいと思ってください。
○「akiary.cgi」(日記本体のCGIプログラム)を設定・編集します。
私のAkiary設定例を見ながら解説を読んでください。
「(数字)| 」は、行数(私の設定ファイル)です。
→参考:「メモ帳」などのテキスト・エディタでファイルを編集する方法
perlのパス設定
1| #! /usr/local/bin/perl
プロバイダーなどが運営するWWWサーバーは、多くの場合UNIX系のOSで動いています。
UNIXでは、プログラムを実行するときの方法がWindowsやMacとはちょっと違っています。
詳しいことは省きますが、この一行目は、スクリプトを実行するとき、実行用プログラム
がどこにあるかを指定するためのものです。ここでは、CGIを実行するのに必要な、
「perl ("パール"と発音する)」というスクリプト言語を実行するための指定です。
あなたが利用するWWWサーバー(プロバイダー)が、「ホームページ開設設定例」「CGI設定方法」
などという文書を用意していたら、それらを調べれば解ると思います。(キーワード:perl
パス設定) あとは、プロバイダーのサポート担当窓口に問い合わせてください。
無料レンタル系のサーバーの場合、CGIを使えるようになっていたなら、必ず設定方法を解説した
ページがあるはずです。探してください。
パスワードを決める(重要)
16| # パスワード
17| $PASSWORD = "xxxxxxxx"; # ←←←← 必ず変更すること!!!!!
難しく考えることはないのですが、とりあえずなにか自分で憶えやすいパスワードに変えておきます。
パスワードが漏れて悪用された場合、あなた自身が困ることがなくても、
この日記CGIを踏み台にして、どこか余所に迷惑が及ぶことがあるかもしれません。
数人で日記を共著する時など、注意が必要です。もっともそんなに神経質になるほどのことはないです。
誰かに書き換えられたらとても困ってしまうような日記なら、それなりに管理しましょう。
→参考:パスワードを設定・変更する方法は、将来のバージョンでは変わるかもしれません。
サーバーに関する設定(重要)
18| # 日記のディレクトリ(このスクリプトから見て)
19| $DIARYDIR = "/dialup/naoto/diary/"; # for ksky
21| # 日記のURL(http)
22| $DIARYHTMLDIR = "http://www.ksky.ne.jp/~naoto/diary/"; # for ksky
$DIARYDIRと$DIARYHTMLDIRの設定が、このCGIのキモです。上記「perlのパス設定」
同様、プロバイダーの資料を調べて設定します。具体的に何を書くかは、プロバイダーによって
千差万別でしょうから、同じプロバイダーを使っていてCGIも使っている人に聞けば早いでしょう。
キーワードは、「CGI実行ディレクトリ」、「CGIデータディレクトリ」、「ユーザーのhtmlディレクトリ」
です。「ディレクトリ」とは、「フォルダ」と同義語です。
一般的な話をしますと、CGIというのは、「$HOME/public_html/cgi-bin/」というディレクトリ
に置くことになっています。決められた場所以外に置いたCGIは、実行しません。(もしくは動作を保証
しないか、禁止されている。)
図で説明します。
00README.txtの、【複雑な設置構成例】と同様な(ちょっと違う)場合です。
頭に"+ "があるのは、ディレクトリ(フォルダ)です。
Akiaryと直接関係ないファイルなど(画像など)は、省いてあります。
→参考:
※1 このindex.htmlは、cgi-bin/の中身を直接見られないようにするための、
セキュリティ対策です。中身は空でいいので、置いておくと良いでしょう。
日記及びCGIの動作には影響しません。私は、
「<html><title> </title></html>」
とだけ書いたファイルを置いています。
これはあくまで例であり、これと違うことは多々あるでしょう。最もよくあるのは、
ユーザーには public_html 以下しか見えず、しかもpublic_html自体が/(ルート)である様に見える場合です。
これは、他のユーザーのファイルや、システムに関係するファイルに触れないようにするために、
プロバイダーがしているのです。
さらにトリッキーな例だと、ユーザーがCGIを設置するには、cgi-bin/にFTPで置いた後、
メールでプロバイダーの管理担当者にお願いして、別のCGI専用ディレクトリに移動してもらう、
というのがあります。私が使っているプロバイダーのことです。
以上は前置きなんですが、混乱していないですか?
さて、ここから具体的な説明をします。まず日記のディレクトリ$DIARYDIRには、
akiary.cgiから見て、日記ディレクトリがどこにあるかを指定します。
上の例だと、「../diary/」と指定すれば良いでしょう。つまり、
$DIARYDIR = "../diary/"; となります。かんたんですね。ちなみに、
「..」は、ひとつ上の(階層の)ディレクトリ(またはフォルダ)を意味します。
問題は、これではダメな場合、例えば、CGIをまったく別の所に置き、しかものそこが
ユーザーが自由に管理できない(どこかハッキリしない)ところに設置する場合です。
そんな時は、日記ディレクトリを「絶対パス」で指定してやる必要があります。
「絶対パス」には、ややこしいことに、FTPから見える「見かけ上の」絶対パスと、
OSの中での「真の絶対パス」が、別になっていることがあります。CGIには、真の絶対パス
を調べて設定してやる必要があります。
→参考:サーバー別設定資料集
日記htmlのファイル名を変える
24| # 目次のファイル名
25| $INDEXHTML = "index.html";
26| # 最新版日記のファイル名
27| $NEWHTML = "n_diary.html";
標準では、日記の目次と最新版のファイル名はそれぞれ、"index.html"、"new.html"
になっています。このままで構いませんが、変えたい場合(すでに他で同じ名前を使っている時など)は、
ここで指定します。
最新版日記に、何日分表示するか
29| # 最新版日記の日数
30| $NEWDIARYDAYS = 14;
見ての通りの指定です。私は長めがいいと思ったので、14にしました。標準は7です。
あまり長いと、くどく感じたり、読むとき表示されるまで待たされたりします
(いわゆる"重い"状態)。
バックナンバーがない場合のリンク先
32| # 先月のバックナンバーがない場合のリンク先
33| $PREVMONTH = "index.html";
34| # 来月のバックナンバーがない場合のリンク先
35| $NEXTMONTH = "index.html";
標準ではここは空("")になっています。そのままで問題ありません。
目次ページにリンクしたいときは、上のようにします。
各テンプレートファイルの名前を指定
36| # バックナンバー用テンプレートファイル
37| $TMPBNFILE = $DIARYDIR . "tmpbn.html";
38| # 目次用テンプレートファイル
39| $TMPINDEXFILE = $DIARYDIR . "tmpindex.html";
40| # 最新版用テンプレートファイル
41| $TMPNEWFILE = $DIARYDIR . "tmpnew.html";
テンプレートファイルとは、日記の「雛型」になる部分を書いたファイルです。
Akiaryは、これらファイルを読み込み、Akiaryを制御するための特別なコメントの部分に
(CGI画面で入力した)日記本文などを埋め込んで、日記htmlを書き出します。
テンプレート自体は文法的にはhtmlそのもので、そこに制御用コメントを埋め込む形になっています。
→参考:ですから、Akiaryで作った日記を読むときは、普通のhtmlを読むのと同じであり、
サーバーに余分な負担を殆どかけないのです。このあたりが一般的な掲示板と違うところです。
ところで設定ですが、注意点はひとつ、実際のテンプレートファイルの名前と、 この欄に書く名前が一致するようにすることです。おすすめの方法は、 この欄はまったく変更せず、テンプレートの方をこれに合わせて名前をつける方法です。 標準のテンプレートを使うときはこのあたりを気にする必要もないでしょう。
日記入力(更新・修正)用の画面の、大きさを変える
42| # 日記入力時の題名の枠の長さ
43| $SIZE = 60;
45| # 日記入力時の内容の枠の大きさ(列)
46| $COLS = 54;
48| # 日記入力時の内容の枠の大きさ(行)
49| $ROWS = 10;
これは日記を書くときの画面(の、枠の大きさ)を変える指定です。
私は、横に長いと書きづらかったので、枠の大きさ(列)を、54にしました。
同様に、行数を大きくとりたいときは、枠の大きさ(行)$ROWS=10;の数値を大きくします。
この数字は、半角英数字の文字数で数えた値です。
ここで指定した大きさしか日記が書けないわけでははなくて、いっぺんに表示しきれない分は、
スクロールすれば見えます。逆に、一日分の日記の分量を決める指定はありません。
注意する点は、日記入力時の題名の枠の長さの指定は、
そのとおりの大きさの枠が表示されるとは限らないことです。
少し余裕を見て、大きめの指定にしておくと良いでしょう。
その他のオプション指定
50| # ロックファイルのディレクトリ
51| $LOCKDIR = $DIARYDIR;
52| # FTP転送ファイルによる更新(0:off,1:on)
53| $FTPFILEMODIFY = 0;
ここは、特に明確な目的が無い限り、標準のままにするべきでしょう。
→参考:FTP更新機能は、将来のバージョンで無くなる可能性があります。
○テンプレートファイルを設定・編集します。
日記の題名や、あなたの名前やメールアドレス等の部分を書き換えてください。
Akiary標準のテンプレートは、込み入った部分も無く、見やすくできているので、
書きかえるときに戸惑うことは少ないと思います。
→参考:
書き換えには、エディターの「検索→置換」機能を使うと便利です。
○FTP
これについては、今のところあまり詳しく解説する気はありません。
参考になるURLを示せればと思っています。
Akiaryに特有な事柄は、日記ディレクトリにテンプレートファイルと共にlockfileも置くと言う事です。
あとは、CGIはASCIIモード(テキストモード)で転送すること、文字コード・改行コードに気を付けることです。
文字コードと改行コードについては、ASCIIモードで送れば自動で調整されるはずです。
○パーミッションについて
CGIを設置する時に引っかかるもうひとつのポイントが、ファイルのパーミッション(モード)です。
これも"UNIX"特有のものなのですが…。一度憶えれば、ほかのCGIを設置するときにも役に立ちますから、
慣れておくとよいでしょう。
パーミッションとはなんでしょう?MS-DOSで言うところのアトリビュート、Windowsだと、
プロパティの中の属性という項目と、同じ類のものです。違うところは、
UNIXではマルチユーザーといって、アクセス権を細かく区別していて、
それを考えないといけないということです。この辺の機能は、NTにもあるみたいですね。
実際には、3種類の項目について、3つの区分のユーザーに、それぞれ指定するのが基本になります。
3種類の項目とは、
□読む権利 (r)ead
□書きかえる権利 (w)rite
□実行する権利 e(x)cute
、ディレクトリの場合はアクセスする権利
で、3つの区分のユーザーとは、
◇自分自身、ファイルの所有者 (owner)
◇同じグループに属するユーザー (group)
◇その他全てのユーザー (others)
です。
パーミッションを、3桁の数字で指定する方法を憶えましょう。
例)644
左の数字は、自分(owner)に対する指定です。真中がグループ(group)に、右がその他(others)に対応します。
普通はグループの区分は意味がない場合が多いです。自分一人でひとつのグループになっているか、
逆に同じプロバーダーの一般ユーザーが全て同じグループになっていて、実質その他と同様であったりします。
3桁のそれぞれには、1〜7の数字が入ります。
まず、読む権利が4、書き換え権が2、実行権が1と憶えてください。そして、
権利を与える項目の数字を足し合わせたものが、その区分に対するパーミッションになります。
上の例だと、左の6は、自分自身に読む権利(4)+書き換え権(2)を与えて、6になります。
グループとその他には読む権利(4)だけ与えます。
もうひとつ例をあげます。500だとどうでしょう。自分は読み込み(4)+実行(1)で5になり、
他には一切権利を与えません(0)。7は全ての権利を認めてしまいますから、
自分以外の区分に指定するときは、細心の注意が必要です。それと、2の書き換え権も同様に、
自分以外にはできるだけ認めないようにします。(注意が必要な数字:2, 3, 6, 7)
足し算するとき、「桁の繰り上がり」はしません。というか起こらないです。
以上を踏まえて、それぞれのファイルにどのようなパーミッションを指定したらよいか、
みていこうとおもいます。
.htmlファイル、画像のファイル(.gif, .jpgなど)は、
自分は読み書き、それ以外の人は読むだけですから、644になります。
.cgiファイル(直接実行されるCGI)の場合は、
644に加えて、実行権を与えますから、755になります。
.plファイルなど
おなじCGIでも、直接実行(アクセス)しないものは、644にします。
cgi-bin/ ディレクトリ
自分だけがディレクトリの内容を操作しますから、755です。
データディレクトリ(Akiaryでは、日記ディレクトリ)
CGIプログラムが何かファイルを書きこむときは、データディレクトリを用意して、
そこのパーミッションを777にします。注意して欲しいのは、777だと、「何でもアリ」
で保護されない状態になってしまいます。例えば、そこに置く必要のないものは、
極力置かないようにします。
CGIと関係ないファイルを置くディレクトリを777にするのは避けましょう。
→参考:
よりセキュリティに気を使う場合、groupにはなにも許可を与えないようにすることができます。
普通はこれでも正常にWebを運用できます。しかしサーバーの設定によっては、支障をきたす場合もあります。
様子を見ながら決めてください。
→参考:
ファイルを削除したり、違う中身のものと置きかえるのに、そのファイルの書き換え権(w)は必要ありません。
必要なのは、そのファイルがあるディレクトリの、書き換え権(w)と実行権(x)です。
IE、NNなどのブラウザ−から、CGIに直接アクセスしてみてください。
これで何の問題も無ければそれで良いのですが…、そうでないときに見なおすポイントは、
あなたが有料のプロバイダーを使っていて、そこのサーバーに設置しようとしているのなら、
プロバイダーのサポート係に問い合わせるのが良いでしょう。そのためのサポートですから。
→参考: おそらくは日記を書くのはあなた一人だけでしょうから、そのときは、 akiary.cgiに対するリンクを、どこにも設けないようにします。 そして、ブラウザ−の「お気に入り」「ブックマーク」にのみ登録して、 それを使ってアクセスします。こうすることによって、 無意味にCGIにアクセスされる心配が無くなります。 (どのみちパスワードを知らない人に、akiary.cgiにアクセスさせる必要はないでしょう。)
さて、以上でAkiaryが使えるようになりました。どんな日記にするかは、あなたの自由です。1| #! /usr/local/bin/perl 2| # 3| # akiary - Y.Akira's Diary CGI - v.0.40 (2000/09/21) 4| # Copyright (C) 2000 by YAMAMOTO Akira 5| # mailto:yakira@hi-ho.ne.jp 6| # http://www.hi-ho.ne.jp/yakira/akiary/ 7| # 8| # 改変 いしだなおと <not2000@anet.ne.jp> 9| # 内容: 10| # (2000/09/29) "www.ksky.ne.jp"に設置するための設定変更 11| 12| #------------------------------------------ 13| # 設定(ご自分の環境に応じて変更して下さい) 14| #------------------------------------------ 15| 16| # パスワード 17| $PASSWORD = "xxxxxxxx" # ←←←← 必ず変更すること!!!!! 18| # 日記のディレクトリ(このスクリプトから見て) 19| $DIARYDIR = "/dialup/naoto/diary/" # for ksky 20| # $DIARYDIR = $ENV{'HOME'} . "/html/diary/" # Hi-HOユーザー専用 21| # 日記のURL(http) 22| $DIARYHTMLDIR = "http://www.ksky.ne.jp/~naoto/diary/" # for ksky 23| # $DIARYHTMLDIR = "http://www.hi-ho.ne.jp/yakira/diary/" # for Hi-HO 24| # 目次のファイル名 25| $INDEXHTML = "index.html" 26| # 最新版日記のファイル名 27| $NEWHTML = "n_diary.html" 28| # $NEWHTML = "new.html" 29| # 最新版日記の日数 30| $NEWDIARYDAYS = 14; 31| # $NEWDIARYDAYS = 7; 32| # 先月のバックナンバーがない場合のリンク先 33| $PREVMONTH = "index.html" 34| # 来月のバックナンバーがない場合のリンク先 35| $NEXTMONTH = "index.html" 36| # バックナンバー用テンプレートファイル 37| $TMPBNFILE = $DIARYDIR . "tmpbn.html" 38| # 目次用テンプレートファイル 39| $TMPINDEXFILE = $DIARYDIR . "tmpindex.html" 40| # 最新版用テンプレートファイル 41| $TMPNEWFILE = $DIARYDIR . "tmpnew.html" 42| # 日記入力時の題名の枠の長さ 43| $SIZE = 60; 44| # $SIZE=40; 45| # 日記入力時の内容の枠の大きさ(列) 46| $COLS = 54; 47| # $COLS=80; 48| # 日記入力時の内容の枠の大きさ(行) 49| $ROWS = 10; 50| # ロックファイルのディレクトリ 51| $LOCKDIR = $DIARYDIR; 52| # FTP転送ファイルによる更新(0:off,1:on) 53| $FTPFILEMODIFY = 0;引用元:akiary.cgi (ver.0.40)
同じプロバイダーでも、同じ設定でできるとは限りません。厳密には、同じサーバー(ドメイン) ごとにプロファイルが必要でしょう。 (biglobeは、複数のWWWサーバーを、別のサーバー・プログラムで運用しているそうです。)
"Contents"に戻る
日記作成支援CGI「Akiary」の特長で私が気に入っている点は、作られる日記の見た目を、
ほぼ思い通りに変えられるということです。オリジナル(YAMAMOTO氏作)のテンプレートでも、
オーソドックスな見た目が楽しめるのですが、自分のホームページに違和感なくとけ込ませる為には、
色使いなどをカスタマイズするのが効果的です。
→参考:
多少はhtmlタグの知識がないと、解りづらいかもしれません。
あらかじめ、Akiaryが正常に動作するようにプロバイダーなどのWWW
サーバーに設置、設定してください。そのとき、あなたの環境に合わせて、
akiary.cgiを適切に設定するのを忘れないでください。
→参考:
akiary.cgiに書き加えた設定内容をメモしておくと、後々役に立つかもしれません。
ファイル名を、オリジナル版にあわせるように変更します。
もしくは、akiary.cgiを変更します。
→参考:
akiary.cgiの中の、$TMPBNFILE、$TMPINDEXFILE、$TMPNEWFILEの値と、
各テンプレートのファイル名が一致するようにします。
オリジナル版テンプレートに上書きするように、サーバーにアップロー
ドしてください。(バックアップは取っておいてくださいね。)
どの位置にアップロードするかは、Akiaryの00README.txtを参照してください。
→参考:
日記を更新するまで、変更が反映されません。
→参考:○テンプレートをカスタマイズするときの注意点
tmpindex.htmlとtmpbn.htmlの中のうち、<!--akiary_diary-->及び
<!--akiary_diary reverse-->で始まり、
<!--/akiary_diary-->で終わる部分をひとつの単位として、
一日分の日記のまとまりになっています。
この間は、「インデンテーション(字下げ)」を行わないほうが良いでしょう。
なぜなら、字下げをした場合、Akiaryはそのあたりを考慮してhtml生成していないので、
結果として生成されるhtmlのソースが、大変見にくくなってしまいます。
そればかりか、思わぬとことに改行とタブ文字を挟んでしまって、
文章中に不自然な半角スペース分の空白ができてしまうことがあります。
テンプレートの一日分には、改行、半角スペース、タブを最小限にすると、
見やすくまとまるし、トラブルも少ないでしょう。
メモ帳(※)などのテキスト・エディターでファイルを開きます。
そのままダブルクリック(クリック)で開くと、おそらくIEなどのブラウザーで開かれると思い
ます(関連付けによる)。そのときは、あらかじめ開いておいたメモ帳
(スタート→プログラム→アクセサリ→メモ帳)の、ツールバーのファイ
ル(F)メニューから開くか、もしくはファイルを直接をメモ帳のウインドウの中
にドラッグ&ドロップしてください。編集後は上書き保存してください。
→参考:(※)
メモ帳よりも、htmlの色分け表示に対応したエディターを使う
と編集がしやすいでしょう。
おすすめ:TeraPad (フリーソフト)
http://www5f.biglobe.ne.jp/~t-susumu/
もちろん、Wordなどのワープロを使って編集しても良いです。html専用エ
ディターを使うのもよいでしょう。
○html(テンプレートファイル)を編集するときの注意点
以下に示す記号などは、特別な意味を持っていて、編集したり削除したり
したときに、足りなかったり多かったりすると、正常な表示ができないhtml
になってしまいます。
何かうまくいかないときは、この点に注意してよく見なおしてみてください。
(「スペルミス」にも注意してください。)
<>":; {} <!-- --> /* */
実際に動いているAkiaryの画面から、日記を書きこむときには、「改行」に注意しましょう。
基本的には自分では改行せずに、折り返しに任せておいたほうが、日記を見るとききれいに見えます。
意味上の段落で改行するときは、<br>と書いておくのもよいでしょう。
○アンカーの活用
日記の一日分には、それぞれ年月日を名前にしたアンカーが埋め込まれています。
例えば1999年12月31日を振り返る場合には、
「<a href="199912.html#19991231">以前</a>に話題にしましたが、」
2001年1月12日に、先週の話題を持ち出すときなんかは、
「<a href="#20010107">先週</a>の話題のその後ですが、」
などと使えます。つまり特定の日の日記に、リンクを張れるのです。
○FTP更新機能
この機能は私は使ったことがないのですが、FTPで転送した日記を、認識してくれる機能だそうです。
ファイル名は、200010.htmlのように、バックナンバーの形式と同じにしておきます。
現在ご覧のこのページでは、古いバージョンのAkiaryについて扱っています。(2000年10月時点での内容になります。)
最新情報は下記のサイトなどで確認してください。
→作者の山本氏による、
Akiaryのページ
このサイトを見てAkiaryの設定をした結果、なにか問題が起こって被害に遭われましても、
私およびYAMAMOTO氏は*一切責任を取れません*のでご注意ください。
この文章全体を私に無断で一般に公開することは、しないでください。
このサイト(Webページ)へのリンクは、まったく自由に行って結構です。
Akiaryは、YAMAMOTO Akira (yakira@hi-ho.ne.jp) 氏の著作物(フリー ソフトウェア)です。
Thank You! Akiary 第1版 2000年10月10日
アンケート・フォーム追加 2000年12月2日
サイト移転に伴い、一部修正・整理 2003年12月31日