私は検索して、私のものと非常によく似た質問をいくつか見つけましたが、それらの回答にはまだ何もうまくいきませんでした。
ファイルのアップロードを受け入れる perl CGI スクリプトがあります。ファイルを見て、その処理方法を決定し、2 つ目の非 CGI スクリプトを呼び出して実際の処理を行います。少なくとも、それが機能する方法です。
これは、Apache 2.0.59 および ActiveState Perl 5.8.8 を使用する Windows で実行されています。upload.cgi
ファイルのアップロード部分は正常に動作しますが、実際の処理を行う 2 番目のスクリプトを実行するスクリプトを取得できないようです。2 番目のスクリプトは、ファイルを送信したユーザーと通信しません (完了時にメールを送信する以外は)。CGI スクリプトで 2 番目のスクリプトを (別のプロセスで) 実行してから、「立ち去る」ようにします。
exec
これまでのところ、システム (最初のパラメーターとして 1 を渡す)、システム (最初のパラメーターとして 1 を使用せずに ' start
' を呼び出す)、および Win32::Processを試しました。最初のパラメーターとして 1 を指定して system を使用すると、Apache ログにエラーが記録されました。
'1' は内部コマンドまたは外部コマンドとして認識されません。\r、リファラー: http://my.server.com/cgi-bin/upload.cgi
他にエラーが発生したことはありませんが、機能していないようです。2 番目のスクリプトは、最初に行うことの 1 つとして、メッセージを Windows イベント ログに記録します。ログエントリは作成されていません。
Omni Web サーバーの下のローカル マシンでは正常に動作しますが、Apache を実行している実際のサーバー マシンでは動作しません。これに影響を与える可能性のあるApache構成はありますか? upload.cgi
スクリプトはd:\wwwroot\test\cgi-bin
dir にありますが、他のスクリプトは同じマシン ( )の別の場所にありd:\wwwroot\scripts
ます。