指定されたパスが見つかりません couldn't create child process とは
CGIファイルをWindowsのApacheなどで実行しようとすると、次のような500エラーが出ることがあります。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
最後の1文で「ログファイルに詳細が書かれている」ということなのでログファイルを見ると次のように出ています。
(OS 3)指定されたパスが見つかりません。 : couldn't create child process: 720003: test.cgi (OS 3)指定されたパスが見つかりません。 : couldn't spawn child process: C:/www/test.cgi
この場合、CGIファイルがスクリプトとして認識はされているため、Apacheの設定が間違っているというケースは少ないです。
つまりCGIファイルの記述が間違っているということになります。
couldn't create child process と couldn't spawn child process のエラーは、
ほとんどのケースでCGI(Perl)の実行パスが間違っています。
CGIファイルの1行目にPerlの実行パスが書かれていると思いますが、
(最初に読み込むCGIファイルに書かれていなければ書いてください。)
#!/usr/local/bin/perl とか #!/usr/bin/perl
と書かれていた場合、そこにPerlの実行ファイルがあるか確認しましょう。
Windowsの場合、perl.exeというファイルを検索するとどこに実行ファイルがあるか探すことができます。
もし検索しても見つからなかった場合にはPerlをインストールしましょう。
[参考記事]WindowsでCGIを使用する方法
ActivePerlなら『 C:\Perl\bin 』、XAMPPなら『 C:\xampp\perl\bin 』以下にあるはずなので、
#!C:\Perl\bin\perl.exe または #!C:\xampp\perl\bin\perl.exe
とすると動くと思います。
Linuxと同じ記述( #!/usr/local/bin/perl とか #!/usr/bin/perl )に合わせる方法
#!/usr/local/bin/perl でも #!/usr/bin/perl でも、どちらでも実行させる方法
スポンサーリンク
関連記事
- SELECTタグで色を選択する場合のサンプル
- 暗号化・複合化を行う ブロック暗号
- [暗号化]ブロック暗号とは(AES/DES/Blowfish PKCS5Padding ECB/CBC IV)
- switch文とif文の違い
- memcachedを使用する(Cache::Memcachedモジュール)
- Premature end of script headers とは
- EclipseでCGI(Perl)の開発環境を作る EPICプラグイン
- Bugzilla [Mozillaのバグ追跡システム]
- YukiWiki (結城ウィキ)
スポンサーリンク






