XREAサーバー

2022年9月、XREAサーバFREEも?リニューアルされました
【システムの増強および、新仕様のサーバーへマイグレーション(移行)らしいです】

それに伴い?掲示板のCGIでInternal Server Error(status 500)が発生、掲示板に入ることが出来なくなりました。(涙)
CGIが全滅かといえばそうでもなく、カウンターは動いてます。
なんか仕様が変わったのかも?

数日、時間が空いた時に検索などで同じような経験をされて対処法まで載っているページが無いか探していました。
残念ながら、全く無知なので、どこから探せば良いのかすら解らず迷子状態・・・

とりあえず、何がどう変わったのか調べることにしました。
そうしましたら、変更箇所がチャンと書いてありました。

*******************************************************************
https://www.xrea.com/info/brandnew2022.php#migration_faq14
Q7. CGI実行時にInternal Server Error(status 500)になる
CGIを実行するPerlバージョンが「5.16」から「5.26」に変更となっております。
CGIファイルの記述内容がPerl5.26にそっていない場合、 「Internal Server Error(status 500)」となります。
Perl5.26に合わせた内容に調整または、 CGIファイルの提供元にご確認をお願いいたします。
********************************************************************
と言う事らしいです、でもど素人には何が何やら??????です。

そんなことで、Perl5.26になって何が変わったのかを検索してましたら
色々と出てくるんですが、また、何が何やら???です。
でも、なんとなくInternal Server Error(status 500)との関係を検索してましたら
以下のようなページに巡り合いました。

********************************************************************
https://www.adam.ne.jp/support/troubleshooting/web02/#Internal-Server-Error-%E3%81%A8%E3%81%84%E3%81%86%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B
原因4インタプリタのアップデートで仕様が変わった
対策4-1
Perl5.22以降では、 defined(@array) および defined(%hash) は致命的なエラーになりました。
この仕様変更によりPerlライブラリ jcode.pl はエラーを発生します。
jcode.pl の682行目辺りのコードを次のように修正することでエラーを回避することができます。

修正前
sub z2h_euc {
local(*s, $n) = @_;
&init_z2h_euc unless defined %z2h_euc;
$s =~ s/($re_euc_c|$re_euc_kana)/
$z2h_euc{$1} ? ($n++, $z2h_euc{$1}) : $1
/geo;
$n;
}

sub z2h_sjis {
local(*s, $n) = @_;
&init_z2h_sjis unless defined %z2h_sjis;
$s =~ s/($re_sjis_c)/$z2h_sjis{$1} ? ($n++, $z2h_sjis{$1}) : $1/geo;
$n;
}
修正後
sub z2h_euc {
local(*s, $n) = @_;
&init_z2h_euc unless %z2h_euc;
$s =~ s/($re_euc_c|$re_euc_kana)/
$z2h_euc{$1} ? ($n++, $z2h_euc{$1}) : $1
/geo;
$n;
}

sub z2h_sjis {
local(*s, $n) = @_;
&init_z2h_sjis unless %z2h_sjis;
$s =~ s/($re_sjis_c)/$z2h_sjis{$1} ? ($n++, $z2h_sjis{$1}) : $1/geo;
$n;
}
********************************************************************

こんな感じやったんです、で、jcode.plを使ってるのでこれなら自分でもできそうと書き換えてみました。
元のjcode.plをバックアップして、書き換えたjcode.plで上書きしました。

結果、今のところエラーは回避できているようです。
ど素人の作業ですので、正解かどうかは分かりません・・・
ご存じの方が、もしこれを見られましたら、お教え頂ければ大喜びです。

2件のコメント

  1. juneさん、おはようございます。

    ものすごくお久しぶりです。
    CGIの件、お疲れさまでした。ありますねぇ、仕様変更。

    昨日、長年の知り合い(身内ではありませんが……)が亡くなってものすごく不安になり、自分のことは棚に上げてオンライン、オフラインの方の安否確認をしております。
    皆さん、割と最近の書き込みがありまして、ホッと一息つきました。

    1. o6asan様 ご無沙汰しています。

      CGIに関しましては昨年o6asan様のbbsに書き込ませていただいたと思いますが
      hi-hoではCGIが使用できなくなりまして、掲示板やカウンターはダメになったりで散々です(涙)

      > 長年の知り合い(身内ではありませんが……)が亡くなってものすごく不安になり
      > 自分のことは棚に上げてオンライン、オフラインの方の安否確認をしております。
      そうなんですか、気持ちは分かります。

      私の場合、今月オフラインでの友達(9歳年下)がなくなったり
      オンラインでの知り合いが6月に亡くなっていたことが会社のお別れ会の案内状で分かったりでさみしい限りです。

      結果、ホッと一息つけたならよろしいですね!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です