我一直在玩我的Mac一个网络服务器,现在我试图做一个简单的HTML表单,并打印出输入的Perl脚本。我将/ Library/WebServer/Documents链接到〜/ Sites /,所以我的index.html和display.cgi都在那里。但是当我按下提交时,perl文件只显示为文本。我拥有的任何cgi文件都没有执行,它只是显示为文本。我究竟做错了什么?谢谢。为什么我的Perl CGI脚本在浏览器中显示为纯文本?
1
A
回答
3
除非您的服务器专门设置为运行/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
。
0
不要忘了加#号的“认领线”的前面,如下面的例子:
#!d:/perl/bin/perl
#!/usr/local/bin/perl -w
注:-w会显示警告。
0
为了回答您的其他问题:
要从cgi-bin
目录以外使用CGI脚本,你可能不得不潜入配置文件。主要的是/private/etc/httpd/httpd.conf
,您必须使用终端才能到达,因为/private/
目录默认为隐藏。
或者,您可以在要放置脚本的目录中创建一个.htaccess
文件。 This manual page应该可以帮助你计算出放在那里的东西。请注意,Apache手册中不包含任何Mac特定的信息,因为它也用于其他操作系统。
相关问题
- 1. 在浏览器中显示为文本的Perl CGI
- 2. 在浏览器中显示为纯文本的html代码
- 3. 为什么我的Perl CGI脚本抱怨“Can not locate CGI/Simple.pm”?
- 4. 为Perl CGI脚本
- 5. 在浏览器中不显示结果的CGI脚本
- 6. 将PHP脚本作为浏览器中的文本显示
- 7. 为什么浏览器不显示脚本发回的图像?
- 8. 为什么从我的Perl CGI脚本中调用mutt失败?
- 9. 为什么我的WebView在纯文本HTML中显示RSS?
- 10. 浏览器为XML/XSLT显示纯文本而非HTML
- 11. 为什么浏览器不能显示本地的ASP.NET文件?
- 12. 为什么我的超链接标签在浏览器上显示为纯文本?
- 13. 为什么python CGI脚本会在附加变量之后显示一个网页作为纯文本?
- 14. 为什么我的Perl CGI脚本不工作?
- 15. 为什么cgi脚本必须留在cgi-bin文件夹中?
- 16. 在我的浏览器中运行一个CGI脚本WAMP
- 17. 的Perl CGI脚本运行的纯文本
- 18. 为什么我无法在我的CGI脚本中获取cookie?
- 19. 浏览器显示的纯文本而不是HTML在Mac
- 20. 为什么脚本下载防止并行在浏览器中
- 21. 为什么我从我的Perl CGI脚本中得到一个空白页面?
- 22. 为什么我的Perl CGI脚本出现500内部服务器错误?
- 23. 为什么我的Perl CGI脚本会导致500内部服务器错误?
- 24. 为什么我的浏览器不能识别html文件中的php脚本?
- 25. 了解XML/RSS ...为什么RSS浏览器的本地副本不会显示在浏览器中?
- 26. 从Perl CGI脚本输出XML到浏览器?
- 27. AngularJS显示为纯文本
- 28. 为什么我的Perl CGI抱怨“脚本头文件过早结束”?
- 29. Perl CGI将图像显示到浏览器的文件
- 30. Python cgi脚本仅在完成后才在浏览器中显示输出
+1,这是100%的web服务器配置和0%perl。 – hobbs 2009-10-18 02:09:04
+ 1,击败我的三件事情来检查你的cgi脚本被提供静态:目录的ExecCGI选项,cgi和shebang行的+ x权限是有效的。 – Mark 2009-10-18 02:11:37
我的shebang已经是/ usr/bin/perl。谢谢,这工作,但你也可以回答我的问题关于名称/ ID? – mk12 2009-10-18 02:18:49