コアサーバーのメンテナンスの影響でYY-BOARDを新バージョンに入れ替え

2022年5月16日

2022/5/16(月) 00:00 ~ 09:00にコアサーバー(coreserver.jp) 最新・高速サーバーへの移転メンテナンスが行われました。
それ以降、CGIで動作している掲示板(YY-BOARD)もアクセスカウンター(lime)も人気投票(votecom)も掲示板の最終更新日表示(getstamp)も動作しなくなりました。

コアサーバー 最新・高速サーバーへの移転メンテナンスの影響だと思われます。
・標準PHP:FastCGI版7.1系 → FastCGI版7.4系
・MySQL:5.7系 → MariaDB10.6系
の影響が怪しいです。

2022年5月19日

まず、最初に掲示板(YY-BOARD)の復旧に着手しました。
コアサーバー(coreserver.jp)の運営しているバリュ-ドメインに問い合わせしたのですが、

jcode.pl をご利用されている場合、
かなり古いものとなりますため、恐らくリニューアル後の
Perlバージョン(5.26)には対応していないかと存じます。
恐れ入りますが、
jcode.pm や jacode.pl を始めとした代替ライブラリでのご利用を
ご検討くださいませ。

という返答が1日後にありました。
jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./jacode.pl’;に変更しても動作しません。

YY-BOARDを提供しているKENT-WEBに行くと、2021/07/24に新しいバージョンのYY-BOARDが掲載されていたので、インストールしてみました。

モバイル対応になっていて、なんとか動作する事を確認しました。

init.cgi の設定で

# 掲示板タイトル
$cf{bbs_title} = “金沢近郊の街 住みやすさ掲示板”;

# 戻り先【URLパス】
$cf{homepage} = “https://kimassi.net/”;

# アイコンモード機能
# 0 : アイコン不使用
# 1 : アイコン使用
$cf{icon_mode} = 0;

# 返信がつくと親記事をトップへ移動 (0=no 1=yes)
$cf{topsort} = 1;

# ミニカウンタの設置
# → 0=no 1=テキスト 2=画像
$cf{counter} = 0;

# 投稿があるとメール通知する (sendmail必須)
# 0 : 通知しない
# 1 : 通知する
$cf{mailing} = 1;

# メールアドレス(メール通知する時)
$cf{mailto} = ‘kimassi@spacelan.ne.jp’;

# URLの自動リンク (0=no 1=yes)
$cf{autolink} = 0;

# 過去ログ生成
# → 0=no 1=yes
$cf{pastkey} = 1;

を設定しました。

アイコンやホームページ参照は不要なので、
temp/bbs.html 、temp/edit.html、temp/read.html、temp/topic.htmlを書き換えました。

<tr>
<th>参照先</th>
<td><input type=”text” class=”reg-url” name=”url” value=”!url!”></td>
</tr><tr>
<th>アイコン</th>
<td>
<select name=”icon”>
<!– op_icon –>
</select>
<!– pop_icon –>
[<a href=”!bbs_cgi!?mode=icon” target=”popwin” onclick=”popup(‘!bbs_cgi!?mode=icon’)”>アイコン参照</a>]
<!– /pop_icon –>
</td>
</tr>

を削除しました。

!icon:user.png! <b>!name!</b> !icon:time.png! !date! !url! <span class=”num”>No.!num!
の部分を
<b>!name!</b> !icon:time.png! !date! <span class=”num”>No.!num!
に書き換えました。

同様に、temp/bbs-res.html 、temp/past.html も同じ個所を訂正しました。

掲示板のタイトルの下に説明書きを入れたかったのとカウンターを省きたかったので

<div id=”head”>
<div id=”head-in”>
<div id=”head-ttl”><h1>:: !bbs_title! ::</h1></div>
<div id=”head-cnt”>!counter!</div>
<div id=”head-clr”></div>
</div>
</div>


<div id=”head”>
<div id=”head-in”>
<div id=”head-ttl”><h1> !bbs_title! </h1></div>
<div id=”head-clr”></div>
</div>
金沢で住むならどこが良いですか?学校や地域の良いところ悪いところ教えて
</div>

に書き換えました。

admin.cgi の修正画面のアイコンやホームページ入力の下記の部分を削除しました。

<tr>
<th>URL</th>
<td><input type=”text” name=”url” value=”$url” size=”40″></td>
</tr><tr>
<th>アイコン</th>
<td>
<select name=”icon”>
$op_icon
</select>
</td>
</tr>

メールアドレスの記入は任意にしたかったので
regist.cgiを書き換えました。

if ($in{email} ne ” && $in{email} !~ /^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
$err .= “Eメールの入力内容が不正です<br>”;
}

を削除しました。

管理人へのメール送信で掲示板名が表示されないので
regist.cgiを書き換えました。

掲示板に投稿がありました。の下の行に
$cf{bbs_title}
を追加しました。

最初、管理画面に入れませんでした

説明文では、
init.cgi を エディタ で開いて以下の箇所を修正します。
 $cf{password} = ‘0123’;

と説明されていますが、init.cgiに$cf{password} = ‘0123’; が見当たりません。
KENT-WEBのサポート掲示板で相談すると、実際にはinit.cgiにパスワードを保存しない方式に変わっているとの事でした。
デフォルトで
username:admin
password:password
と設定してあるとの事でした。

掲示板(YY-BOARD)の問題は全て解決しました。

人気投票(votecom)は
jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./jacode.pl’; に変更して動作しました。

ページ別アクセスカウンター(lime)も
jcode.pl をjacode.plに変更して、CGIのソースをrequire ‘./lib/jacode.pl’; に変更して動作しました。

掲示板の最終更新日を表示するgetstampが動作しません。
javascript以外で対応しようとしてSSIも試してみましたが
<!–#flastmod virtual=”/cgi/yybbs11/data/log.cgi” –>
での表示も動作しません。

コアサーバー(coreserver.jp)の運営しているバリュ-ドメインに問い合わせしたのですが、サポート外なので、そちらでwebサイト開発者様やCGIファイル提供元様へご問い合わせしろだって。
最低!!!!
こういう事はサーバー側なら当然把握しているはずなのに、前もって起こりえる事を事前に通知しても良いのではないのかと思います。

2022年7月24日

掲示板(YY-BOARD)を新バージョンに更新してから、メール通知でホスト名は記載されるのですがIPアドレスが記載されなくなりました。
ホスト名からIPアドレス を取得する方法はあるのですが、他のサイトに行って変換したりしなければいけないので面倒です。
以前のように最初からIPアドレスを記載された方が便利です。
そもそも、なんでIPアドレスの取得が必要かというと、迷惑投稿をはじく場合に必要なんです。

メールにIPアドレスの通知を入れるように改造しました。

regist.cgiを改造します。

メール送信の部分で

#———————————————————–
# メール送信
#———————————————————–
sub mail_to {
my ($date,$host) = @_;

の部分を

#———————————————————–
# メール送信
#———————————————————–
sub mail_to {
my ($date,$host,$addr) = @_;

に変更します。

投稿日:$date
ホスト:$host

の下に1行追加して

投稿日:$date
ホスト:$host
IPアドレス:$addr

に変更します。

ついでに、ログにもIPアドレスを記録して、管理画面にもIPアドレスを表示するように改造しました。

regist.cgiを改造します。

unshift(@data,”$no<><>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);
unshift(@data,”$no<>$addr<>$time<>\n”);

の全てに <>$addr を加えて

unshift(@data,”$no<><>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);
unshift(@data,”$no<>$addr<>$time<>\n”);

に変更します。

push(@data,”$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);

の全てに <>$addr を加えて

push(@data,”$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$crypt<>$in{color}<>$icon[$in{icon}]<>\n”);

に変更します。

my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$pw,$col,$ico) = split(/<>/);

に $addr を加えて

my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$addr,$pw,$col,$ico) = split(/<>/);

に変更します。

$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;

の全てに <>$addr を加えて

$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;

に変更します。

admin.cgi を改造します。

my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$pw,$col,$ico) = split(/<>/);

に $addr を加えて

my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$addr,$pw,$col,$ico) = split(/<>/);

に変更します。

$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;

の全てに <>$addr を加えて

$_ = “$no<>$reno<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$addr<>$pw<>$in{color}<>$icon[$in{icon}]<>\n”;

に変更します。

print qq|<b class=”sub”>$sub</b> 名前:<b>$name</b> 日時:$date [$host]\n|;

に [$addr] を加えて

print qq|<b class=”sub”>$sub</b> 名前:<b>$name</b> 日時:$date [$host][$addr]\n|;

に変更します。

2022年8月2日

頻度は少ないけど、凄く文字化けしているスパム投稿があります。
その場合には、メールでの通知もありません。
掲示板のロゴファイルの最終更新日を表示してあるのですが、それを見て初めて気づくという感じです。
正式な手順を踏んでの投稿では無くて、直接にログファイルに書き込んでいる感じです。
ひょっとしたら、ShiftJISで書き込んでいるのかもしれません。
不思議です。

2022年8月6日

新しいバージョンでYY-BOARDの記事 [タイトル] 部の長さの変更ができないことに気づきました。
init.cgiに
# 記事 [タイトル] 部の長さ (全角文字換算)
$cf{sub_len} = 20;
という設定があるのですが、入力画面の時点で12文字しか入力を受け付けないのです。

tmpl/bbs.htmlの

<tr>
<th>タイトル</th>
<td>
<input type=”text” name=”sub” class=”reg-url” value=”!sub!” maxlength=”12″>
<input type=”submit” class=”reg-btn” value=”投稿”>
</td>
</tr>

のmaxlength=”12″の数字を書き換えることで解決しました。

2022年8月15日

スパム投稿防止のために .htaccess で特定IPアドレスのアクセスを制限しているのですが、何故か正常に動作しません。

通常、 .htaccess に deny from 123.456.789.000 に記述すれば、IPアドレス123.456.789.000のアクセスを禁止できるのです。
いろいろ調べたら、 .htaccess の最後の行に空白の行を入れないといけないのを、怠っていたのが原因のようです。
これで解決すると良いなあ

コメントを残す

メールアドレスが公開されることはありません。