2006年06月03日
WindowsでPerlが動かない
Windows上で、Perlのプログラムを動かそうとしたら
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
というメッセージが出る場合があります。
同じCGIをLinuxサーバでは全然問題なく動くのに・・・
Windowsの場合、Perlプログラム(CGI)の設置ディレクトリと、実行時のディレクトリが異なる場合があります。
これが原因です。
Perlの場合、ほとんどと言っていいほど、
require './jcode.pl';
を記述します。Linuxの場合は、CGIがあるディレクトリでそのCGIが動くわけで、同じディレクトリに jcode.pl を入れておけばいいのですが、Windowsの場合は、上記の理由により、CGIがどこか別のディレクトリで動く場合があります。とすると、jcode.pl は、その動くディレクトリに入れておかないとダメということになります。
そのディレクトリに入れれば、いいわけなんですが、Perlのプログラムの中で解決するとなると、プログラムの最初に
chdir("Perlのプログラムを設置したディレクトリ");
と書きます。ディレクトリは、例えば、C:/Inetpub/wwwroot/abc のように書きます。
これにより、このプログラムは指定したディレクトリで動き、正常に動作します。
2006年06月03日 04:40 | Webシステム
トラックバック
このエントリーのトラックバックURL:



