我在 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>