|
『劇ぱわ』設置後に、あれこれしたいと言う方の為のアドバイスです。
ほとんど共通の注意事項として、何かする時は『メンテナンスモード』にして、試合ができない様にしてから行いましょう。 |
|
|
初めて設置した方が、意外と知らないのが『メンテナンスモード』なんですね。
これは、メンテナンスを行う時に、「リーグ戦を一時中断して新規登録や試合をできなくする」、とっても便利なものです。
設定方法は、gekipawa.iniファイルの
$mente = 0; # メンテナンスモード(設定変更中は'1'通常'0')
を
$mente = 1; # メンテナンスモード(設定変更中は'1'通常'0')
にして、サーバーへアップロードして下さい。
一度自分でアクセスして『メンテナンス中です。しばらくお待ちください。』が表示されている事を確認しましょう。
解除方法は、gekipawa.iniファイルの
$mente = 1; # メンテナンスモード(設定変更中は'1'通常'0')
を
$mente = 0; # メンテナンスモード(設定変更中は'1'通常'0')
にして、サーバーへアップロードして下さい。
※『「劇ぱわ2」改造方法』の「「メンテナンス中」にコメント追加」を参照して下さい♪ |
|
|
障害復旧のアドバイスというか、下記のあれこれを行ったり、改造なんかした時に何らかのミスをして大変な事になってしまう事があります。(抽象過ぎて分からないかな^^;)
例えば、ユーザーのデータが消えちゃった!とか、対戦成績がなくなっちゃった!とか、リーグが初日に戻っちゃった!なんて事が、起きてしまう事があります。
こんな事が起きてしまったら大変です。こんな時の為にデータのバックアップを取りましょう!
サーバー側のdatファイルを全てダウンロードします。
新規フォルダの中に入れて、「bu2004101314」などとフォルダ名を付けて保存しておきます。
(backupした日が2004年10月13日14時みたいにしておくと分かりやすい^^)
これだけです^^;
万が一、障害が起きてしまった時には、2004年10月13日14時に戻して続行する事ができます。
当然、2004年10月13日14時〜今現在のデータは無くなりますが、全て消えてしまうよりも良いでしょう^^
参加者には、お詫びしましょうね!
復旧方法は、保存した「bu2004101314」のdatファイルを全てアップロードするだけです。
この時、メンテナンスモードにしておく事を忘れない様に♪
毎日は大変ですが(と言うか無理!)、リーグ戦初日とか、また、何か仕様を触った時などにやって置くと安心です。 |
|
|
登録済みのチームのアイコンを変更したい時は、
league_rataフォルダ内のuser.datファイルのデータを直接編集する事でできます。
※メンテナンスモード設定
サーバーにアップロードしてあるuser.datファイルをダウンロードします。
user.datファイルをエディタで開き、変更したいチームの画像ファイルを変更します。
余分な改行やスペースを入れたり、「<>」などを消したりしない様に注意して下さい。
変更したuser.datファイルをアップロードします。
※メンテナンスモード解除
※障害復旧用にバックアップしておく事をお勧めします。
※障害復旧用にバックアップしたuser.datを編集しないで下さい。
※障害の内容により、バックアップしたファイルをアップロードしましょう。
(完全に戻す場合は、全てアップロードする。)
※『「劇ぱわ2」改造方法』の「管理画面でチーム名・監督名・パスワード・アイコン変更」を参照して下さい♪ |
|
|
登録済みのチームのホームページアドレスを変更したい時は、
league_rataフォルダ内のuser.datファイルのデータを直接編集する事でできます。
※メンテナンスモード設定
サーバーにアップロードしてあるuser.datファイルをダウンロードします。
user.datファイルをエディタで開き、変更したいチームのホームページアドレスを変更します。
余分な改行やスペースを入れたり、「<>」などを消したりしない様に注意して下さい。
変更したuser.datファイルをアップロードします。
※メンテナンスモード解除
※障害復旧用にバックアップしておく事をお勧めします。
※障害復旧用にバックアップしたuser.datを編集しないで下さい。
※障害の内容により、バックアップしたファイルをアップロードしましょう。
(完全に戻す場合は、全てアップロードする。)
※『キャンプインでホームページアドレスを変更できる』 |
|
|
登録済みのチームのパスワードを変更したい時は、
league_rataフォルダ内のuser.datファイルのデータを直接編集する事でできます。
※メンテナンスモード設定
サーバーにアップロードしてあるuser.datファイルをダウンロードします。
user.datファイルをエディタで開き、変更したいチームのパスワードを変更します。
余分な改行やスペースを入れたり、「<>」などを消したりしない様に注意して下さい。
変更したuser.datファイルをアップロードします。
※メンテナンスモード解除
※障害復旧用にバックアップしておく事をお勧めします。
※障害復旧用にバックアップしたuser.datを編集しないで下さい。
※障害の内容により、バックアップしたファイルをアップロードしましょう。
(完全に戻す場合は、全てアップロードする。)
※『「劇ぱわ2」改造方法』の「管理画面でチーム名・監督名・パスワード・アイコン変更」を参照して下さい♪ |
|
|
登録済みのチーム名を変更したい時は、
league_rataフォルダ内のuser.datファイルのデータを直接編集する事でできます。
※メンテナンスモード設定
サーバーにアップロードしてあるuser.datファイルをダウンロードします。
user.datファイルをエディタで開き、変更したいチーム名を変更します。
余分な改行やスペースを入れたり、「<>」などを消したりしない様に注意して下さい。
変更したuser.datファイルをアップロードします。
※メンテナンスモード解除
※障害復旧用にバックアップしておく事をお勧めします。
※障害復旧用にバックアップしたuser.datを編集しないで下さい。
※障害の内容により、バックアップしたファイルをアップロードしましょう。
(完全に戻す場合は、全てアップロードする。)
※『「劇ぱわ2」改造方法』の「管理画面でチーム名・監督名・パスワード・アイコン変更」を参照して下さい♪ |
|
|
登録済みのチームの監督名を変更したい時は、
league_rataフォルダ内のuser.datファイルのデータを直接編集する事でできます。
※メンテナンスモード設定
サーバーにアップロードしてあるuser.datファイルをダウンロードします。
user.datファイルをエディタで開き、変更したいチームの監督名を変更します。
余分な改行やスペースを入れたり、「<>」などを消したりしない様に注意して下さい。
変更したuser.datファイルをアップロードします。
※メンテナンスモード解除
※障害復旧用にバックアップしておく事をお勧めします。
※障害復旧用にバックアップしたuser.datを編集しないで下さい。
※障害の内容により、バックアップしたファイルをアップロードしましょう。
(完全に戻す場合は、全てアップロードする。)
※『「劇ぱわ2」改造方法』の「管理画面でチーム名・監督名・パスワード・アイコン変更」を参照して下さい♪ |
|
|
gekipawa.iniファイル内の画像ファイルの指定で、URLの途中に「改行」が入っているとデータが壊れて異常表示になる。
gekipawa.iniファイルの画像ファイル指定で、
$imgurl = 'http://○○.net/○○/gekipawa/geki_img'; # 画像フォルダのURL(最後の「/」はいりません)
の様に書かれるべき所を
$imgurl = 'http://○○.net/○○/
gekipawa/geki_img'; # 画像フォルダのURL(最後の「/」はいりません)
の様に途中で改行されている。 |
|
|
「リーグ更新処理中です。しばらく待っててね♪」と、メッセージが出て止まってしまう事があります。
チームデータの量などにより、更新に必要な時間は違いますが、長くても数分で終わります。
しばらく待っても解決しない場合は、更新時に必要なファイルが読めない可能性があります。
datファイルが全てそろっているか(ファイル名を変更した場合は特に注意!)、datファイルのパーミッションはあっているか確認して下さい。
止まってしまった状態から強制的に動かすには、下記方法で動かせます。
但し、DATAが正常に更新される保証はありません。
更新処理を強制的に再処理しますので、
既に行われた処理や更新により失われたDATAの影響で
不具合が発生する可能性があります。
全てのデータをバックアップしてから処理される事を強くお勧めします。
管理者の自己責任で行って下さい。
past_rank.datファイルをダウンロードして下さい。
この時にご自分のPC上に保存してあるデータに上書きはしないで下さい。
エディタで開くと、
1200408000<d>-1<d><d><d>
1100808000<d>38<d>虎猫<><>キャッツアイ<>・・・
1099944000<d>38<d>三毛猫<><>肉球ズ<>・・・
の様なDATA(1行目:更新時間と更新中のフラグ、2行目以降は歴代優勝者のDATA)が表示されますので、
1行目(赤字部分)を削除して、
1100808000<d>38<d>虎猫<><>キャッツアイ<>・・・
1099944000<d>38<d>三毛猫<><>肉球ズ<>・・・
の様にして、保存して下さい。
このpast_rank.datをアップロードして下さい。
ブラウザからgekipawa.cgiへアクセスすると、更新作業が始まります。
この後、更新後の「前期の記録」を確認して下さい。
首位打者などの個人データに不具合が発生している可能性が高いです。
|
|
|
「リーグ更新処理中です。しばらく待っててね♪」と、メッセージが出て止まってしまった時のもう少し詳しい復旧作業。
※上記のpast_rank.dat編集による復旧を理解されている事を前提に説明します。
■「止まってしまった時にする事。」
・まずは、「メンテナンスモード」にしてゲームを止めます。(※「
メンテナンスモードの設定と解除」参照)
■「状況確認」しましょう。
・これら一覧表内のファイルを確認します。
past_rank.dat |
comment.dat |
league_dataフォルダ (フォルダ内全て) |
gamelock.dat |
gamelog.dat |
last_pitch.dat |
last_team.dat |
last_yasyu.dat |
pitch.dat |
record.dat |
user.dat |
userback.dat |
winner.dat |
yasyu.dat |
・更新途中で止まった状況を把握します。
□サーバー内の「ファイル更新日をチェック」します。
・「past_rank.dat」ファイルの更新日を基準にほぼ同時刻のファイルは更新終了しています。
(正常に終了したかは分かりません。)
□サーバーから次のファイルをダウンロードしてきます。
・更新日で確認した更新状況から下記のファイルを確認して下さい。
(上から順に更新作業が行われます。更新処理は止まった場所以降の処理はしません。)
△past_ramk.dat
1200408000<d>-1<d><d><d>
1100808000<d>38<d>虎猫<><>キャッツアイ<>・・・
の様に1行目に10桁程の数字の右側に「
-1」が表示されている事を確認します。
これが、「更新中」の印です。
△yasyu.dat及びlast_yasyu.dat
・「yasyu.dat」ファイルを確認します。
・データが空になっていれば、更新処理が終了しています。(正常に終了したかは、分かりません。)
・データが空になっていなければ、更新処理が終了していません。
※ここで更新終了していなければ、「
yasyu.dat
」ファイルのオープンに失敗したものと思われます。
・「last_yasyu.dat」ファイルを確認します。
・データが前期の物であれば、正常に更新処理が終了しています。
(データが前期の物であるかは、バックアップしたuser.dat
内の個人選手の成績で確認して下さい。)
・データが前々期(第1回終了時は中身が空)の場合は、更新処理が終了していません。
※ここで更新終了していなければ、「
last_yasyu.dat
」ファイルのオープンに失敗したものと思われます。
△pitch.dat及びlast_pitch.dat
・「pitch.dat」ファイルを確認します。
・データが空になっていれば、更新処理が終了しています。(正常に終了したかは、分かりません。)
・データが空になっていなければ、更新処理が終了していません。
※ここで更新終了していなければ、「
pitch.dat
」ファイルのオープンに失敗したものと思われます。
・「last_pitch.dat」ファイルを確認します。
・データが前期の物であれば、正常に更新処理が終了しています。
(データが前期の物であるかは、バックアップしたuser.dat
内の個人選手の成績で確認して下さい。)
・データが前々期(第1回終了時は中身が空)の場合は、更新処理が終了していません。
※ここで更新終了していなければ、「
last_oitch.dat
」ファイルのオープンに失敗したものと思われます。
△user.dat及びuserback.dat
・「user.dat」ファイルを確認します。
・チームデータの試合記録、各選手の個人記録、対戦ログがクリアされていれば、更新処理が終了しています。
(正常に終了したかは、分かりません。)
・データがクリアになっていなければ、更新処理が終了していません。
※ここで更新終了していなければ、「
user.dat
」ファイルのオープンに失敗したものと思われます。
・「userback.dat」ファイルを確認します。
・データが「user.dat」と同じであれば、正常に更新処理が終了しています。
・データが前々期(第1回終了時は中身が空)の場合は、更新処理が終了していません。
※ここで更新終了していなければ、「
userback.dat
」ファイルのオープンに失敗したものと思われます。
△pecord.dat
・「record.dat」ファイルを確認します。
・データが前期の物であれば、正常に更新処理が終了しています。
・データが前々期(第1回終了時は中身が空)の場合は、更新処理が終了していません。
※ここで更新終了していなければ、「
record.dat
」ファイルのオープンに失敗したものと思われます。
△last_team.dat
・「last_team.dat」ファイルを確認します。
・データが前期の物であれば、正常に更新処理が終了しています。
・データが前々期(第1回終了時は中身が空)の場合は、更新処理が終了していません。
※ここで更新終了していなければ、「
last_team.dat
」ファイルのオープンに失敗したものと思われます。
△winner.dat
・「winner.dat」ファイルを確認します。
・データが前期優勝チームで戦歴・選手個人成績などがクリアされていれば、正常に更新処理が終了しています。
・データが前期途中の場合は、更新処理が終了していません。
※ここで更新終了していなければ、「
winner.dat
」ファイルのオープンに失敗したものと思われます。
△gamelog.dat
・「gamelog.dat」ファイルを確認します。
・データが空になっていれば、更新処理が終了しています。(正常に終了したかは、分かりません。)
・データが空になっていなければ、更新処理が終了していません。
※ここで更新終了していなければ、「
gamelog.dat
」ファイルのオープンに失敗したものと思われます。
※「更新処理」はここまで終了すると、「past_rank.dat」に前回優勝チームを記録して終了します。
・「-1」が「開催回数-1回」の数字に変更され、優勝チームが記録されます。
■ファイルオープン失敗の原因を解明修正してから、再更新します。
・ここまで、真面目に読まれた方は、「更新の失敗=ファイルオープンの失敗」と気付かれたでしょう♪
(改造などにより、違う場合もあります。)
□ファイルの確認
・「オープンに失敗したファイル」がサーバー上に存在するか、確認して下さい。
・パーミッション(アクセス権)の設定を確認して下さい。(通常は、666でOKです。)
・gekipawa.ini
ファイル内で指定したファイル名と一致しているかを確認して下さい。(変更していなければ大丈夫です。)
□改造した場合は、スクリプトを確認。(これはやった本人しか、ソースを持っていないので分かりません。)
□失敗原因を修正後、再更新します。
(再更新の方法は、
「リーグ更新処理中です。しばらく待っててね♪」を参照して下さい。)
□2重に更新した部分の復旧をして下さい。
・再更新すると、更新済みの部分も再更新されます。
・「last_yasyu.dat」などが、空になってしまいます。(元データの「yasyu.dat」が空の為空のためになります。)
・再更新されてしまったファイルは、確認用にダウンロードしたファイルをサーバーにアップロードして下さい。
|
|
|
geki_else.cgiにエラーを見つけました。
この部分を修正しておかないと更新がエラーで停止する事があります。
修正前(812行目) |
|
##### 野手ソート処理
sub yasyu_sort2{
@kiteiranks = ();
@tmp2 = @tmp3 = ();
foreach(@boxranks) {
my ($team,$dmy,$dmy,$dmy,$dmy,$yasyu,$dmy,$dmy,$dmy,$dmy,$dmy,$box,$hit,$ten,$hr,$ste,$err,$for,$gid) = split /<>/;
$daseki = $box + $for + $gid;
$daritu = sprintf("%03d", ($hit / $box) * 1000);
if($rankno eq 0){
if($daseki >= $kitei_hit){
$seiseki = $daritu;
push(@kiteiranks, $_);
push(@tmp2, $seiseki);
push(@tmp3, $hit);
}else{
last;
}
}else{
|
修正後(赤色部分の前後に青色部分を追加する) |
|
##### 野手ソート処理
sub yasyu_sort2{
@kiteiranks = ();
@tmp2 = @tmp3 = ();
foreach(@boxranks) {
my ($team,$dmy,$dmy,$dmy,$dmy,$yasyu,$dmy,$dmy,$dmy,$dmy,$dmy,$box,$hit,$ten,$hr,$ste,$err,$for,$gid) = split /<>/;
$daseki = $box + $for + $gid;
if($box){
$daritu = sprintf("%03d", ($hit / $box) * 1000);
}else{
$daritu = "000";
}
if($rankno eq 0){
if($daseki >= $kitei_hit){
$seiseki = $daritu;
push(@kiteiranks, $_);
push(@tmp2, $seiseki);
push(@tmp3, $hit);
}else{
last;
}
}else{ |
上記のエラーは$boxが0の場合にエラーになって更新が中断されます。
ですから、$boxが0じゃなかったら$darituを計算して、そうでなかったら(0だったら)強制的に$darituに000を入れます。 |
|
|
劇ぱわの設置が完了して、セキュリティ対策も完了して、
『さぁ!公開するぞ!』
となった時にすでに『第1回リーグ〜日目』なんて事になってますよね♪
これをリセットして『第1回リーグ初日』にする方法を説明します。
datファイルを全て初期化するために各datファイルの初期状態(空の状態)の物をアップロードして下さい。
もしくは、アップしてある各datファイルの内容を削除してして下さい。(ファイルを削除しない事!) |
|
|
劇ぱわはクッキーを利用して「なまえ」「パスワード」の入力を省いてくれますが、「なまえ」が『?O?L』なんて表示されてしまう場合があります。
原因は、劇ぱわを設置したサーバーのOSが「Windows」で尚且つ「Apache2.0.49」をしようしている場合に起きるようです。
あなたが使用しているパソコンのOSは関係ありません。
(何の事かわからない人は、分かった気になって進んで下さい^^;)
ここに記載する「クッキーの文字化け」対策は、
「Windowsサーバー」+「Apache2.0.49」の組み合わせに対する対策です。
それ以外の要因による文字化けには、効果がない場合がありますので御了承下さい。
確認して下さい。 |
|
・「劇ぱわ」を設置したサーバーのOSが「Windows」なのか
・「Apache2.0.49」を使用しているのか
↓
・サーバーの規約・仕様をチェックする。
・サーバーの管理者に問い合わせてみる。 |
解決方法 |
|
gekipawa.cgiの後半に
##### クッキーの発行
sub set_cookie{
$ENV{'TZ'} = "GMT"; # 国際標準時を取得
(省略)
$date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT";
$cook="pass<>$form{'pass'}\,saku<>$form{'saku'}\,home<>$form{'home'}";
print "Set-Cookie: BASEBALL=$cook; expires=$date_gmt\n";
}#end set_cookie
##### クッキーを取得
sub get_cookie{
@pairs = split(/;/, $ENV{'HTTP_COOKIE'});
(省略)
$c_pass = $COOK{'pass'};
$c_saku = $COOK{'saku'};
$c_home = $COOK{'home'};
if ($in{'pass'}){ $c_pass = $in{'pass'}; }
if ($in{'saku'}){ $c_saku = $in{'saku'}; }
if ($in{'home'}){ $c_home = $in{'home'}; }
}#end get_cookie
という部分があります。これを
##### クッキーの発行
sub set_cookie{
$ENV{'TZ'} = "GMT"; # 国際標準時を取得
local($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg)=localtime(time+30*24*60*60);
$yearg += 1900;
if ($secg < 10) { $secg = "0$secg"; }
if ($ming < 10) { $ming = "0$ming"; }
if ($hourg < 10) { $hourg = "0$hourg"; }
if ($mdayg < 10) { $mdayg = "0$mdayg"; }
$month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$mong];
$youbi = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$wdayg];
$ENV{'TZ'} = "Japan";
$date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT";
#エンコード
$saku2 = $form{'saku'}; #エンコードするものとしないものを分ける、
$saku2 =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;
$cook="pass<>$form{'pass'}\,saku<>$saku2\,home<>$form{'home'}";
print "Set-Cookie: BASEBALL=$cook; expires=$date_gmt\n";
}#end set_cookie
##### クッキーを取得
sub get_cookie{
@pairs = split(/;/, $ENV{'HTTP_COOKIE'});
foreach (@pairs) {
local($key,$val) = split(/=/);
$key =~ s/\s//g;
$GET{$key} = $val;
}
@pairs = split(/,/, $GET{'BASEBALL'});
foreach (@pairs) {
local($key,$val) = split(/<>/);
$COOK{$key} = $val;
}
# デコード
$COOK{'saku'} =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C", hex($1))/eg;
$c_pass = $COOK{'pass'};
$c_saku = $COOK{'saku'};
$c_home = $COOK{'home'};
if ($in{'pass'}){ $c_pass = $in{'pass'}; }
if ($in{'saku'}){ $c_saku = $in{'saku'}; }
if ($in{'home'}){ $c_home = $in{'home'}; }
}#end get_cookie
の様に赤字部分を追加・修正します。 |
この修正は、BBSなど他のCGIにも有効です。 |
|
|
キャンプをした時にキャンプ画面が異常な状態になって、正常にキャンプが出来ない事があります。
原因 |
対策 |
PCのリソース不足 |
・起動中の他のプログラムを終了させて下さい。
・コンピュータを再起動して下さい。
・メモリーを増設して下さい……^^;
・ハイスペックなコンピュータを購入して下さい……^^; |
選手名にエラーを起こす文字が使われている
|
・エラーを起こす選手名を変更する。
・キャンプでは変更できないため、管理者がファイルを直接編集する。
" |
ダブルコーティション(半角英数) |
# |
シャープ(半角英数) |
; |
セミコロン(半角英数) |
全ての記号をチェックしているわけではありません。
半角英数の記号は選手名に使用しない事をお勧めします。 |
|
改造時のミス |
原因を見つけて、修正する。 |
|
|
|
ABCオロチサーバーに劇ぱわを設置した時に画面が正しく表示されない事があります。
原因 |
対策 |
自動挿入される広告 |
・(gekipawa.cgiが入れられる)フォルダ名、または、ファイル(gekipawa.cgi)に「frame」と言う文字を入れる。
(例)……/frame/gekipawa.cgi 「frame」と言う名称のフォルダ内に設置する。
(例)……/frame_gekipawa/gekipawa.cgi 「frame」と言う文字をフォルダ名に使用する。
(例)……/gekipawa/frame.cgi 「gekipawa.cgi」を「frame.cgi」と言う名称に変更する。
(例)……/gekipawa/frame_gekipawa.cgi 「gekipawa.cgi」のファイル名に「frame」と言う文字を使用する。
・「frame」と言う文字の入る「フォルダ」以下には、広告が自動挿入されなくなります。
・「frame」と言う文字の入るファイルには、広告が自動挿入されなくなります。
・「広告挿入タグ」を著作権表示部分などに貼り付ける。
(ABCオロチサーバーの「よくある質問」内の「手動挿入用広告タグ」参照)
※「手動挿入用広告タグ」を貼らないと規約違反でアカウントが停止されます。
※内容が変更される場合がありますので、必ず「ABCオロチ」の「よくある質問」を確認して下さい。
|
|
|
|