|
AmigoDatabase基本トラブルFAQ
「ビジー状態」というのは「ファイルがロック中」であるということになります。ファイルロックというのは、データの登録、編集、削除の際に他の人がそのプロセスに割って入ってこれないように保存ファイルに対しそのプロセスを制限するものです。
AmigoDatabaseは、ロックファイル中のAmigoDatabaseエラーは自動的にそのファイルロック状態を解除しますが、AmigoDatabase外のサーバーエラーなどはファイルロックが解除されずそのままロック中としてロック状態が維持されます。この時にAmigoDatabaseにアクセスした際に「只今ビジー状態です。」とAmigoDatabaseエラーとなってしまいます。 この問題の処理は[db-setup.cgi]でのファイルロック処理選択でも異なりますが、基本的に「lockディレクトリ」の状態をデフォルトへ戻せば問題は解決します。ですので、何ら変更されていないローカルサーバー側の「lockディレクトリ」をサーバー側へFTPアップロードするか、又はlockディレクトリ内に作成されているディレクトリ及びファイルを削除することで問題は解決されます。(デフォルトのファイルは削除されないようご注意下さい)
AmigoDatabaseは、呼び出されたページに対してリファラー(呼び出し元のページURL)にdb-setup.cgi設定の「設置サイトの最短URL」が含まれてなければ「設置サイト外からの呼び出しです。」とエラーになります。
デフォルト状態では次のようになっています。
# ■設置サイトの最短URL
@MyUrl=('http://');
どのダイレクトアクセスでも可能とするならば # ■設置サイトの最短URL @MyUrl=(); 逆に自分のサイトURLからだけしかアクセスを許可しない場合は
# ■設置サイトの最短URL
@MyUrl=('http://あなたのサイトURL');
# ■設置サイトの最短URL
@MyUrl=('http://あなたのサイトURL','http://別のサイトURL');
テンプレートHTML(lib/template/***.html)を修正した際に特定の文字が文字化けする。
AmigoDatabaseは文字コードに「Shift_JIS」を採用しています。この「Shift_JIS」の場合、テンプレートHTMLに書き込んだ特定の文字では文字化けを起こします。文字化けを起こす文字は次の通りです。 ― ソ Ы \ 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄 兔 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 觸 軆 鐔 饅 鷭 x x 構\ 蚕\ 十\ 申\ 曾\ 箪\
ライブラリファイルを読み込めない状態です。エラー先の***.cgi内に記述間違いがありますのでその問題を解消して下さい。
問題を特定できない場合、database.cgiのDieサブルーチンの記述を次のように修正するとエラー時にその問題個所を表示出来ますので参考にして下さい。 #print$msg;exit;} print$msg.'<br>'.$@;exit;} print$msg;exit;} #print$msg.'<br>'.$@;exit;}
db-setup.cgiにて次のようにファイルロックタイプを選択できます。
# ■ロックタイプ(1=flock式/2=標準/3=symlink式/4=mkdir式/5=open式) $LockType=2; http://設置URL/database.cgi?cmd=lt mkdir > 標準 open > symlink > flock
ページが真っ白となる場合、そのHTMLページを表示するテンプレートHTML(lib/template以降の***.html)に問題があります。
テンプレートHTMLは、次のように「print <<"<!---HTML--->";」から「<!---HTML--->」までの部分がHTML記述として利用出来る部分で、始まりと終わりの記述で一対となっています。この対の数に間違いがあるとページが真っ白となってしまいます。最後の「;」がないだけでも間違いとなります。 (プログラム記述部分) print <<"<!---HTML--->"; (HTML記述部分) <!---HTML---> &_Html_Head; (プログラム記述部分) print <<"<!---HTML--->"; (HTML記述部分) <!---HTML---> (プログラム記述部分) 1; (プログラム終了) また、データ表示変数に間違いがある場合にもHTMLページが真っ白になります。
$VD[$REC{Data}{HPName}] → $VD[$REC{ *** }{ *** }]
$VD[$REC{Data}{1HPName}] → データ項目名の先頭に数字
$VD[$REC{Data}{HPName} → 最後の「]」が抜けている
考えられる原因は次の2点です。
●セレクトの場合 <select name="sample"> <option value="サンプル1" $Select{sample}{1}>サンプル1</option> <option value="サンプル2" $Select{sample}{2}>サンプル2</option> <option value="サンプル3" $Select{sample}{3}>サンプル3</option> </select> ●チェックボックス(ラジオボタン)の場合 <input type="checkbox" name="test" value="テスト1" $CheckBox{test}{1}>サンプル1 <input type="checkbox" name="test" value="テスト2" $CheckBox{test}{2}>サンプル2 <input type="checkbox" name="test" value="テスト3" $CheckBox{test}{3}>サンプル3 セレクトメニュー項目[ユ]又は[デ] : sample==サンプル1&サンプル2&サンプル3 チェックボックス項目[ユ]又は[デ] : test==テスト1&テスト2&テスト3
登録(編集)ページ内に次のように同じ「データ項目名」のフォームが存在しませんか?
<input type="text" size="30" name="sample" value="$FORM{sample}"> <input type="hidden" name="sample" value="$FORM{sample}">
フォーム部品の記述が次のように正しくなされているかご確認下さい。
<input type="hidden" name="Option_検索条件番号" value="checkbox"> <input type="checkbox" name="S_検索条件番号_Key_データ項目名" value="サンプル1">サンプル1 <input type="checkbox" name="S_検索条件番号_Key_データ項目名" value="サンプル2">サンプル2 <input type="checkbox" name="S_検索条件番号_Key_データ項目名" value="サンプル2">サンプル3
database.cgiなどのプログラム内に技術的な問題があります。どこに問題があるのか分からない場合「CGI::Carp」モジュールを利用する事でその問題点をサーバーエラー時に表示する事が可能です。
※「CGI::Carp」モジュールが利用出来るかどうかはご利用のサーバー管理者などにご確認下さい。 database.cgiの上部、Perlパスの次行当たりに次のように記述します。 #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); Software error: 〜 エラー文 〜 /database/database.cgi line 100, near ");" これを参考に問題を修正して下さい。 |


トラブル内容