Apache2 在Apache上执行CGI脚本时出现问题

Apache2 在Apache上执行CGI脚本时出现问题,apache2,Apache2,在这里,我几乎是一个完整的Linux/Apache新手,正在将站点从共享主机移动到Linode VPS。在我开始尝试移动使用一系列CGI脚本运行的可移动类型博客之前,一切都进展顺利。我正在运行Ubuntu 10.04和Apache2。经过几个小时的胡闹,我得到了一个PerlHelloWorld脚本(hello.cgi),可以从根HTML目录中的web浏览器中执行。以下是脚本: #!/usr/bin/perl -w use strict; print "Content-Type: text/htm

在这里,我几乎是一个完整的Linux/Apache新手,正在将站点从共享主机移动到Linode VPS。在我开始尝试移动使用一系列CGI脚本运行的可移动类型博客之前,一切都进展顺利。我正在运行Ubuntu 10.04和Apache2。经过几个小时的胡闹,我得到了一个PerlHelloWorld脚本(hello.cgi),可以从根HTML目录中的web浏览器中执行。以下是脚本:

#!/usr/bin/perl -w
use strict;
print "Content-Type: text/html\n\nHello world!";
我通过在/etc/apache2/sites available/mysitename.com文件中添加以下内容来实现这一点

<Directory /srv/www/mysitename.com/public_html/>
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

选项+执行CGI
AddHandler cgi script.cgi
但是我想在/srv/www/mysitename.com/public_html/mt/目录中执行CGI脚本,因此我将上面条目中的目录更改为该路径,当我通过浏览器查看该文件夹中的hello world脚本时,我看到的是hello.CGI脚本的源代码,而不是输出。显然有些事情不对。我自己已经花了足够多的时间来解决这个问题,现在是寻求帮助的时候了。有人有什么建议吗?请保持答案简单,我真的只是在学习如何应对Linux/Apache2

找到的解决方案:

<VirtualHost *:80>
  ServerName www.sitename.com
  ServerAdmin general@sitename.com
  ServerAlias sitename.com
  DocumentRoot /srv/www/mysitename.com/public_html/
  ErrorLog /srv/www/mysitename.com/logs/error.log
  CustomLog /srv/www/mysitename.com/logs/access.log combined
  AddHandler cgi-script .cgi .pl
</VirtualHost>

<Directory /srv/www/mysitename.com/public_html/>
    AllowOverride All
    Order allow,deny
    Allow from all
    Options All +SymLinksIfOwnerMatch +FollowSymLinks +ExecCGI -Indexes -MultiViews
</Directory>

<Directory /srv/www/mysitename.com/public_html/mt/>
    AllowOverride All
    Order allow,deny
    Allow from all
    Options All +SymLinksIfOwnerMatch +FollowSymLinks +ExecCGI -Indexes -MultiViews
</Directory>

服务器名www.sitename.com
服务器管理员general@sitename.com
ServerAlias sitename.com
DocumentRoot/srv/www/mysitename.com/public\u html/
ErrorLog/srv/www/mysitename.com/logs/error.log
CustomLog/srv/www/mysitename.com/logs/access.log
AddHandler cgi script.cgi.pl
允许超越所有
命令允许,拒绝
通融
选项全部+符号链接所有者匹配+跟随符号链接+执行CGI-索引-多视图
允许超越所有
命令允许,拒绝
通融
选项全部+符号链接所有者匹配+跟随符号链接+执行CGI-索引-多视图

您添加了mod perl吗

添加这些行

AddType perl-script .pl
AddHandler perl-script .htm
指定目录索引

(在目录块之外)


你也在用vhost吗?老实说,我通常不会按照您的方式做事。

是的,添加了mod perl。不确定DirectoryIndex会对我看到的问题产生什么影响。不知道vhosts是什么(告诉你我是新手:)