似乎配置了Strawberry Perl和IIS,但是收到了404页

时间:2019-02-25 18:58:37

标签: perl cgi iis-8 strawberry-perl

我一直在寻找有关该主题的几篇文章,但我仍然感到困惑。 Strawberry Perl和IIS 8安装在我们的Windows 2012 R2服务器上。我知道要在 ISAPI和CGI限制下添加Strawberry Perl.exe,最后纠正了我列出列表DL的错误(本文的早期编辑)。您可以使用.exe而不是DLL,因此我提供了Strawberry Perl的perl.exe的路径。 IIS 8 Menu

编辑2/26/2019: 根据要求,这是Select.pl的第一部分,它在默认文档中列出:

#!/usr/local/bin/perl -w
# Permit/Web/Select.pl
# -*- tab-width: 8 -*-

use strict;
use warnings;
use lib qw( ../../include ./include );
use DbArgs;
use DBI;

######################################################################
# Prototypes
#
sub main();
sub HTMLPermitTypeRow($);
sub HTMLPermitClassRow($);
sub jsQuote($);

######################################################################
# Globals
#
my $HTML_ROOT_DIRECTORY     = DbArgs::HTMLRootDirectory();
my $debugging               = 0;

# start with Sunday to align with localtime order 0 to 6
#
my @weekdays                 = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);

# work Mon-Fri no holidays
#
my @previousworkdays        = qw(Friday Friday Yesterday Yesterday Yesterday Yesterday Friday);

my %input;

main();
exit(0);

######################################################################
#   main
#
sub main() {
    my $header;
    my $footer;
    my $inspectorsrow;
    my $today;
    my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst )= localtime( );
    my $inspected = $previousworkdays[$wday];

    %input  = DbArgs::ParseArgs();

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

    # define required input
    # not defining optional input inspected, permittype, permitclass, reportformat
    #
    foreach ( qw( address contractor description inspector issue issue_thru owner ) ) {
        $input{$_} = '' unless defined $input{$_};
    }

    my $hiddenfields = '';
    foreach my $fieldname ( sort keys %input ) {
        my %definedFields = ( 'address'     => ''
                    , 'contractor'  => ''
                    , 'description' => ''

有一个许可证池,它以管理员身份登录,并且许可证应用程序使用许可证池。

我将Select.pl列为默认文档,并且加载了cgi处理程序。

当我尝试到达http://locahost/permitshttp://locahost/permits/Select.pl时,我得到了404,但在日志,事件或IIS中找不到任何可以告诉我出了什么问题的信息。任何指针将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以运行任何HTML文件吗?如果是这样,请在其旁边放置一个简单的perl脚本并调用它。 打印“内容类型:text / html \ n \ n”; 打印“确定”;

如果这可行,则问题出在您的脚本中。如果不起作用,则可能是设置错误。

如詹尼斯·博蒂斯(Jannes Botis)所写,请在http://gdavidcarter.blogspot.com/2016/04/installing-perl-on-windows-2012r2-iis-85.html进行检查。

我没有IIS,也无法检查,但是由于版本8,我可能不需要在C:\ Perl \ bin \ perl.exe%s%s中加引号(与以前的版本相比,这是必需的)< / p>

答案 1 :(得分:0)

我最终根据新的网站在工作和答案中的有用和有价值的信息,以及在@SlawomirDziuba的答案中指出的link中的一些信息,使新网站开始工作。

我最大的问题是选择正确的处理程序,为了使其在IIS8上运行,我需要一个脚本映射,而不是CGI模块。鉴于系统上没有其他Perl,我还将草莓Perl安装到了C:\ Perl。