+-- M*DIARY設置方法等 --+



by PRETTY BOOK



この度はPRETTY BOOKのCGIスクリプトをダウンロードしてくださり、
ありがとうございます♪

下記にM*DIARYの設置に関する説明をいたします。

+設置構成例

−index.html (トップページ)
└−−cgi-bin [任意のディレクトリ] (パーミッション設定値:777)
  ├−−−−pmdiary.cgi (パーミッション設定値:700 or 755)
  ├−−−−pmdiary.log (パーミッション設定値:600 or 666)
  ├−−−−pmdiaup.cgi (パーミッション設定値:700 or 755)
  ├−−−−pmdiaup.log (パーミッション設定値:600 or 666)
  ├−−−−jcode.pl (パーミッション設定値:644)
  ├−−−−count.dat (パーミッション設定値:600 or 666)
  └−−−−***.gif (アイコン画像)
  <過去ログ機能を使う場合>
  ├−−−−pastno.dat (パーミッション設定値:600 or 666)
  └−−−−1.dat (パーミッション設定値:600 or 666)



(注意)パーミッションの設定値はプロバイダによって異なる場合があります。プロバのHP、又は問い合わせして確認してくださいね。

[1] pmdiary.cgi・pmdiaup.cgiを各々自分の環境に合わせてカスタマイズする
  cgiを開き、カスタマイズします。
  (カスタマイズする際のエディタはメモ帳などでもOK)

pmdiary.cgiのカスタマイズ

#!/usr/local/bin/perl
(トップにあるperlのパスを修正します。プロバによって異なるので、ご自分のプロバイダに確認してくださいね。)

# jcode.plの設定(このままだと.cgiとjcode.plは同じディレクトリにある状態)
require './jcode.pl'; (圧縮ファイルに入っていたjcole.plをcgiと同じ場所にアップロードする場合はこのままでOK)

#-管理用パスワード--------------------------------------
$pass = 'pass'; (管理モードに入るためのパスワード。半角英数字で設定)

# 戻り先URLの設定---------------------------------------
$home = "../../index.html"; (戻り先URLを設定。ホームページのトップなど)

#-ファイル名の設定--------------------------------------
$script = './pmdiary.cgi'; # スクリプトファイル名 (ファイル名を変更する必要がなければこのまま)
$logfile = './pmdiary.log'; # ログファイル名 (ログファイル名を変更する必要がなければこのまま)
$upscript = './pmdiaup.cgi'; # 画像アップロードcgi (アップロード先はpmdiary.cgiと同じ場所に設定。アップロードファイルの名称は変更することをお薦めします→セキュリティー上名称変更した方がBEST。但し拡張子はそのままでね! 例)diaryup.cgi・gazouup.cgiなどなど)
$cssfile = "./pmdstyle.css"; # CSSファイル→ フルパスで指定する場合は http:// から記述

#-画像アップディレクトリの設定----------------------------
$upload_url = "./upfile"; # 画像アップロード先のディレクトリをURLで設定(画像をアップロードするフォルダを設定。ここは相対パスまたはhttp://から設定)
$upload_dir = "./upfile"; # 画像アップロード先のディレクトリを相対又はフルパスで設定(画像をアップロードするフォルダ相対パスまたはフルパスで設定。フルパスは/からはじまるもの。わからなければ、プロバイダで書き方を確認すること。この状態のままだとpmdairy.cgi・pmdiaup..cgiと同じ場所にupfileというディレクトリを設置している状態です。)

#-ロックファイルに関する設定--------------------------------------
(プロバイダでsymlink関数が使用できる場合は1を。1でうまく動作しなければ2を、それでもだめなら0で設定。)
$lock_kinou = 0; # ファイルロック有無又は処理方法の選択 (0=no 1=symlink 2=symlinkが使えないとき)
$lockfile = './pmdia.lock'; # ロックファイル名

#-クッキー保存日数----------------------------------------
$c_day = 60; (クッキーの保存日数の設定。この状態だとほぼ2ヶ月ぐらい保存される、ということ)

#-記事数に関する設定-----------------------------------
$max = 20; # 最大記事数(これを超える記事は古い順に削除されます) (最大記事数の設定。過去ログ機能を使う場合は、これ以降は過去ログに入ります))
$pagekcnt = 5; # メニュー欄1ページ当たりの表示数 (メニュー1ページの表示数の設定)

#-タイトルに関する設定---------------------------------
$title = "DIARY"; # タイトル名 (このCGIのタイトル名)
$t_color = "#aaa7dc"; # タイトル文字の色 (タイトルの文字色。各モードのヘッダー文字色としても反映)
$t_size = '14pt'; # タイトル文字サイズ(スタイルシートの中でSPANとして反映)
$t_face = "MS Pゴシック"; # タイトル文字のタイプ
$t_gif = "./title.gif"; # タイトル画像 (タイトル画像を使わない場合はここは何も記載せず"";とすること)

#-スタイルシート内のフォントに関する設定----------------
$f_face = 'verdana,chicago,Arial,Helvetica,"MS Pゴシック"'; # 掲示板全体の文字フォントフェイス (1個でも、複数でも設定可能)
$f_size = '10pt'; # 掲示板全体の文字サイズptで記入
$b_size = '12pt'; # 記事タイトルの文字サイズptで記入
$s_size = '8pt'; # メニュー欄の文字サイズptで記入
$line_h = '1.0'; # メニュー欄の行間サイズ(メニューページの行間を設定)

#-背景色、文字色などBODYタグの設定----------------------
$back_gif = "./kabe5.gif"; # 壁紙(パス付きで指定)
$back_col = "#FFFFFF"; # 背景色
$text = "#888888"; # 文字色
$link = "#888888"; # リンク色:未訪問
$vlink = "#888888"; # リンク色:既訪問
$alink = "#aaa7dc"; # リンク色:訪問中
(BODYタグの設定。
(注)過去ログ機能を使う場合で、過去ログファイル(1.htmlなど)をcgiと違う場所にアップロードする場合は、壁紙のパスはhttpからにしておいてください。そうしないと過去ログファイルだけ壁紙が反映されません。下記の記事表示部枠の画像も同様です。)


#-投稿フォームスタイルシートの設定(但し、ブラウザによっては非対応)----------------
# Input・selectフォームの設定
$in_color = "#777777"; #入力欄の文字色
$in_border = "#aaa7dc"; #入力欄の枠の色
$in_bgcolor = "#ffffff"; #入力欄の背景の色
# Submitやリセットボタンの設定
$ps_color = "#ffffff"; # submitボタンの文字色
$ps_bgcolor = "#aaa7dc"; # submitボタンの背景色
$ps_border = "#aaa7dc"; # submitボタンの枠の色
(投稿フォームスタイルシートの設定。#は忘れないこと!)

#-cgiにアクセスして最初に開くページのコメント
#-->一番上段の$tp_com = <<"HTML";と下段のHTMLは消さないでね!
#-->(タグはfontやimg、tableタグ程度に・・閉じ忘れるとエライことになるかもしれないので(笑)注意!)
$tp_com = <<"HTML";
<center><br>
<img src=./head.gif alt='PRETTY M*LINK'><p>
フレームタイプのシンプルな日記です。<BR>
主な機能\は、アイコン・お天気アイコン機能\<br>
カウンタ機能\・過去ログ機能\・記事編集機能\などです。<br><br>
メニュー表\示は、記事タイトル又は記事の日付又は記事の番号の<br>
中から選択可能\です。<br>
記事の表\示部はテーブルで囲んだり、区切り線を画像にすることも可能\です。<br>
このサンプルは区切り線で表\示している当サイトのM*LINK風です♪<br><br>
ここにタグを使ってメッセージや画像を挿入できます(*^_^*)<BR><BR>
<b>(注)記事にタグを使用することができますが、<br>
このサンプルではオフにしてます!</b>
</center>
HTML
(cgiにアクセスしてはじめに開く右ページに入るコメントを設定。タグを使って画像などを挿入したりするとよいかも。記入時には、一番上の$top_com=<<"HTML";と一番したのHTMLは決して削除しないこと!文字化けがでてしまった場合は上記のように、¥半角の円マークを文字の後ろにつけてみてね)

#-記事タイトルと日付部分の色の設定---------------------
$sub_use = 1; # 記事タイトルを投稿欄に設定する? (0=no 1=yes)
$ksub_col = "#888888"; # 記事のタイトルの文字色
$kdat_col = "#888888"; # 記事の日付の文字色
(記事タイトルと日付の色設定)

#-記事表示部分の設定----------------------------------
$fcolsm = 200; # 左フレームのサイズ(半角英数字で。%で指定てもOK)
$haba = "310"; # 記事の横幅(ピクセル)(記事表示部分のテーブルの横幅)
$brd = 0; # 記事の枠線(BORDER)の有無(有り=1 なし=0)(記事部をテーブルで囲む場合はここは1に)$line_col = "#adc2cd"; # 記事の枠線の色(枠線をナシにする場合はここは無視)(記事部の枠線を1にした場合はここに色を指定)
$cells = 0; # 記事の枠線のCELLSPACING(記事の枠線に反映されるので枠線を利用する際にはここは1以上の数字で設定してね)
$cellp = 0; # 記事の枠線のCELLPADDING(記事のテーブル間のサイズに反映)
$headbg_col = "#FFFFFF"; # 記事の項目表示部(ヘッダー)の背景色(色が不要な場合はここは"";と未記入で設定)
$kiji_col = "#FFFFFF"; # 記事表示部分の背景色(色が不要な場合はここは"";と未記入で設定)

#-記事表示部のヘッダー項目に背景画像を使用する場合の設定
$wgif_use = 0; # 記事表示部のヘッダー・フッター項目部分の背景を画像で表示する? (0=no 1=yes)
$hkiji_gif = "./waku.gif"; # ヘッダー枠内を画像で表示させない場合にここは無視
(記事表示部分の枠線を設定する場合、ヘッダー項目の背景に背景画像を設定することができます。過去ログ機能を使う場合は、この枠画像はhttp://から記載しておくといいかも)

#-記事の枠線をなし、と設定した場合は、記事を区切るための画像か又は文字(記号など)を設定------
#-画像で区切る場合はここにパスつきで設定
$kugiri2_gif = ""; # http://から画像を指定。使用しない場合はここは"";とすること!
$k2_w = 303; # 画像の横幅サイズ
$k2_h = 6; # 画像の縦幅サイズ
#-文字で区切る場合はここで設定
# サンプルでは以下のように設定しました。ご自分の設定した幅や好みの記号の羅列で設定してね♪
$kugiri2 = '・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・';
(記事部が枠なしの場合の設定。区切りのラインを画像又はテキストで設定できます。画像の場合は過去ログを使う場合、http://からで)

#-メニュー部分の項目名間の区切りの画像又は文字・記号を設定------------------------------------
#-画像で区切る場合はここにパスつきで設定
$kugiri_gif = ""; # 画像を使用しない場合はここは"";とすること!
$k_w = 120; # 画像の横幅サイズ
$k_h = 12; # 画像の縦幅サイズ
#-文字で区切る場合はここで設定
# サンプルでは以下のように設定しました。設定したカテゴリ名やフレームのサイズに合わせて、好きな記号で区切ってね
$kugiri = '・・・・・・・・・・・・・・・・・・・・・・・・・・';
$hedkcol = "#E7cc63"; # 上部区切りの色(記事表示部にも反映)
(メニュー部分の区切りラインの設定)

#-タイトル下のリンク部分の設定-----------------------------------
$home_link = "Home"; #戻りURLが入るリンク部分の名称
$icn_link = "IconList"; #アイコンリストへのリンク部分の名称
$klog_link = "PastLog"; #過去ログモードへのリンク部分の名称
$mstr_link = "MasterOnly"; #管理モードへのリンク部分の名称
$cate_tx = "DiaryMenu..."; #メニュータイトル
$old_tx = "OldLog..."; #次のページへのリンク部分の名称
$new_tx = "...NewLog"; #戻りページへのリンク部分の名称
(各リンク部分のテキストを設定)

#-methodの形式----------------------------------------------------
$method = 'POST'; # (POST 又は GET)
(プロバイダでGETを指定している場合はここをGETに修正)

#-タグを使用できるようにする?------------------------------------
$taguse = 0; # (0=タグは使わない 1=使う)
(タグを使えるようにするかどうかの設定)

#-URLやメールアドレスを自動リンクできるようにする?---------------
# (注)但し上のタグを1にした場合はここは0とすること
$alinkuse = 1; # (0=しない 1=する)
(自動リンクをさせるようにするかどうかの設定。タグを有効にしている場合はここは0としてください)

#-アイコン機能に関する設定----------------------------------------
$icon_use = 1; # アイコン機能はつかう?(0=使わない 1=使う)
$icon_dir = "."; # アイコンのディレクトリを指定
# アイコンを指定(上下の配列はペアで)
@icong = ('nomal.gif','run.gif','a.gif','do.gif','e-n.gif','zzz.gif','ase.gif');
@iconn = ('・・・','るん♪','あっ!','怒っ','えーん','眠・・','汗');
(アイコン機能の設定。使う場合は一番上の質問を1として、それぞれ設定してください。'や,など落とさないようにね!!!)

#-お天気アイコン機能に関する設定----------------------------------------
$tenk_use = 1; # アイコン機能はつかう?(0=使わない 1=使う)
$tenk_dir = "."; # アイコンのディレクトリを指定
# アイコンを指定(上下の配列はペアで)
@tenkg = ('sunny.gif','rainy.gif','cloudy.gif','snow.gif','fine.gif');
@tenkn = ('晴れDay','雨Day','くもりDay','雪Day','FineDay');
(お天気アイコン機能の設定。使う場合は一番上の質問を1として、それぞれ設定してください。'や,など落とさないようにね!!!)

#-ウェブアイコンに関する設定------------------------------
$url_ic = ""; # URLをアイコン表示させる場合に画像を設定(パス付きで指定)
$url_tx = '+Web+'; # URL部分を文字で表示する場合にはここを設定
$target = '_blank'; # URLのリンク部分のターゲットの設定
(WEBのリンク部分の設定。画像はパス付きで設定)

#-日付タイプの設定----------------------------------------
# ここで時間を挿入するように設定しても、記事投稿時に時間を削除したり、日付を変更したりすることは可能です。
#>>>日付に年はいれる?(いれる=1 いれない=0)
$yr_type = 1;(日付に年をいれるかどうかの設定。年は西暦です)
#>>>日付と曜日と時間=1 日付と曜日=2 日付と時間=3 日付=4
$dt_type = 4;(日付のタイプを設定)

#-メニュータイプの設定----------------------------------------
#>>> 記事にタイトルを設定しないときは0と1以外は選択しないでね
#>>> 記事番号でリンク=0 記事の日付でリンク=1 記事タイトルでリンク=2 記事の日付とタイトルでリンク=3
$mntype = 3;
(メニューのタイプを設定)

#-投稿フォームのサイズ---------------------------------------------
# 下記の状態だとIEでもネスケでもあまり大きく崩れてません(たぶん・・)
$name_fw = 35; # 名前投稿欄
$come_fw = 35; # コメント投稿欄
$come_row = 8; # コメント投稿欄のROWS
$url_fw = 35; # URL投稿欄
(投稿フォームのサイズの設定)

#-簡易カウンタに関する設定----------------------------------------
$count_use = 1; # カウンタの設置 (0=no 1=yes)
$cnt_keta = 5; # カウンタの桁数
$cntfile = "./count.dat"; # カウンタファイル
$clockfile = "./pmdiacnt.lock"; # カウンタのロックファイル
$cnt_type = 0; # カウンタのタイプ(0=テキスト 1=画像)
$cnt_col = "#adc2cd"; # テキストの場合:カウンタの色
$cnt_sz = "8pt"; # テキストの場合:カウンタのサイズ(ptで指定)
$cnt_dir = "."; # 画像の場合:カウンタ画像のディレクトリ(最後の/は入れないこと)
(カウンタ機能に関する設定)

#-簡易過去ログ機能に関する設定----------------------------------------
$past_use = 1; # 過去ログ機能を使う? (0=no 1=yes)
$pastno = "./pastno.dat"; # 過去ログ用NOファイル
$plogline = 50; # 過去ログ1ファイル当たりの行数(できるだけ$ppagekctの倍数で設定。$ppagekctと同数でも可)
$ppagekct = 10; # 過去ログ1ページ当たりの行数($ploglineと同数だと1つのログファイルにつき改頁されず1ページで表示されることになります)
$past_dir = "."; # 過去ログディレクトリ (フルパスだと / から)
(過去ログ機能に関する設定。過去ログのディレクトリ設定はフルパスの場合/からのパスで設定。フルパスの書き方はプロバイダによって異なります。/public_html/user/cgi-bin/ という感じのものです。)


#-広告挿入 (''の間に「広告タグ」を挿入。広告挿入義務がなければここは無視)
$adv_up = ''; # このMINI BOARDのトップセンターに挿入
$adv_dn = ''; # このMINI BOARDの下部センターに挿入
(フリーHPなどの場合で、広告挿入義務がある場合などは、ここに広告タグを挿入してください。それ以外はここは無視)




pmdiaup.cgiのカスタマイズ

#!/usr/local/bin/perl(トップにあるperlのパスを修正します。プロバによって異なるので、ご自分のプロバイダに確認してくださいね。)

# jcode.plの設定(このままだと.cgiとjcode.plは同じディレクトリにある状態)
require './jcode.pl'; (圧縮ファイルに入っていたjcole.plをcgiと同じ場所にアップロードする場合はこのままでOK)
$pass = 'pass'; (管理モードに入るためのパスワード。半角英数字で設定。pmdiary.cgiと必ずおなじものを設定)

$diascript = "./pmdiary.cgi"; # Diary CGIファイルの設定(同じ場所に設置)
$cssfile = "./pmdstyle.css"; # CSSファイル→ フルパスで指定する場合は http:// から記述
$upload_dir = "./upfile"; # アップロードファイルを格納するディレクトリ(画像をアップロードするフォルダ相対パスまたはフルパスで設定。フルパスは/からはじまるもの。)
$upsz_max = "20480"; # 1024 = 1KBなので、この場合100KBまで投稿可能ということ。(最大アップロード可能サイズを設定
$body = '<body bgcolor=#FFFFFF text=#666666 link=#666666 vlink=#666666 alink=#adc2cd>'; (pmdiaup.cgiのBODYタグを設定)
$lock_kinou = 2; # ファイルロック処理方法の選択 (1=symlink 2=symlinkが使えないとき)(symlink関数が使えるときは1に設定)
$lockfile = './pmdiaup.lock'; # ロックファイル名(ロックファイル名は必ずpmdiaryで設定したものとは異なる名称にしてください!→初期状態では異なる名称になっているので必要がなければこのままで大丈夫ですが、複数のcgiと同じディレクトリに設定する場合はロックファイル名は必ずそれぞれ異なるものにしてください。)
$uplogfile = "./pmdiaup.log"; # アップロード連続投稿チェックログファイル(名称変更する必要がなければこのままでOK)





[2] FTPでサーバーにアップロードする
 以上、ご自分の環境に修正しなおしたら、FTPでサーバーにアップロードします。
その際、必ず、アスキーモード(テキストモード)でアップロードしてくださいね。
(アイコンなどのgif画像はバイナリモードでアップロードします)


[3] パーミッションの設定をする
 アップロードの際に、忘れずにパーミッションの設定を行ないます。それぞれの設定値は上段の設置構成例に書いてあります。


[4] 最後にリンクを貼る
 CGIをサーバーにアップロードしたら、HPにCGI本体へリンクを貼ります。

<A HREF="http://www.abc.com/who/cgi-bin/pmdiary.cgi">DIARY</A>

という感じになります。


[番外] 過去ログ利用について
 この過去ログはdatファイルで保存されますが、たとえば、CGIそのものを異なるものに変更したいけど、せっかく書いた過去の日記を別の場所に残しておきたい・・・という場合のために、datからhtmlに変換するための専用スクリプトを作成しました。
CGIをDLしたページからloghtmlchange.lzhがDLできるようになっていますので、必要な方はご利用下さい。
詳しくは、書庫の中にこのページと同じような説明ファイルが入っていますのでご確認下さい。
また、大変申し訳ありませんが、このファイルに関してはサポート対象外とさせていただいています。すみません。

上記専用のファイルでうまくhtml化できなかった場合は、ご自分でhtmlに直す方法もあります。
この過去ログdatファイルは、すべて記事がhtmlタグで記録されていますので、ログをサーバーからすべてDLして、htmlで表示するために必要なタグを挿入し、ファイルを保存する際に1.htmlと拡張子をhtmlに変更すると、htmlとして残すことができると思います。



+注意事項

※このスクリプトは画像アップロードが別ファイルにて設定されています。セキュリティーの面からpmdiaup.cgiのファイル名はできるだけ、変更されることをお薦めします。
(但し、拡張子(cgiの部分)は変更しないようにね!)

※画像をアップロードだけ行ない、記事に画像を設定しないと、画像だけがアップロード先のディレクトリ内に残ってしまいますので、ご注意下さい。

※最大5つの画像をアップロードできるようになっていますが、動作上、重いファイルを同時に5つもアップロードするのは好ましくありません。このCGIでは、リサイズ機能がないので、それほど重たい画像をアップすることはないと思いますが、画像アップロードCGIは元々安全性の高いCGIというわけではないので、安全に利用するためには、同時に最大数アップロードする場合は軽量のファイルのみにするか、2,3個ずつにするか、しておいた方がよいように思います。
一応、安全を確保するために、ロックファイルや連続防止策を設定していますが、基本的に個人の方が日記を書く際に画像(大きすぎないもの)をアップするだけならば、問題なく使用できると思います。

※この画像アップロードファイルでは、拡張子が「gif、jpeg、jpg、png」のみアップロードが可能です。



+ 使い方

 
記事に画像を挿入したい場合
1)管理モードから、「画像アップロード」を選択・パスワードを記入しボタンをクリック
2)アップロードしたいファイルを参照ボタンで選択後、クリック

3)新規に記事を投稿したい場合は「記事投稿」を選択。アップロードした画像を現在既にログに保存されている記事に挿入したい場合は「記事編集・削除」を選択。クリック
4)
※新規投稿の場合→アップロードされた順番にFileフォームに画像名が入っているので特に順番の変更の必要がない場合は記事を記入しクリック。(タグを有効している場合は「上記の画像を自動挿入しない場合はチェックをはずしてください」という箇所のチェックをはずすと画像が自動挿入されないので、記事の中にタグを使ってアップした画像を挿入してください)
※記事編集の場合→アップロードした画像の名称が上段に記載されているので、そのファイル名をFileフォームにコピペしてください



+サポートについて

このスクリプトに関する質問は当サイトのTREE BBSへお願いいたします。
但し、質問前に必ず、利用規定、FAQページ、更にBBS内部のREAD MEを必ずご一読ください。質問時のお約束を守られていない質問にはお答えしかねますので、ご了承ください。
また、個人で運営していますので全ての質問にお返事できるわけではありませんのでその点もご理解ください。

できるだけ、ご本人に努力していただくようにと、このページを圧縮ファイルに入れましたので、がんばってくださいね。

またメールでのサポートもお返事いたしておりませんので、ご了承くださいね。
(でも、バグ情報はメールでお願い致します(^_^;))



+メルマガ「PRETTY NEWS」・・・
当サイトでは不定期でCGIのバグ情報(^-^;などをお届けするメルマガを発行しています。ときどき重大なバグもあるのでσ(^◇^;)よかったら購読してくださいね!購読申込は当サイトのMAIL MAGAZINEコンテンツ内、またはCGI ROOMトップページで行なえます♪


では、うまく設置できること、祈ってます♪
 



Jun@PRETTY BOOK
+-----------------------------------+
http://www.prettybook.com/
+-----------------------------------+