为什么我的Perl CGI脚本在浏览器中显示为纯文本?

时间:2009-10-18 02:00:38

标签: macos cgi

我一直在玩我的mac是一个网络服务器,现在我正在尝试制作一个简单的html表单,以及一个打印出输入的perl脚本。我有/ Library / WebServer / Documents符号链接到〜/ Sites /,所以我有我的index.html和display.cgi。但是当我按下提交时,perl文件只显示为文本。我有的任何cgi文件都没有执行,只是显示为文本。我究竟做错了什么?感谢。

3 个答案:

答案 0 :(得分:3)

除非您的服务器专门设置为在/Library/WebServer/Documents文件夹中运行perl脚本,否则您必须将它们放在/Library/WebServer/CGI-Executables中。 (然后从网址中的/cgi-bin/路径访问它们,例如http://localhost/cgi-bin/display.cgi。)

完成后,请确保您已在Perl脚本上设置权限,以便它可执行。为此,请转到终端中的包含目录,然后键入chmod a+x display.cgi

另外,检查脚本的第一行( shebang行)是否具有正确的perl路径。在我的Mac上,Perl位于/usr/bin/perl,但如果您想自行检查,请运行命令which perl

答案 1 :(得分:0)

不要忘记在“shebang line”前添加#符号,如下例:

#!d:/perl/bin/perl

#!/usr/local/bin/perl -w

注意:-w将显示警告。

答案 2 :(得分:0)

回答你的另一个问题:

要使用cgi-bin目录之外的CGI脚本,您可能需要深入了解配置文件。主要的是/private/etc/httpd/httpd.conf,您必须使用终端才能到达,因为/private/目录默认是隐藏的。

或者,您可以在要放置脚本的目录中创建.htaccess文件。 This manual page应该可以帮助您确定要放在那里的内容。请注意,Apache手册中不包含任何特定于Mac的信息,因为它也用于其他操作系统。