CSS
無料お問合せはこちらから TEL 075-257-4588 営業時間 AM10:00〜PM7:00
| ホーム |
| 無料ホームページ作成講座 | ホームページ作成辞典| 田中茂(代表取締役社長)経歴 |

アクセスを増やす20の方法

CGIスクリプトをデバッグするには?

トップ > CGI入門 > CGIスクリプトをデバッグするには?
はじめに

デバッグとは、プログラムのバグ(誤動作の原因)を取り除くことを言います。ここでは、どうしてもCGIスクリプトが動かない場合(サーバーエラーになってしまう場合)の、デバッグを方法をいくつか紹介します。

Perlで動くか確認する

マシンで Perl を使用可能な場合は、コマンドライン(Windowsの場合は MS-DOSプロンプト)で実行確認してみましょう。期待通りのHTML文書が表示されていればOKです。(test.cgi は、作成したCGIスクリプトのファイル名です。)

perl test.cgi

オプション -wc を用いることで、より詳細なシンタックス(構文)チェックを行うことができます。

perl -wc test.cgi
Webサーバのエラーログを確認する

Webサーバのエラーログ(/var/log/apache/error_logなど)を確認できる場合は確認してみましょう。何かヒントになるメッセージが書き込まれているかもしれません。

デバッグ文を挿入してみる

サーバ上でしかデバッグができない場合は、CGIスクリプトの2行目(1行目は perl のパス名だと思うので)に、以下の文章を挿入してください。

print "Content-type: text/html\n\nOK.\n"; exit(1);

この状態でブラウザからCGIを呼び出して「OK.」が表示されれば、CGIの設定は正常です。これでもサーバーエラーになってしまう場合は、以下のような原因が考えられます。

「OK.」が表示された場合、上記で追加した行を10行目あたりに移動して、再度ブラウザから呼び出してください。これで「OK.」が表示されれば、1行目から10行目の間に記述されたスクリプトは正常に動作していることがわかります。

10行目に追記した行を50行目に移動し、「OK.」だったら100行目あたりに、エラーだったら25行目あたりに移動して、スクリプトの「どの部分」でエラーが発生しているかを見つけていきます。

たとえば下記の例で、26行目に挿入した時は「OK.」が表示されたのに、28行目に挿入するとサーバーエラーとなる場合、27行目が「怪しい」行となります。

25: print "</html>\n";
26:
27: print "<body bgcolor="#ffffff">\n";
28:
29: print "<h1>テスト</h1>\n";

この場合(あくまで上記の場合は・・・ですが)、27行目の " を \" に、つまり、27行目を次のように修正すれば、動くようになるかもしれません。

27: print "<body bgcolor=\"#ffffff\">\n";
変数を表示させてみる

上記と同じように、スクリプトの2行目に下記の行を追加してください。

print "Content-type: text/html\n\n";

また、スクリプトの適当な個所で下記の例に示す行を追加してください。

print "DEBUG: XXX=$FORM{'XXX'}<br>\n";

これにより、その時点における変数の値を表示させることもできます。

大胆なデバッグ方法

あと、サーバにアップロードしたCGIを大胆にデバッグする方法を紹介していただきました。まず、スクリプトの1行目(1行目が #! ではじまっている場合は2行目)に下記の行を挿入してください。

eval {

また、スクリプトの一番最後に以下の行を追加してください。

};
if ($@) {
    print "Content-type: text/html\n\n";
    print "<title>ERROR</title>\n";
    print "ERROR = $@\n";
}

これにより、うまくいけば、スクリプトをすべて実行評価し、致命的なエラーがある場合に、eval { ... }; を抜けてエラーメッセージを表示します。eval { ... } の後のセミコロン( ; )を忘れないようにしてください。

<< PAGE TOP >>

BACK UP 初心者でホームページを考えてられてる方へ

独自ネットショップや楽天ショップ・YAHOOショップ運営される初心者の方も、無料で、親切にアドバイスいたします。
SEO・月次更新・リニュアルetc

ホームページ制作の事なら

何でもお問合せください。
お問合せフォームはこちらから

ホームページ作成は京都のリュウム株式会社

京都市中京区橋弁慶町222番地
ヒライビル3階

TEL 075-257-4588
営業時間 AM10:00-PM7:00


無料お問合せはこちらから TEL 075-257-4588 営業時間 AM10:00〜PM7:00
| ホーム |
| 無料ホームページ作成講座 | ホームページ作成辞典|田中茂(代表取締役社長)経歴|
CSS
Ryuumu