【发布时间】:2009-11-03 03:40:27
【问题描述】:
我一直在尝试使我的 mac 成为网络服务器,现在我正在尝试制作一个简单的 html 表单和一个打印输入的 perl 脚本。我有 /Library/WebServer/Documents 符号链接到 ~/Sites/,所以我的 index.html 和 display.cgi 都在那里。但是当我按下提交时,perl 文件只是显示为文本。我没有执行的任何 cgi 文件,它只是显示为文本。我究竟做错了什么?谢谢。
【问题讨论】:
我一直在尝试使我的 mac 成为网络服务器,现在我正在尝试制作一个简单的 html 表单和一个打印输入的 perl 脚本。我有 /Library/WebServer/Documents 符号链接到 ~/Sites/,所以我的 index.html 和 display.cgi 都在那里。但是当我按下提交时,perl 文件只是显示为文本。我没有执行的任何 cgi 文件,它只是显示为文本。我究竟做错了什么?谢谢。
【问题讨论】:
除非您的服务器专门设置为在 /Library/WebServer/Documents 文件夹中运行 perl 脚本,否则您必须将它们放在 /Library/WebServer/CGI-Executables 中。 (然后从 URL 中的/cgi-bin/ 路径访问它们,例如http://localhost/cgi-bin/display.cgi。)
完成此操作后,请确保您已设置 Perl 脚本的权限,使其可执行。为此,请转到终端中的包含目录,然后输入chmod a+x display.cgi。
另外,检查脚本的第一行(shebang 行)是否有正确的 perl 路径。在我的 Mac 上,Perl 位于 /usr/bin/perl,但如果您想自己检查,请运行命令 which perl。
【讨论】:
不要忘记在“shebang line”前面添加#号,例如以下示例:
#!d:/perl/bin/perl
#!/usr/local/bin/perl -w
注意:-w 将显示警告。
【讨论】:
#!d:/perl/bin/perl 会与 Mac OS X 问题相关?
#!/usr/bin/perl -wT。
回答您的其他问题:
要从cgi-bin 目录之外使用CGI 脚本,您可能必须深入研究配置文件。主要的是/private/etc/httpd/httpd.conf,您必须使用终端才能访问,因为/private/ 目录默认是隐藏的。
或者,您可以在要放置脚本的目录中创建一个.htaccess 文件。 This manual page 应该可以帮助您确定要放入的内容。请注意,Apache 手册中不会包含任何特定于 Mac 的信息,因为它也用于其他操作系统。
【讨论】: