Strawberry Perl 和 IIS 看似已配置,但收到 404 页面
Strawberry Perl and IIS Seemingly Configured, But 404 Page Received
我已经看了一些关于这个主题的 post,但我仍然感到困惑。 Strawberry Perl 和 IIS 8 安装在我们的 Windows 2012 R2 服务器上。我知道在 ISAPI 和 CGI 限制 下添加 Strawberry Perl.exe,并最终纠正了我列出 DL 的错误(此 post 的早期编辑)。您可以使用 .exe,而不仅仅是 DLL,因此我提供了 Strawberry Perl 的路径 perl.exe。
编辑 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' => ''
有permits pool,以Administrator登录,permits申请使用permits pool。
我已将 Select.pl 列为默认文档,并且加载了 cgi 处理程序。
当我尝试访问 http://locahost/permits or http://locahost/permits/Select.pl 时,我得到了 404,但在日志、事件或 IIS 中找不到任何可以给我线索的错误信息。任何指针将不胜感激。
你能运行任何html文件吗?如果是这样,请在它旁边放置一个简单的 perl 脚本并调用它。
打印"Content-type: text/html \n\n";
打印 "OK";
如果可行,则问题出在您的脚本中。如果它不起作用,您可能设置了错误的设置。
在 http://gdavidcarter.blogspot.com/2016/04/installing-perl-on-windows-2012r2-iis-85.html 查看 Jannes Botis 已经写过的内容。
我没有 IIS,我无法检查,但从版本 8 开始,我可能不需要 C:\Perl\bin\perl.exe %s %s 中的引号(与需要的以前版本相比)
我最终根据来自此处对 OP 的回答和评论的有用且有价值的信息,以及此 link 中的一些信息,在 @SlawomirDziuba 中指出,使新网站正常运行回答。
我最大的问题是选择正确的处理程序,而且,为了在 IIS8 上获得这个 运行,我需要一个脚本映射,而不是 CGI 模块。我还将 Strawberry Perl 安装到 C:\Perl,因为系统上没有其他 Perl。
我已经看了一些关于这个主题的 post,但我仍然感到困惑。 Strawberry Perl 和 IIS 8 安装在我们的 Windows 2012 R2 服务器上。我知道在 ISAPI 和 CGI 限制 下添加 Strawberry Perl.exe,并最终纠正了我列出 DL 的错误(此 post 的早期编辑)。您可以使用 .exe,而不仅仅是 DLL,因此我提供了 Strawberry Perl 的路径 perl.exe。
编辑 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' => ''
有permits pool,以Administrator登录,permits申请使用permits pool。
我已将 Select.pl 列为默认文档,并且加载了 cgi 处理程序。
当我尝试访问 http://locahost/permits or http://locahost/permits/Select.pl 时,我得到了 404,但在日志、事件或 IIS 中找不到任何可以给我线索的错误信息。任何指针将不胜感激。
你能运行任何html文件吗?如果是这样,请在它旁边放置一个简单的 perl 脚本并调用它。 打印"Content-type: text/html \n\n"; 打印 "OK";
如果可行,则问题出在您的脚本中。如果它不起作用,您可能设置了错误的设置。
在 http://gdavidcarter.blogspot.com/2016/04/installing-perl-on-windows-2012r2-iis-85.html 查看 Jannes Botis 已经写过的内容。
我没有 IIS,我无法检查,但从版本 8 开始,我可能不需要 C:\Perl\bin\perl.exe %s %s 中的引号(与需要的以前版本相比)
我最终根据来自此处对 OP 的回答和评论的有用且有价值的信息,以及此 link 中的一些信息,在 @SlawomirDziuba 中指出,使新网站正常运行回答。
我最大的问题是选择正确的处理程序,而且,为了在 IIS8 上获得这个 运行,我需要一个脚本映射,而不是 CGI 模块。我还将 Strawberry Perl 安装到 C:\Perl,因为系统上没有其他 Perl。