为什么 Perl CGI 脚本无法运行

为什么 Perl CGI 脚本无法运行

我在 CentOS 上使用 Apache,并尝试运行 Perl CGI 脚本作为目录索引,以便它将作为子域自动运行。我添加DirectoryIndex script.cgi并添加了一个节,记录了使脚本能够运行的 Directory路径。/var/www/folder

脚本运行的唯一方法是,如果我还在File *.cgi目录节中(甚至在其外部)添加一个节,并将相关部分移至其中:

    Options +ExecCGI and SetHandler perl-script

我仍在学习 Apache,并想知道为什么仅引用文件夹还不够。为什么我还必须添加 File 节和引用*.cgi? CGI 脚本将是该文件夹中的唯一文件。

答案1

由于您想要执行 cgi 脚本,apache2 不需要了解 perl。所以我会删除该SetHandler指令。

要调试它,请查看您的/var/log/apache2/error.log或类似的。您的目录必须可由 apache 访问。您想要执行的脚本需要设置执行标志。

配置示例:

    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    <Directory "/var/www/cgi-bin/">
            AllowOverride None
            Options +ExecCGI -MultiViews
            Order allow,deny
            Allow from all
    </Directory>

相关内容