CafeLogにタイトル一覧表示を追加(3)
CafeLogの作者の運営するKENT-WEBサイトより。『KENT-WEBはCGI/Perlプログラムを無料で配布する日本最大のサイトです。累計ダウンロード数は380,535,654回。』
その内訳が下図。




やはり掲示板が人気で、ブログをCGIで運用しようとする人はまだ少ないようですね。
もっとも、週間のダウンロードランキングは下記の通りですので、cafeLogが2位、累計では最下位に近くにいたSmartBlogが15位とそれぞれ躍進しています。
CGIの人気が掲示板からブログに移ってきているのですかね。


LinkViewerは累計のダウンロード数は68000弱でCafeLogの3.5倍程度です。意外に多いなぁと思いました。「意外に」という理由は、LinkViewerは10年位前に最後のアップデートがされて、その後まったく手が入っていないらです。CafeLogは今年に入ってもイメージファイルのアップデートに関する機能追加がされています。

実は僕の使っている二つのサーバー環境(AwardSpaceとSakura)で、LinkViewerはそのままでは動きませんでした。お約束の
①パーミッションの指定
②冒頭の行でのperlの在り処の指定
は当然行っていますが、こういうエラーになります。


このエラー上記の①や②をうっかり忘れた時に発生すると承知していましたが、今回は心当たりがありません。さらに不思議なのは LinkViewerの機能拡張版のCOSMO_NAVIも試していたのですが、こちらは問題無く動く。
「差は何だろうか ? 」と思案しました。
COSMO_NAVIの紹介のコメント欄に『スマホ画面に対応したレスポンシブデザイン対応です。』とありました。LinkViewerは見るからに古い画面デザインですから、レスポンシブ対応以前の古いCGIのようです。試しにCGIプログラムソースの文字コードを確認したら、COSMO_NAVIはUTF-8、LinkViewerはS-JISでした。どうもこれが怪しそうだなと考え、LinkViewerの文字コードをUTF-8に変更してみました(ついでに改行コードもLinuxスタイルに)。
やり方は使っているエディター次第ですが、例えばサクラエディターならこんな具合です。




動きました。しかし、まだ奇怪しい。
admin.cgiを起動して表示されるパスワードの入力画面です。


続いて、admin.cgiのデータの処理画面。


完全に文字化けしていますね。ただ、こちらはHTMLのmeta指定がs-jisになっているようだなと推測がつきます。
admin.cgiの一番最後に置かれているHTMLヘッダー作成の関数をチェック。
#-----------------------------------------------------------

# HTMLヘッダー
#-----------------------------------------------------------
sub header {
my $ttl = shift;

print "Content-type: text/html\n\n";
print <<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta http-equiv="content-style-type" content="text/css">
<style type="text/css">

やっぱりs-jisになっていました。
<meta http-equiv="content-type" content="text/html; charset=UTF-8">


と変更しました。

何故cgiの文字コードがs-jisだと500番のエラーになるのかの理由は不明です。「レスポンシブ対応でないCGIは動かしてやらない」なんていう変なサーバーがあるとは思えません。
ググってみると「.htaccessでAddDefaultCharset shift_jisを指定すればOK」というような記述がありましたが、これは逆にUTF-8がディフォルトのCafeLogなどを動かすのに問題となりそうです。結局、LinkViewerをUTF-8対応させるしかなさそうです。
まあ、何とか問題は解決しましたが、その後のCGIの変更より、この動かすまでの方が大変でしたね(^^;;;。

「cgi s-jis 動かない 500」で検索してみました。要するにshift_jisは古く、10年位前からUTF-8が標準の世界に変わってしまったということは分かるが、何故shift_jisだとperlのCGIが動かないのかは不明ですね。今回、悪戦苦闘する中、参考にしたサイトをご紹介しておきます。

2021年に、CGIの文字コードのお話を(Shift-JISのCGIが文字化け)
kent QA
さくらサーバーで枯れたCGIを動かそうとするも500エラー
VPSでShift-jisなどのCGIが文字化けする場合にチェックするべきところ
Fedoraで自宅サーバー構築 CGIの文字コードについて
2023.10.30 00:20 | pmlink.png 固定リンク | folder.png ソフトウェア

- CafeLog -