ApacheでActivePerlを使う
Internal Server Errorが表示される
現象
ApacheとActivePerlをインストールして設定しても「Internal Server Error」が表示され上手いこと行かなかった。
Apacheのログには「No such file or directory: couldn't spawn child process: ~~~~/test.cgi」と表示されていた。
原因
ActivePerlのPathが正しくない。CGIの先頭行に「#!/usr/local/bin/perl」や「#!/usr/bin/perl」と書かれているため動かなかった。
対応方法1
CGIの先頭行のPathをActivePerlのインストール先「#!c:/program files/perl/perl」に合わせる。
評価:★☆☆☆☆
現実的ではない。サーバで動作させるには、Pathを戻さなくてはいけないため。
対応方法2
ActivePerlをインストールし直す。Apacheをインストールしたドライブの「@:\usr\local\」か「@:\usr\」にインストールする。
評価:★★★☆☆
現実的である。サーバに合わせてインストール先を検討する必要がある。
対応方法3
ActivePerlインストール先の「bin/perl.exe」を「@:\usr\local\」か「@:\usr\」にコピーする。
評価:★★★★★
非常に現実的である。コピーするだけで動くので、ActivePerlを別の場所にインストールしていても大丈夫。私みたいにhttpdから容易に乗換が可能。
Posted By PONTA : 2005/12/31-13:43