Journal(2005) | Blog(2006) | RandomLink | WhoAmI | LiveBookmark | HomePage

<<Previous: Class::DBI 改 Primary 项  >>Next: 如何用 minicpan 映像自己的 CPAN

Win32 下 Apache 和 #!/usr/bin/perl

Category: Basic   Keywords: #!/usr/bin/perl

我一向喜欢写
#!/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

<<Previous: Class::DBI 改 Primary 项  >>Next: 如何用 minicpan 映像自己的 CPAN

Options: +Del.icio.us

Related items Created on 2005-04-01 10:10:59
Copyright 2004-2005 All Rights Reserved. Powered by Eplanet && Catalyst 5.62.