スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Internal Server Error 《error code:500》

PerlでCGIを作成する。
うまく動いている。
ちょっと既存のコードを変更して
再読み込みを行ったら、ブラウザから
『Internal Server Error』が出力。。。

こんなことが結構発生したりします。
で、こんなことが原因だったということを書いていこうかと。

私にとって、
『Internal Server Error』とは、全部自分のミスが原因で発生するもので、
しかも原因がすぐに見つからないものです。
(原因がわかると、こんなことでorz・・・というミスばかりですが。。。)

で、私がやったことがあるミスは、以下2つです。

<CGIのパーミッションを777にしている>

私が使っているサーバの環境下だと755でしか動きません。
自分しか使わないからと安易な気持ちでファイルを777で作成して、
エラーに陥るパターンです。


<Content-typeの部分のprintが置換されている場合>

下に今回使ったコードを記載しているわけですが、
printで出力していた部分に一工夫したくなり、ちゃんと修正すればいいのに、
やはり自分しか使わないから心で、printしている部分を配列とかに格納するようにして、
再度ループさせて、一工夫加えたテキストを出力したりします。

で、printしている部分を配列格納とかに変更する際に、一括置換とかしてしまいます。
当然Content-typeの2行分も配列格納になり、一工夫加えられ、めでたくエラーが出力されると。。。
しかもContent-typeの部分を置換する気はないのに置換されているから、まったく気づかないと。。。

<今後>
ちゃんとやろうと思います。

<こんな感じ>

#!/usr/bin/perl

$html = "test.html";
open(READ, "$html") or die "Can't open $!";

# ここから2行のprintを置換したりしてしまう。。。
print "Content-type: text/html\n\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=Shift_JIS\">\n\n";
foreach $out(<READ>){
print $out;
}

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

unyouman

Author:unyouman
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。