unico diary system 設置マニュアル
for Ver.2.1.0 (19980413 first. 20020531 modified.)
特徴
- シンプルな日記・更新記録用システム。
- デザインを別HTMLファイル1つで設定できるため、デザインの自由度が高く、運営中でもデザイン変更が容易。
- 入力項目の追加が容易。
- 設置難易度初級〜中級。
目次
u_diary.cgiの設定
ほとんどはデフォルトのままで構いませんが一応目を通しておいてください。
CGIファイルを書き換えるためには、テキストエディタをつかいます。WINDOWSでは「メモ帳(notepad)」・Macでは「SimpleText」が標準でついてきます。
#!/usr/bin/perl
Perl のパスを設定します。
わからない方は、たいがい設置サーバ(プロバイダ)のHPに載っています。
載っていなければ、管理者に尋ねるか、telnet で接続して which perl とすることで確認できます。
一般的には「/usr/bin/perl」か「usr/local/bin/perl」となっています。
必須設定
$script = './index.cgi';
- このスクリプトのファイル名
$css = './unico.css';
- 管理画面等用CSSファイル。
$logfile = './u_diary.dat';
- ログ保存ファイルを指定します。変更してご利用になるほうがセキュリティが高いです。
$template = './template.html';
- 表示用テンプレートファイルを指定。
$jcode = './jcode.pl';
- 日本語コード変換ライブラリ jcode.pl へのパスを指定
各種ファイルのパスの設定です。ファイル名を変更したり、CGI本体と別のフォルダに設置する場合以外は変更しなくてかまいません。
一見同じように見えますが、$script, $css はURL(絶対でも相対でも可)、$logfile, $template, $jcode はパス(絶対でも相対でも可)で指定してください。
$password = 'hamchans';
- 管理者用のパスワードの設定。管理者モード(ログの削除、管理者レスの書き込み)に入室するのに必要となります。必ず変更してください。
各種カスタマイズ項目
$d_max = 10;
- 1ページに表示する記事の数を半角の数字で設定。
$max = 50;
- 記事の記録件数を半角数字で設定。この件数を超えた分の記事は、古いものから順に削除されます。
$link = 'on';
- 記事の本文に記入された URL ・メールアドレスに、自動的にリンクを設定するオートリンク機能を利用する場合は on に設定してください。
$target = ' target="_blank"';
- 上記オートリンク時のターゲット属性。
$link_max = 40;
- 長いURLが打ち込まれた場合、レイアウト崩れを防ぐため、オートリンク時の見かけのURLの長さを制限します。
たとえば、$link_max = 40; $target = ' target="_blank"'; のとき、
http://www.azworks.org/xxx/yyy/zzz.cgi?parame=data
↓
<A HREF="http://www.azworks.org/xxx/yyy/zzz.cgi?parame=data" TARGET="_blank">http://www.azworks.org/xxx/yyy/zzz.cgi?p...</A>
と変換されます。
時刻関連
$date ='%y/%m/%d(%D) %H:%I:%S';
日付表示フォーマット(運用中でも変更が反映されます)。以下の表のとおり、%x が時間表示に置換され、$log{date} と置換されます。
文字列 値 フォーマット 表示例 %Y 年 4 桁の数字 1999 %y 年 2 桁の数字 99 %M 月 テキスト形式(@month で指定) Jul %m 月 2 桁の数字 01 %n 月 先頭にゼロを付けない数字 5 %d 日 2 桁の数字 04 %j 日 先頭にゼロを付けない数字 12 %D 曜日 テキスト形式(@week で指定) Sun %h 時 数字(12 時間単位) 01 %H 時 数字(24 時間単位) 18 %g 時 先頭にゼロを付けない数字(12時間単位) 10 %G 時 先頭にゼロを付けない数字(24時間単位) 17 %a 午前/後 文字列(@m で指定) am %I 分 数字 03 %i 分 先頭にゼロを付けない数字 5 %S 秒 数字 07 %s 秒 先頭にゼロを付けない数字 41 @month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
- 月(%M)。1〜12月の順でテキスト形式を指定。
@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
- 曜日(%D)。日〜土の順でテキスト形式を指定。
@m = ('am','pm');
- 午前/午後(%a)
セキュリティ関連
@tag = ('b','font');
- 有効タグを設定。「'」でくくり「,」で区切る。<,>は不要。全面禁止は
@tag = ();
$style = 'off';
- タグのstyle,class,id属性を有効にするとき on。
$jscript = 'off';
- タグのJAVAスクリプト属性(onClickとか)を有効にするとき on。
$max_length = 65535;
- 最大入力バイト数を半角数字で設定。0 に設定すると無制限に受け付けます。
そのほか
$method = 'post';
- FORMのMETHOD属性を指定(通常はPOST)
$form_html = './form.txt';
- 拡張フォーム設定ファイル。通常は使いません。詳細はテンプレート書式をご覧ください。
$tz = 9;
- 海外サーバなど時刻がずれる時のみ変更してください
ファイルのアップロード
FTPソフトで各ファイルをアスキー(テキスト)モードでアップロードして、カッコ内のとおりパーミッションを変更してください。複数の指定があるものは左から順に試してみてください。(設置するサーバによって左の設定では動かないものがあるため)右に行くほど安全性が落ちます。
- u_diary.cgi (701 or 705 or 755) CGI本体
- u_diary.dat (600 or 606 or 666) ログ記録ファイル
- template.html (644) 表示用テンプレート
- jcode.pl (644 or 705 or 755)日本語コード変換スクリプト。
- index.html (644) 内容は何でもかまいませんが、ディレクトリリストを見られないように設置しておいた方がいいと思います。
管理者モードの使い方
http://設置URL/unico.cgi?action=admin にアクセスすると、パスワード入力フォームが表示されます。$password で設定したパスワードを入力すると、管理画面が表示されます。
当日の日記は最上段のフォームから書き込んでください。過去の書き込みは、各記事の表示欄が入力フォームになっていますので、書き込み内容を変更して、リストボックスから「このログを編集」を選択してボタンを押すと内容の変更が、「このログを削除」を選択してボタンを押すと削除が可能です。一度削除・変更した記事は復帰できません。
DoCoMo, J-PHONE の携帯電話(インターネットアクセス対応機)から上記アドレスにアクセスすると、携帯電話用の新規記事書き込み画面が表示されます。携帯電話からの記事削除・変更は今のバージョンではできません。
動作確認 & 動かない場合は・・・・
ファイルのアップロードとパーミッションの設定が終了したらきちんと動作するかどうか確認して下さい。u_diary.cgi にアクセスし、書き込んで見てください。また、管理者モードにもログインできるかチェックした方が良いかと思います。
ここでは今までにいただいた、よくある質問を掲載しています。
CGIサーバと通常のサーバが別になっています。どこにどのファイルを置けばいいでしょうか?
@nifty, biglobe, hi-ho, wakwak などが、これに該当します。
u_diary.cgi, template.html, u_diary.datは、必ずCGIサーバに入れてください。unico.css は通常サーバ、その他スキンに含まれる画像ファイル・CSS・JSなども通常サーバに入れて、template.html の各ファイルの呼び出しタグを、http://から始まる絶対URLに書き換えてください。
画像が表示されません。
当アーカイブに含まれる画像はすべてPNGフォーマットですので、一部のブラウザでは正常に表示できません。最新版ブラウザで表示してみてください。
また、 @nifty などではCGI設置場所の制限(ex. CGIは hpcgi*.nifty.com ・HTMLは homepage2.nifty.com)により、画像ファイルの呼び出しが禁止されている場合がありますので、その際は通常のディレクトリ(サーバ)に画像ファイルを転送して、template.htmlの画像のタグを転送した場所に合わせて書き換えてください。
掲示板(日記)の本文が改行されません!!デザインが崩れます。
アーカイブ同梱の template.html (以下、デフォルトデザインファイル)であれば、普通に日本語を入力していれば大丈夫です。テスト書き込みなどで、半角英数字をスペースを挟まずに入力すると、改行されません。ブラウザの仕様です。私の所為じゃないので、どうしようもありません(苦笑)普通に英語を入力しても、単語の間にスペースを挟んでいるので改行されているはずです。
ただし、長いURLを入力した場合は、切れ目のない半角英数字の文字列なので、改行されませんのでご注意ください。
設置したけどうごきません。「500 Server Error」 、「文書にデータが含まれていません。」 といったエラーが出る。
さまざまな原因から CGIプログラムが正常に動かなかった場合にでるエラーメッセージですので、原因は特定できませんが、よくあるものとしては以下のことが考えられます。
- そもそも CGIの使用が許可されていないサーバだった。
- この時はどうあがいても設置できませんので、別サーバにするかあきらめてください。また、サーバによっては、CGI を動かすために .htaccess という名称のファイルを置かなくてはなりません。.htaccess の中身は以下の二行を書いてください。
Options FollowSymLinks ExecCGI Includes
AddType application/x-httpd-cgi .cgi
ピリオドから始まるファイル名が付けられないことも有りますが、その際は別の名前(htaccess.txt 等)で作成して、アップロードしてから名前を変えてください。 - Perl のパス(1行目)が間違っている。
- 設置サーバのCGIに関するページに掲載されていると思いますので、確認してください。
どうしてもわからない場合は、telnetでログインして、which コマンド(プロンプトで which perl とタイプ)で探すか、サーバの管理者に問い合わせてください。 - Perl のバージョンが 古い。
- このプログラムは現在もっとも普及している Perl5 以上を対象としています。Perl のバージョンアップを行ってください。
HiHo では、各サーバに必ずある、というわけではないようですが、 #!/usr/local/bin/perl ではなく、 #!/usr/local/bin/perl5 に Perl5 がインストールされている、という情報をいただきました。 - パーミッションが正しく設定されていない。
- ファイルのアップロード の項を参照して、正しい設定に直してください。
- template.html が正しく記述されていない。
- いったん、デフォルトのもので設置確認を行った上で、このマニュアルに添付のデザインファイル書式を参考に template.html を修正してください。
- ファイルがアスキー(テキスト)モードで転送されていない。
- .CGIファイルはアスキーモードで転送しないと、改行コードが変換されないためうまく動作しません。アスキーモードに設定する方法は、お使いのFTPソフトによって違いますので、それぞれご確認ください。
表示テンプレートを変えたら、管理者モードに入れなくなった。
管理者モードへのリンクやフォームが用意されていない場合は、直接ブラウザのURL欄に「 http://設置URL/u_diary.cgi?action=admin 」と直接打ち込んでご利用ください。このページをブックマークしておくと便利です。