CGI の動作確認方法をご教示お願いいたします
サイト内検索を付けたくて、以下のサイトよりモジュールをダウンロードしました。
http://www.synck.com/contents/download/cgi-perl/sitesearch_crw.html
CGIの設定環境(CGI設置場所、Perlのパス、Encodeモジュールの存在、パーミッション)
についてはサーバー管理者に確認済みで、問題ないのですが、実行してもエラーも出ず、
うんともすんとも言わない状態です。
HTML からは、以下のように呼び出しがされています。
-------------------------------------------------------------------------------
<form class="sitesearch" method="get" action="index.cgi" onsubmit="return sitesearch(this);">
<input type="text" name="q" value="" /> <input type="submit" value="サイト内検索" />
-------------------------------------------------------------------------------
action で呼び出しているindex.cgi で動いているかどうか確認する方法を
教えていただけませんでしょうか。
一応、index.cgi の最初の方にメッセージを入れてみたのですが、表示されませんでした。
以下は、index.cgi の一部です。
-------------------------------------------------------------------------------
#!/usr/bin/perl
## 京
use Encode;
require './init.cgi';
&_GET;
my(@keys) = split(/ /,$_GET{'q'});
print "テスト\n"; ←こんな感じにメッセージいれました。
## int
$totime = time();
if((-f $config{'cache'}) && (((stat($config{'cache'}))[9] + 60 * $config{'expiration'}) > $totime)){
## Load Cache
@pages = &_LOAD($config{'cache'});
}
else{
## Create Cache
push @dirs,$config{'dir'};
while($cnt < @dirs){
$dir = $dirs[$cnt];
opendir DH, $dir or die "$dir:$!";
while (my $file = readdir DH) {
next if $file =~ /^\.{1,2}$/;
$currentpath = $dir . $file;
if(-d $currentpath && (grep(/^${file}$/,@excluded_dirs_name)) == 0){
push @dirs, "${currentpath}/";
}
elsif((split(/\./,$currentpath))[-1] =~ /htm/si){
$html = join("",&_LOAD($currentpath));
$html =~ s/\t//ig;
$html =~ s/\r//ig;
$html =~ s/\n//ig;
my ($tilte,$snippet,$keywords,$contents,$thumbnail);
if($html =~ /<title>(.*?)<\/title>/si){
$title = $1;
if($title =~ /$config{'title_regex'}/){
$title = $1;
}
}
if($html =~ /<meta.*?name=\"Description\".*?content=\"(.*?)\"/si){
$snippet = $1;
}
if($html =~ /<meta.*?name=\"Keywords\".*?content=\"(.*?)\"/si){
$keywords = $1;
}
if($html =~ /$config{'body_regex'}/){
$contents = $1;
$contents =~ s/<script.*?\/script>//g;
$contents =~ s/<.*?>//g;
}
## Thumbnail
$thumbnail_path = "${dir}images/thumb_${file}\.jpg";
if(-f $thumbnail_path){
$thumbnail = $thumbnail_path;
$thumbnail =~ s/$config{'uri_replace_before'}/$config{'uri_replace_after'}/i;
}
@file_info = stat($currentpath);
($sec,$min,$hour,$day,$mon,$year) = localtime($file_info[9]);
$file_updatetime = sprintf("%04d-%02d-%02d %02d:%02d:%02d",$year+1900,$mon+1,$day,$hour,$min,$sec);
$file_size = int($file_info[7] / 1024);
$currentpath =~ s/$config{'uri_replace_before'}/$config{'uri_replace_after'}/i;
@page = ($currentpath,$thumbnail,$title,$snippet,$keywords,$contents,$file_updatetime,$file_size);
push @pages,join("\t",@page);
}
}
closedir DH;
$cnt++;
}
-------------------------------------------------------------------------------
よろしくお願いいたします。
お礼
返答ありがとうございます。 誰からも返答がなかったので、自力でいろいろい調べていたら言われるとおりの方法が一番簡単に出来るということを知りました。 すべてのCGIの変数を抜き取って"config.pl"に保存することにしました。 ありがとうございます。