Perlで作成したCGIについて
Perlで作成したCGIについて
Perlで作成したCGIについて質問させていただきます。
####################
##(1)system.cgi ##
####################
#!c:/Perl/bin/perl.exe
use strict;
use warnings;
use CGI;
use CGI::Carp('fatalsToBrowser');
use CGI qw(:standard);
print "Content-type:text/html;charset=utf8\n\n";
system('C:\\test.txt');
#####################################################
C直下にあるtest.txtの中身は「abcd」など
簡単なものです。
#####################################################
###################
##(2)win32.cgi ##
###################
#!c:/Perl/bin/perl.exe
use strict;
use warnings;
use CGI;
use CGI::Carp('fatalsToBrowser');
use CGI qw(:standard);
use Win32::API;
print "Content-type:text/html;charset=utf8\n\n";
my $MessageBox = Win::API -> new("user32","MessageBoxA","NPPN","N");
$MessageBox -> Call(0,"HelloWorld","Message",0);
#####################################################
#####################################################
以下にスペックを書きます。
Microsoft Windows XP
Professional
version2002
Service Pack2
Genuine Intel(R)CPU
L2300 @1.50GHz
1.50GHz,1.49GB RAM
・ActivePerl
ver5.10.1 built for MSWin32-x86-multi-thread
・Apache
Apache 2.2.14(Win32)
#####################################################
上記の(1)、(2)のプログラムをエクスプローラ上(ローカル)で実行させて(1)ではテキストファイルを、
(2)ではメッセージボックスを表示させたいです。
結果は時間がかかるだけでTimeOutの設定である5分で切れてしまい何も起こりません。
しかし、全く同じプログラムで拡張子を.plに変更してコマンドプロンプトで実行すると、
期待通り(1)はテキストファイルが開かれ、(2)ではメッセージボックスが出てきます。
(1)、(2)ともCGIではsystemおよびMessageBoxの部分をコメントアウトして
print文などを書けば普通にエクスプローラに表示されます。
(かなりhtmlとしては不備があると思いますが・・・)
どうすればCGIで(1)、(2)のプログラムが期待通りの動きをするのか
どうぞご教授のほどよろしくお願いいたします。
何か足りない情報や意味の分かりづらい個所がありましたら、仰ってください。
ちなみにこのプログラムは公開するために作成しているのではありません。
下手な説明、長文すみません。
お礼
httpd.confの中のOptionsにExecCGIを追加したら、 動作するようになりました。 ありがとうございます。
補足
1行目をいろいろ変えてみましたが、同じエラーが表示されます。 どうも、1行目は関係ないみたいに思えます。