gpt4 book ai didi

Perl Apache : Perl script displayed as plain text

转载 作者:行者123 更新时间:2023-12-03 14:36:20 27 4
gpt4 key购买 nike

使用 apache 进行配置时和 perl cgi scripts ,不知道为什么index.cgi/index.pl显示为纯文本而不是执行它们。
当我把 http://localhost在浏览器中它显示下面的代码,而不是执行它。

List item
#!C:/Dwimperl/perl/bin/perl.exe -w

print "Content-type: text/html\n\n";
print <<HTML;
<html>
<head>
<title>A perl web page</title>
</head>
<body>
<h3>A hello world form perl</h3>
</body>

HTML
exit;

这是 httpd.conf 的一部分我大部分时间都编辑过的文件(在阅读了各种在线引用资料、教程后)

# This should be changed to whatever you set DocumentRoot to.
<Directory "D:\webserver">

Listen 80
ServerName localhost:80
LoadModule cgi_module modules/mod_cgi.so

# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
Options FollowSymLinks +ExecCGI
AllowOverride None
</Directory>

DirectoryIndex index.html index.html.var index.cgi index.pl

AccessFileName .htaccess

# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi .pl

ScriptAlias /cgi-bin/ "C:/Apache/Apache2/cgi-bin/"

最佳答案

当浏览器正在打印脚本代码时,这意味着它无法找到运行脚本的应用程序。下面两行应该是您解决此问题的第一步。 AddHandler 将确保文件以 .cgi 结尾和 .pl被视为 cgi 脚本。和+ExecCGI选项将允许执行脚本。还要确保您的脚本指向正确的 perl 二进制位置。

    AddHandler cgi-script .cgi .pl
Options FollowSymLinks +ExecCGI


您的 httpd.conf 中还有一些错误/错误配置点
  • 别名行应指向 cgi-bin 您的 cgi 脚本所在的目录。

  • ScriptAlias /cgi-bin/ "D:\webserver\cgi-bin"


  • 对于相同的 cgi-bin 目录,下面的配置应该在 httpd.conf .您应该更换您的 <Directory "D:\webserver">与下面的部分。

  • <Directory "D:\webserver\cgi-bin" />
    AddHandler cgi-script .cgi .pl
    Options FollowSymLinks +ExecCGI
    AllowOverride None
    </Directory>

  • 尝试从命令行运行您的 cgi 脚本,如下所示。它应该首先从命令行打印或运行。

  • perl test.cgi


  • 确保您对 cgi-bin 具有读写递归权限目录和你的 cgi 脚本。您还可以创建具有写入权限的目录或文件。如果不创建 cgi-bin目录位于您可以拥有写入权限的其他位置,并在 alias 中提供其路径和 directory httpd.conf 中的属性反而。
  • 每次遇到 apache conf 问题时,请检查 apache 错误日志以获取确切的错误消息。它将使您对问题有很好的了解。

  • 还有 this link应该可以帮助你。

    (额外评论,不是来自原始回答者:您可能还需要启用 cgi 模块。对我来说,让 cgi 在全新安装的 Apache 2 上工作的最后一步是 sudo a2enmod cgi。在我这样做之前,该网站只是向我展示了脚本的内容。)

    sudo a2enmod cgi

    关于Perl Apache : Perl script displayed as plain text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792978/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com