[注意]CGI编程的几个常见问题

[注意]CGI编程的几个常见问题

1. 关于 #!/usr/bin/perl
  在 Perl 程序中,第一行必须是服务器上 Perl 解释器的路径,一般是 #!/usr/bin/perl 或 #!/usr/sbin/perl,如果你不清楚,可以联系你的主页空间提供商。在 WIN95/98/NT 的机上装了 Perl 解释器后(假设路径是 c:\perl),如果你用的是 Apache WEB 服务器,则第一行必须填写 #!/perl/bin/perl ,如果你用的是 omniHTTPd 或 IIS 的话,只需保留 #!/usr/bin/perl 即可。

2. CGI-BIN 目录是什么?
  CGI-BIN 是 Perl 程序的默认存放目录(实际上此目录名字完全是由 webmaster 定义的),系统默认这个目录中的所有文件都是 CGI 程序或是 CGI 程序用来调用的数据。对于 Apache 或 IIS WEB 服务器,该目录下不能存放图像、声音和 HTML 页面(这些文件必须放在你主页上的普通目录中),但如果你用的是 omniHTTPd WEB 服务器的话,就没有这个限制。

3. Perl 程序中能用 \ 来隔开子目录吗?
  和 HTML 编程一样,Perl 对子目录分隔用的是 / ,而不是 \ 。

4. Perl 程序的上传方式
  在 FTP 中,一个文件的上传方式有两种,一种是 ASCII,一种是 Binnary,上传 Perl 程序必须用 ASCII 方式上传,否则就会出现 500 Internal Server Error 的出错信息。
  在早期的 CuteFTP 中,用默认的 AUTO 上传 Perl 程序实际是用 Binnary 方式传的,所以使用时一定要吧 AUTO 改为 ASCII,而最新的版本中,CuteFTP 的 AUTO 上传 Perl 文件是采用了 ASCII 方式,所以无需修改。

5. Unix 下和 WIN 下,用 Apache 和 IIS 对程序运行效果有什么影响?
  在 WIN 环境下,是不支持 Unix 下的一些特殊函数的,比如 flock() 函数等,因此如果你的程序在 WIN 下运行不正确(一般是出现白页),可以尝试删除 flock() 等函数。在 WIN 下,无需设置 Perl 程序的属性,而在 Unix 下,必须设置好正确属性后才能运行(具体请见"erl 程序的属性及其设置祥解"一文)。
  在 WIN 环境下,有两种主流 WEB 服务器,一种是 Apache,一种是 IIS。主要的区别是 Apche 在表示绝对路径时可用绝对路径的相对形式来表示,但 IIS 必须用完整的硬盘路径表示。
hao