500 Internal Server Error
by
nennneko5787さん
(a90e74a0)
投稿数:5回
(ベストアンサー:0回)
(ベストアンサー:0回)
2023/11/05 10:39
#!/usr/bin/perl
use strict;
my $system_dir = './test';
chdir $system_dir;
exit(main());
sub main
{
print "Content-Type: text/html; charset=Shift_JIS\n\n";
my $bbsmenu = getbbsmenu();
if (! defined $bbsmenu) {
print "BBSMENU取得失敗<br>\n";
return 0;
}
foreach my $category (@$bbsmenu) {
print "$category->{name}<br>\n";
foreach my $bbs (@{$category->{list}}) {
print "・<a href=\"$bbs->{url}\">$bbs->{name}</a><br>\n";
}
print "<br>\n";
}
return 0;
}
sub getbbsmenu
{
require "./module/melkor.pl";
require "./module/nazguls.pl";
require "./module/galadriel.pl";
my $SYS = new MELKOR;
return undef if ($SYS->Init() ne 0);
my $basedir = $SYS->Get('SERVER', '') . GALADRIEL::MakePath($SYS->Get('CGIPATH', ''), $SYS->Get('BBSPATH', ''));
my $BBS = NAZGUL->new;
$BBS->Load($SYS);
my $Category = ANGMAR->new;
$Category->Load($SYS);
my @catSet = ();
$Category->GetKeySet(\@catSet);
my $bbsmenu = [];
foreach my $catid (sort @catSet) {
my $catData = {};
$catData->{name} = $Category->Get('NAME', $catid);
my $bbslist = [];
$catData->{list} = $bbslist;
my @bbsSet = ();
$BBS->GetKeySet('CATEGORY', $catid, \@bbsSet);
foreach my $bbsid (sort @bbsSet) {
my $bbsData = {};
$bbsData->{name} = $BBS->Get('NAME', $bbsid);
my $bbsDir = $BBS->Get('DIR', $bbsid);
$bbsData->{dir} = $bbsDir;
$bbsData->{url} = "$basedir/$bbsDir";
push @$bbslist, $bbsData;
}
push @$bbsmenu, $catData;
}
return $bbsmenu;
}
このスクリプトを実効すると、Internal Server Errorとでます。
しかし、このスクリプトは、前に別のサーバーで実行できました。
なぜでしょうか
補足:パーミッションはrwx------(700)になっています
use strict;
my $system_dir = './test';
chdir $system_dir;
exit(main());
sub main
{
print "Content-Type: text/html; charset=Shift_JIS\n\n";
my $bbsmenu = getbbsmenu();
if (! defined $bbsmenu) {
print "BBSMENU取得失敗<br>\n";
return 0;
}
foreach my $category (@$bbsmenu) {
print "$category->{name}<br>\n";
foreach my $bbs (@{$category->{list}}) {
print "・<a href=\"$bbs->{url}\">$bbs->{name}</a><br>\n";
}
print "<br>\n";
}
return 0;
}
sub getbbsmenu
{
require "./module/melkor.pl";
require "./module/nazguls.pl";
require "./module/galadriel.pl";
my $SYS = new MELKOR;
return undef if ($SYS->Init() ne 0);
my $basedir = $SYS->Get('SERVER', '') . GALADRIEL::MakePath($SYS->Get('CGIPATH', ''), $SYS->Get('BBSPATH', ''));
my $BBS = NAZGUL->new;
$BBS->Load($SYS);
my $Category = ANGMAR->new;
$Category->Load($SYS);
my @catSet = ();
$Category->GetKeySet(\@catSet);
my $bbsmenu = [];
foreach my $catid (sort @catSet) {
my $catData = {};
$catData->{name} = $Category->Get('NAME', $catid);
my $bbslist = [];
$catData->{list} = $bbslist;
my @bbsSet = ();
$BBS->GetKeySet('CATEGORY', $catid, \@bbsSet);
foreach my $bbsid (sort @bbsSet) {
my $bbsData = {};
$bbsData->{name} = $BBS->Get('NAME', $bbsid);
my $bbsDir = $BBS->Get('DIR', $bbsid);
$bbsData->{dir} = $bbsDir;
$bbsData->{url} = "$basedir/$bbsDir";
push @$bbslist, $bbsData;
}
push @$bbsmenu, $catData;
}
return $bbsmenu;
}
このスクリプトを実効すると、Internal Server Errorとでます。
しかし、このスクリプトは、前に別のサーバーで実行できました。
なぜでしょうか
補足:パーミッションはrwx------(700)になっています
by
霜月さん
(06427065)
投稿数:4回
(ベストアンサー:2回)
(ベストアンサー:2回)
2023/11/06 12:03
https://www.xfree.ne.jp/support/faq/server_cgi.php
>Q.CGIを設置すると「500 Internal Server Error」が表示されます。
>>A.【考えられる要因】
>>CGI設置ディレクトリのパーミッションが755, 705のいずれかで設定されていない
>>プログラム側の記述に誤りがある
>>なお、同時接続数などが影響し、リソース制限がかかっている可能性もあります。
>Q.CGIを設置すると「500 Internal Server Error」が表示されます。
>>A.【考えられる要因】
>>CGI設置ディレクトリのパーミッションが755, 705のいずれかで設定されていない
>>プログラム側の記述に誤りがある
>>なお、同時接続数などが影響し、リソース制限がかかっている可能性もあります。
by
NO_NAME
(4b9b203e)
投稿数:258回
(ベストアンサー:32回)
(ベストアンサー:32回)
2023/11/07 06:59
ここのサーバーではPerlは使えなかったはず。CGIを作るならPHPのみ。
トピック作成者からの返信 2023/11/07 18:44 posted(a90e74a0)
Perlは動くんです、ただこのスクリプト"だけ"が動かないんです。