perlのバージョンアップにより動かなくなったCGI

今まで何の問題もなく動いていたのに、
ページを開くと”Internal Server Error”という見出しのあとに
数行の英文が表示されるのみ。
こんな経験はありませんか?
まったくの個人的な解決法ではありますが、
先ず確認すべきことは
.plファイルのパスが適切に指定されているかどうかです。
メインのCGIファイルと同一フォルダにある必要があると書いている人がいますが、
パスが正しく書かれていれば親フォルダでも問題ないようです。
ただし、同一フォルダに置く場合はファイル名だけを書くのではなく”./xxx.pl”とします。
サーバー運営側の説明によると、
スクリプトに「print “Content-type: text/html\n\n”;」の一文が抜けている可能性がある
ということですが、これは基本的なことなので、
プログラムを書く人も忘れないと思うのですが如何でしょうか。
しかし、前述の解決策で問題が解消されないときは確認してみるべきでしょう。
ファイルの属性を疑えという意見もありますが、今まで動いていたのであれば
属性に問題があるとは考えにくいと思います。
ここまで説明した方法でも直らない場合、次に試してみるべきことは
「jcode.pl」を「jacode.pl」に変えてみる。
「jacode.pl」は自分で調べてダウンロードしてください。
これでもダメならあとはシンタックスエラーを疑っても良いのではないでしょうか。
エラーのチェックは、Kent Webさんが公開している「Perl Checker」を使うと簡単にできます。
以上、実際これらの方法で動くようになったので、やってみる価値はあると思います。

↓2022/05/16 加筆
“Internal Server Error”とならずにページが表示されたとしても
CGIが機能していない場合があります。
原因のひとつとして考えられるのは、Perlのパスです。
!#usr/local/bin/perl となっていなければならないところが、
!#usr/bin/perl となっていないか確認してください。
例え文法的に合っていたとしても、ちゃんと動かない場合があるようです。

コメント投稿フォーム

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