gpt4 book ai didi

apache2 - 在 Apache 上执行 CGI 脚本的问题

转载 作者:行者123 更新时间:2023-12-02 07:48:41 34 4
gpt4 key购买 nike

我几乎是一个 Linux/Apache 新手,正在将站点从共享主机迁移到 Linode VPS。一切都很顺利,直到我开始尝试移动我的使用一系列 CGI 脚本运行的 Moveable Type 博客。我正在运行 Ubuntu 10.04 和 Apache2。经过几个小时的折腾,我得到了一个 PERL hello world 脚本 (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>

但是我想在/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>

最佳答案

你添加了 mod-perl 了吗?

添加这些行

AddType perl-script .pl
AddHandler perl-script .htm

指定目录索引

(目录 block 之外)

您也使用虚拟主机吗?老实说,我通常不会按照你的方式做事。

关于apache2 - 在 Apache 上执行 CGI 脚本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522906/

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