Macos 为什么我的Perl CGI脚本在浏览器中显示为纯文本?
我一直在尝试让mac成为Web服务器,现在我正在尝试制作一个简单的html表单和一个输出输入的perl脚本。我将/Library/WebServer/Documents符号链接到~/Sites/,因此我的index.html和display.cgi都在那里。但当我按下submit时,perl文件只显示为文本。我拥有的任何cgi文件都不会执行,它只是显示为文本。我做错了什么?谢谢。除非您的服务器专门设置为在Macos 为什么我的Perl CGI脚本在浏览器中显示为纯文本?,macos,cgi,Macos,Cgi,我一直在尝试让mac成为Web服务器,现在我正在尝试制作一个简单的html表单和一个输出输入的perl脚本。我将/Library/WebServer/Documents符号链接到~/Sites/,因此我的index.html和display.cgi都在那里。但当我按下submit时,perl文件只显示为文本。我拥有的任何cgi文件都不会执行,它只是显示为文本。我做错了什么?谢谢。除非您的服务器专门设置为在/Library/WebServer/Documents文件夹中运行perl脚本,否则您必须
/Library/WebServer/Documents
文件夹中运行perl脚本,否则您必须将它们放在/Library/WebServer/CGI可执行文件中。(然后从URL中的/cgi-bin/
路径访问它们,例如http://localhost/cgi-bin/display.cgi
)
完成此操作后,请确保已设置Perl脚本的权限,使其可执行。要执行此操作,请转到终端中的包含目录,然后键入chmod a+x display.cgi
另外,检查脚本的第一行(shebang行)是否具有正确的perl路径。在我的Mac电脑上,Perl位于/usr/bin/Perl
,但如果您想自己检查,请运行命令,Perl
不要忘记在“shebang行”前面添加#符号,如以下示例:
#!d:/perl/bin/perl
#!/usr/local/bin/perl -w
注意,-w将显示警告。要回答您的其他问题:
要从CGI-bin
目录之外使用CGI脚本,您可能需要深入查看配置文件。主目录是/private/etc/httpd/httpd.conf
,您必须使用终端才能访问它,因为默认情况下,/private/
目录是隐藏的
或者,您可以在要放置脚本的目录中创建一个.htaccess
文件。应该能帮你弄清楚放什么进去。请注意,Apache手册中不会包含任何特定于Mac的信息,因为它也用于其他操作系统。+1,请先告诉我三件事,以便在提供cgi脚本时检查静态:ExecCGI目录选项,+x对cgi和shebang行的权限是有效的。我的shebang已经是/usr/bin/perl。谢谢,这很有效,但是你能回答我关于name/id的问题吗?我如何防止/cgi-bin/display.cgi出现在地址栏中?关于name/id的问题是什么?我在原来的帖子里看不到。为什么#!d:/perl/bin/perl
与Mac OS X问题有关吗?我的谢邦很好,#/usr/bin/perl-wT
#!d:/perl/bin/perl与Mac OS X问题无关,但它对Windows perl用户非常有用。很抱歉给你带来了困惑。