01 April 2005
This post may be outdated due to it was written on 2005. The links may be broken. The code may be not working anymore. Leave comments if needed.
我一向喜欢写
#!/usr/bin/perl
这么写的很大部分原因是为了兼容 Linux(Unix).

但是假设你的 Perl 目录为 C:\usr\bin, 而 Apache 目录为 D:\Apache2. 那你所有的程序头一行必须是

  1. #!C:/usr/bin/perl.exe
  2. #!usr/bin/perl
  3. #!perl
这三种中的一种。其中第 3 种还必须得把 C:\usr\bin 加个 Path 中。
如果你不这么做,当你访问类如 http://localhost/cgi-bin/printenv.pl(此程序以#!/usr/bin/perl开头时) 时就会报错:
No such file or directory: couldn't spawn child process: D:/Apache2/cgi-bin/printenv.pl

解决这个问题的方法不是修改 httpd.conf 或者注册表什么的。你要么都用 #!C:/usr/bin/perl.exe 开头,要么将 Apache 和 Perl 安装到一个目录中(都在 C: 或者都在 D:)

今天重装 Apache 时发现此问题。按照搜索来的修改 httpd.conf 和注册表或文件对应都没用,后来火大再重装回 C:\Apache2 时无意中解决。希望能有所帮助。我的配置为:

Perl 5.8.6 and Apache 2.0.52, together with mod_perl-1.99_20, mod_ssl / OpenSSL (0.9.7e), and php-4.3.10


blog comments powered by Disqus