サイトマップ

マルウェア関連以外のトピックス

AmigoDatabase簡易設定法

AmigoDatabaseは、CGI DE アミ〜ゴ!!さんが無料で配布されている汎用データベースCGIで、HijackThis Entry Databaseで使わせていただいています。

AmigoDatabaseは非常に汎用性の高いCGIで、思い通りのDBの作成が可能なすばらしいCGIです。詳細な取り扱い説明書(doc/readme.txt)が付属しているのですが、汎用性が高い分素人にはDB全体のイメージを掴むのが正直難しいです。そのため、設置をギブアップしてしまう確率が結構高いと思います。今回はとにかく早くDBを立ち上げたかったので代行設定をお願いしましたが、設定して頂いたファイルとデフォルトのファイルを睨んで細かい設定をいじっている内にだんだん内容が理解できてきました。

すべての機能や設定を理解した訳ではありませんが、このページでは「とりあえず動く安易な設置手順」を纏めます。「とりあえず動く」状態になっていれば、そこから色々欲しい機能が出てきて、振り返って気合いを入れて付属のreadme.txtを熟読するとその機能が付いていることを発見できると思います。そうすれば、そこから高度な機能を追加していくことができます。

ここで使っているAmigoDatabaseバージョンはVer9.30で、基本的には「database/docs/readme.txt」の内容に沿って進めていきますが、途中少々脱線します。

isweb basicの仕様

僕の使っているisweb basicの仕様についての説明書きはこちらです。プロバイダーによって微妙に違う部分があるはずです。
また、CGIの使えないプロバイダー(例えばジオシティなど)では設置できないのであきらめるか、プロバイダーを変えてください。

CGI関連のiswebの概略と、今回の設置情報です。

Perlのパス #!/usr/local/bin/perl
Sendmailのパス /usr/lib/sendmail (プロバイダによっては許可してないところもある)
CGI設置規則 必ずcgi-binフォルダの中
実際の設置フォルダ http://www.higaitaisaku.com/database

設置手順1 dataディレクトリ名の変更

「dataディレクトリ名は変更する事をお勧めします」とありますので、ここでは「database/data」のフォルダ名を「database/hogehoge」に変更しました。

設置手順2 基本設定の修正

これは必要最小限の設定の変更です。

database/database.cgi

項目 初期設定値 修正値
1行目のPerlのパス #!/usr/bin/perl #!/usr/local/bin/perl (プロバイダーによる)

database/db-setup.cgi

項目 初期設定値 修正値
基本ディレクトリ $BaseDir='http://' $BaseDir='http://www.higaitaisaku.com/database'
データディレクトリ $DataDir='./data' $DataDir='./hogehoge'
ユーザーディレクトリ $UserDir='./data/user' $UserDir='./hogehoge/user'
バックアップファイル名 $BkupFile='data.tar.gz' $BkupFile='hogehoge.tar.gz'
設置サイトの最短URL @MyUrl=('http://'); @MyUrl=('http://www.higaitaisaku.com')

設置手順3 サーバーへの転送

転送後のパーミション設定についてはこちらをどうぞ。


データベース構成ファイルの一覧

概略を纏めましたのでこちらをどうぞ。データベースの理解やテストには役に立つかと

ここでのファイルのパスの表示はdatabase/dataのままで行っています。database/dataはdatabase/hogehogeに相当します。

設置手順4 基本的な環境設定

管理者認証ページ(database/database.cgi?cmd=ac)へアクセスします
image
この画面が出てきたら、とりあえず設置はOKです。エラーが出る場合はパーミッションの回りを見直してください。

最初はパスワードが未設定なので、そのまま「認証」をクリックします

管理室に入ったら、「環境設定」を選択して、「選択」をクリック
image

以下最小限の設定です

項目 入力内容
パスワード 任意のもの (ATMの暗証番号などの無茶苦茶大事なパスワードは使わないこと)
sendmailのパス /usr/lib/sendmail (変更無し。プロバイダーによっては要変更。使えないプロバーダーもあり)
管理人メールアドレス 自分のメールアドレス
ホームURL http://www.higaitaisaku.com/ (自分のサイトのホーム)
スクリプトの名称 データベースの名前

その他の部分も、説明書きを読めば内容は理解できると思います。ここで設定しても良いですし、もちろん後で追加変更も可能です。

ここまで終わったら、一番下の「確認」にチェックを入れて「更新」をクリックしてここまでの設定を保存します

データベースの仕様や運用方法を確認

ここでもう一度作ろうとしているDBについて整理しておきましょう。イメージ図を紙なりHTMLなりで作ってみるのも良いでしょう。

などなど。

設置手順5 ユーザー登録関連部の設定

ユーザー登録(このDBにデータを追加できる人の登録)に際して、何を入力してもらうかを決めて設定を行います。
「ユーザー登録」をクリックしてみると、デフォルトの設定はこうなっています。
image

今回は、パスワードと名前、メールアドレスだけで十分ですので他は削ることにします。このほかにユーザータイプは削れないので残します。
もう一度「管理者認証」をクリックしてパスワードを入力し、環境設定を開きます。こんどはオレンジ色から下の「データ関連設定」の[ユ]が付いた部分を設定します。

項目 内容
全データ種類[ユ] Pass,Pass2,Name,Mail,UserType
全データ名称[ユ] Mail==メールアドレス,Name==名前,Pass==パスワード,Pass2==再入力,UserType==ユーザータイプ
入力必須項目[ユ] Pass,Mail,Name,UserType
データ保存項目[ユ] Name (パスワードとユーザータイプは必ず保存されるので設定不要、というか設定しては駄目)

「データ保存項目[ユ]」項目以外は、後でもこの画面から修正変更が可能です。「データ保存項目[ユ]」を含めて項目数を変更する場合は、「管理室」から「データ種類追加」ないし「データ種類削除」を使います。これについてはこのページの最後に簡単に解説します

ここまでの設定を保存するために再度一番下の「確認」にチェックを入れて「更新」をクリックします。

この時点ではDBの構造を決定しただけですので、表示される項目自体は変化しません。

設置手順6 データ登録関連部の設定

基本的な手順はユーザー登録と同じです。再度管理者認証」をクリックしてパスワードを入力し、環境設定を開きます。オレンジ色から下の項目のうち、今度は「データ関連設定」の[デ]が付いた部分を設定します。とりあえず良く使われると思われる設定項目はこちらです。

項目 内容
全データ種類[デ] 使用する変数を「,」で区切ってすべてリストアップします。
(例 : Category,Memo,Rurl,Syori,Del)
全データ名称[デ] エラー表示の際に表示する内容です。全データを「==」で対応させます。区切りは「,」
(例 : Category==カテゴリ,Memo==メモ,Rurl==参考URLSyori==処理,Del==削除可能性
入力必須項目[デ] 入力されない場合にエラーを出す入力必須項目を「,」で区切ってリストアップします。
(例 : Category,Syori)
確認時自動リンク項目[デ] プレビュー時に自動リンクさせる項目を「,」で区切ってリストアップします。
自動リンク項目[デ] データ詳細表示時に自動リンクさせる項目を「,」で区切ってリストアップします。
改行可能項目[デ] 改行を可能にする項目を「,」で区切ってリストアップします。
タグ使用項目[デ] タグを使用可能にする項目をリストアップします。使用可能なタグの属性や、閉じるタグの設定は上の基本設定で行います。
(例 : Memo==B&FONT&I,Rurl==B&FONT&I
チェックボックス項目[デ] ラジオボタンまたはチェックボックス項目の内容を定義します。編集時に既存入力データを表示させるためのものです。
Syori==削除&そのまま&不明,Category==スパイウェア&ウイルス&システム
セレクトメニュー項目[デ] 同様にセレクトメニューの項目をリストアップします。
未入力時の表示値[デ] 未入力の場合に何を表示させるかを定義します。表を使う場合は何かを表示させないと不細工になります。
(例 : Memo==−,Del==不明)
表示を省略する項目[デ] 検索結果一覧などで、項目の一部を文字制限して表示させたいときに使います。
(Memo==50)
データ保存項目[デ] 保存するデータの項目を「,」で区切って羅列します。ユーザーデータと同様に、「データ保存項目[デ]」を含めて項目数を変更する場合は、
「管理室」から「データ種類追加」ないし「データ種類削除」を使います

ここまでの設定を保存するために再度一番下の「確認」にチェックを入れて「更新」をクリックします。

通知メールの設定について

ユーザー登録時等にメールを送信する場合は環境設定の下、青緑の部分のチェックボックスの中の必要なものをチェックします。その場合には「database/lib/db-mail.cgi」を修正してサブジェクトと本文をお好みに設定しまず。ただ、デフォルトでも内容がちょっとおかしいだけでメール自体の動きは正常に行われますので後回しにしても構いません。

不特定多数の人にデータを入力してもらうDBの場合はこんな感じでしょうか。別にユーザー登録を管理者が承認する設定が必要です。
image

ここまでの設定を保存するために再度一番下の「確認」にチェックを入れて「更新」をクリックします。

HTMLテンプレートを修正してDBのデザインを作る

ここまででDBの構造がほぼ決定しました。いよいよ各テンプレートを修正してDBのデザインを決めましょう。

HTMLテンプレート修正時の注意事項

これから実際の表示に関わるテンプレート(主として「lib/template」フォルダにあるもの)を確認しながら修正していきます。これらのHTMLファイルは単独のHTMLではなく、CGIが利用するテンプレートとして働きますので、単独のHTMLファイルとしては構文エラーが含まれます。例えば、

print <<"<!---HTML--->";
&_*****;
<!---HTML--->
1;
$***形式の部分

などですが、これらをHTMLエディタの薦めにしたがって修正しては駄目です。

実際には一旦メモ帳や秀丸などのテキストエディタでHTMLファイルを開いて直接HTMLを修正するか、デフォルトの設定の「<TABLE >」から「</TABLE>」までの間をHTMLエディタにコピーしてお好みに修正後にHTMLをテキストエディタに戻す方が現実的だと思います。

基本フォントのデザインや色などを変更する場合は<STYLE type="text/css">から</STYLE >の記述を修正します。cssファイルを使う場合はこの部分を丸々

<LINK title=default_style href="higaitaisaku.css" type=text/css rel=stylesheet>

などに置き換えます。

各テンプレートのヘッダの変更

デフォルトでは、AmigoDatabaseの画像付きのメニューになっています。この部分を変更するためには、「database/lib/db-html.cgi」をテキストエディタで開いて編集します。
方法は二つあります。

(1) デフォルトのヘッダを変更して修正

「db-html.cgi」を開くと「各ページ上部」というセクションがあります。これはデフォルトで使われるヘッダです。これは、「user-regist.html」の中の

&_Html_Head;

で指定されるものです。「各ページ上部」の中の「<<EOM;」の次の行から「EOM」の前の行までのHTMLを修正すると、実際のフォームヘッダに反映されます。
こちらの方法のメリットは、各HTMLファイルのデフォルトの設定をいじる必要がないことと、変更する場合に作業が簡単なことです。

(2) 新しいヘッダを作成して指定

「user-regist.html」の中の上の記述を、

&_Html_Head2;

などに変更して、別のヘッダを指定することもできます。その場合は、「db-html.cgi」「各ページ上部」の中身を最後の「EOM<改行>]」までコピーして複製し、頭の「sub _Html_Head」の部分を「sub _Html_Head2」に変更してやればOKです。あとは同様に「<<EOM;」の次の行から「EOM」の前の行までのHTMLを修正します。

こちらの場合、各HTML毎に「&_Html_Head;」をいじる必要がでてきますが、複数のヘッダを使うことができます。
例えば普通の閲覧者に編集メニューを見せたくない場合などはこちらが良いでしょう。

例えば、(1)の方法で、AmigoDatabaseのロゴが記述してある部分を消してみます。「各ページ上部」の中の

<IMG src="$ImageDir/title.gif" width="270" height="41" border="0">

を削除して確認すると、ロゴの画像が消えているはずです。

ユーザーDB関連テンプレートの設定と確認

ユーザー登録関連のテンプレートは、下記のものがあります。

  作業画面テンプレ プレビューテンプレ メモ
ユーザー登録 lib/template/user-regist.html lib/template/user-regist-preview.html 登録画面
最初に設定要
管理者用ユーザー登録修正 lib/template/user-edit-admin.html 上と共通 上と同じでOK
ユーザー登録修正 lib/template/user-edit.html lib/template/user-edit-preview.html 編集画面
最初に設定要
管理者用ユーザー登録 lib/template/user-regist-admin.html 上と共通 上と同じでOK
ユーザー登録閲覧用 lib/template/data-part/user/default.html 閲覧画面
ユーザー認証画面 lib/template/user-certify.html デフォルトでOK

ここでは最初に各フォームのヘッダの設定の変更。そのあと順に登録、プレビュー、修正、閲覧の順に確認しながら設定して行きます。

ユーザー登録フォーム (user-regist.html、user-edit-admin.html)の設定

ユーザー登録フォームの修正は、「lib/template/user-regist.html」で行います。入力フォームの作成について、こちらのページを参考にしてみて下さい。

ファイルの確認は「database.cgi?cmd=ur」を開きます。真っ白が画面が出る場合は、修正したHTMLファイルに問題があります。

うまく設定ができたら、管理者用のユーザー登録フォーム「lib/template/user-regist-admin.html」も基本的には同じ内容になるはずなので同様に修正しましょう。もし管理者だけが修正できる項目(例えば管理者のコメント等)を作る場合は「user-regist-admin.html」の方にはそれを追加する必要があります。こちらの確認は、管理者認証で入室できる管理室のメニューから「管理者ユーザー登録」です。

ユーザー登録プレビュー用フォーム (user-regist-preview.html、user-edit-preview.html)の設定

ユーザー登録時のプレビューフォーム「lib/template/user-regist-preview.html」を、CGIが使う部分や下のボタンなどは残しながら設定します。

入力したデータをプレビューで表示させるには、

「$PREFORM{Mail}」

の書式を使います「Mail」の部分が各データの名前です。基本的には「user-regist.html」の中の「<Input>」などを「$PREFORM{Mail}」に書き換えます。
また、プレビュー時に不要な部分(例えばパスワードの再入力など)は削ります。

DB上で確認するには、ユーザー登録で適当なデータを入力し、「プレビュー」にチェックを入れて「登録」をクリックします。

「user-edit-preview.html」の方も、基本的には「user-regist-preview.html」と同じで、タイトルを「データの編集」に変えるくらいが変更点でしょう。

ユーザー登録情報修正フォーム (user-edit.html、user-edit-admin.html)の設定

基本的にはユーザー登録フォームと同様です。違いは、編集の場合はすでに入力されているデータを表示させる必要があることと、パスワードはこのフォームが表示されるまでに認証されているので不要だということです。CGIが使う部分や下のボタンなどは残しながら、「user-edit.html」の内容を「user-regist.html」に準じて修正します。こちらについても簡単に解説してますのでどうぞ

DB上で確認するには、「ユーザー認証」でパスワードとユーザー番号を認証して入れるユーザー室で、「ユーザー情報編集」を選択して「選択」をクリックします。

ユーザー登録情報表示用フォーム (lib/template/data-part/user/default.html、lib/db-html.cgi)の設定

必要に応じて行ってください。この辺り詳しくはデータ詳細表示用フォームの設定の方で書きます。

データDB関連テンプレートの設定と確認

データ登録関連のテンプレートは、下記のものがあります。

  作業画面テンプレ プレビューテンプレ
データ登録 lib/template/data-regist.html lib/template/data-regist-preview.html
管理者用データ登録修正 lib/template/data-edit-admin.html 上と共通
データ登録修正 lib/template/data-edit.html lib/template/data-edit-preview.html
管理者用データ登録 lib/template/data-regist-admin.html 上と共通
データ登録閲覧用 lib/template/data-part/data/default.html
表示内容はdatabase/lib/db-html.cgiで決定される
データ編集時の認証画面 lib/template/data-certify.html

データ登録フォーム (data-regist.html、data-edit-admin.html)の設定

データ登録フォームの修正は、「lib/template/data-regist.html」で行います。詳細はユーザー登録フォームの項を参照して下さい。

ファイルの確認は「database.cgi?cmd=dr」を開きます。真っ白が画面が出る場合は、修正したHTMLファイルに問題があります。

うまく設定ができたら、管理者用のユーザー登録フォーム「lib/template/data-regist-admin.html」も基本的には同じ内容になるはずなので同様に修正しましょう。ただし、管理者だけが修正できる項目(例えば管理者のコメント等)を作る場合は「data-regist-admin.html」の方にはそれを追加する必要があります。こちらの確認は、管理者認証で入室できる管理室のメニューからから「管理者データ登録」です。

プレビュー用フォーム (data-regist-preview.html、data-edit-preview.html)の設定

データ登録時のプレビューフォーム「lib/template/data-regist-preview.html」を、CGIが使う部分や下のボタンなどは残しながら設定します。

具体的な修正手順についてはユーザー登録の項を参照してください。

「data-edit-preview.html」の方も、基本的には「data-regist-preview.html」と同じで、タイトルを「データの編集」に変えるくらいが変更点でしょう。

データ登録情報修正フォーム (data-edit.html、data-edit-admin.html)の設定

ユーザー登録情報修正フォームと同様に、CGIが使う部分や下のボタンなどは残しながら、「data-edit.html」の内容を「data-regist.html」に準じて修正します。詳細はそちらをを参照して下さい。

DB上で確認するには、メニューから「データ修正」をクリックし、認証後に表示される画面を見ます。

設置手順6-2-5 データ情報表示用フォームの設定 (lib/template/data-part/data/default.html)

これは、default.htmlだけではなく複数の設定が可能です(readme.txt「データ詳細テンプレート複数化」参照)が、とりあえずdefault.htmlを編集します。

この場合の書式についてまたまたこちらに簡単に解説してますのでどうぞ。

それほど難しいものではありませんが、ラジオボタンで既入力のデータを表示させる式が少々面倒くさいです。

完成したら、登録フォームから適当にデータを入力し、デフォルトの検索フォームで何も入力せず「検索」をクリックしてみてください。一覧が表示されたらリンクをクリックすると詳細表示になります。大分DBらしくなってきた感じです。検索結果一覧でうまくリンクが表示されない場合は設置手順9 − 検索結果一覧の設定を先にやって下さい。

設置手順7 − ユーザー登録、データ登録の際の審査関連の設定

一旦管理者が審査するシステムにする場合に必要な設定です。使う場合もとりあえずデフォルトの設定で十分だと思います。必要に応じて後で修正して下さい。

設置手順9 − 検索結果一覧の設定 (lib/template/result/default.html、lib/db-html.cgi)

readme.txtと手順が前後しますが、こちらを先にやった方が確認しやすいと思います。デフォルトの設定での検索結果一覧を例に取ると
image

ヘッダから「全 1ページ中 1ページ目です。」からその下の項目名(サイト名、バナー、コメント)までが「lib/template/result/default.html」によって決まり、項目名の下の検索内容の表示が「lib/db-html.cgi」によって決定されます。ですから、両者バランスさせながら全体のデザインを整えていく必要があります。

多くの場合(デフォルトの設定もそうです)、「default.html」で表の全体を定義して、その中身を「db-html.cgi」で定義するというのが普通でしょう。書式はデータ(ユーザー)詳細表示用と基本的には同じですが、その内容と、他にここで使える便利な項目について纏めておきます。

なお、検索結果一覧のフォームは複数用意できます。詳細はreadme.txtを。

登録データ(data.cgi)の表示 $VD[$REC{Data}{データ種類}]
(例 : $VD[$REC{Data}{Comment}])
URLエンコードされたデータ(data.cgi)の表示 $RD[$REC{Data}{データ種類}]
ユーザーデータ(user.cgi)の表示 $VU[$REC{User}{データ種類}]
URLエンコードされたユーザーデータ(user.cgi)の表示 $RU[$REC{User}{データ種類}]
登録日時の表示 $RDate
更新日時の表示 $NDate
テーブルの交互色の呼び出し $TrColor
(例 : <TR bgcolor="$TrColor">)
NEWマーク表示 $NewMarkGif
image/new.gifの画像が表示。Newマーク表示期間は環境設定から変更可
UPマーク $UpMarkGif
データ詳細へのリンク <A href="$BaseDir/$MainCGI?cmd=dp&num=$VD[$REC{Data}{DataNum}]">
カウント数の表示 [$VD[$REC{Data}{Count}]]
フォームメールへのリンク <A href="$BaseDir/$MainCGI?cmd=fm&To=$VU[$REC{User}{UserNum}]">
データ編集へのリンク <A href="$BaseDir/$MainCGI?cmd=de&DataNum=$VD[$REC{Data}{DataNum}]">
カウント数を上げるリンク <A href="$BaseDir/$MainCGI?cmd=j&DataNum=$VD[$REC{Data}{DataNum}]&UserNum=$FORM{UserNum}&Pass=$FORM{Pass}&AdminPass=$FORM{AdminPass}">
投票用のリンク <A href="$BaseDir/$MainCGI?cmd=v&DataNum=$VD[$REC{Data}{DataNum}]">

確認は、いくつかデータを入力した後でデフォルトの検索フォームを使い、何も入力せずに「検索」をクリックすればOKです。

設置手順8 − 検索フォームの設定

検索フォームの設定については別ページに簡単に解説ページを作りました。こちらをどうぞ


データ種類追加/削除について

DBを立ち上げてしばらく運用をしていると、時によっては項目を追加したくなることが出てきます。その場合に「データ保存項目[ユ]」ないし「データ保存項目[デ]」を直接変更してはいけません。変更するとDBが壊れてしまいます。

まず、管理者認証から管理室に入り、「データ種類追加」を選択し、「選択」をクリックします。
image

追加対象 ユーザーファイルまたはデータファイルを選択 user.cgiまたはdata.cgi
データ種類 追加するデータの名前 全データ種類[ユ]または全データ種類[デ]
データ名称 追加するデータの説明 全データ名称[ユ]または全データ名称[デ]
登録データ 追加するデータに入力する初期値 お好きなものを。空白でも可

です。必要事項を入力したら「確認」にチェックを入れて「追加」をクリックすると、新しく項目が追加され、自動的に「全データ種類」「全データ名称」「データ保存項目」の項目について「環境設定」に追加されます。確認してみてください。

「データ種類削除」の場合には、管理室から「データ種類削除」を選択して削除する項目を指定すれば、同様に「環境設定」の項目がすべて削除されます。

おわりに

このページは、僕なりにAmigoDatabaseと格闘しながら作っていったものです。少しでもこれからサイトにAmigoDatabaseを設置しようとする人に役に立てば嬉しいです。

更新履歴

2004.6.4 ページ作成


【文頭に戻る】