
Windows2000+Apache2.2+ActivePerlでCGIを作っています。
CGIで時間のかかる処理を行いたいので、以下のような処理を行いました。
print "Content-type: ~
~ブラウザに返す文字列を標準出力へ~
close(STDOUT);
~時間のかかる処理~
ところが、「時間のかかる処理」の部分は実行されず、どうやらSTDOUTをクローズしたことにより、
ApacheによってCGIが終了させられてしまうようです。
ネットなどで見るかぎり、UNIX系のサーバーではよく行われる方法のようなのですが、Windowsでの実装になにか違いがあるのでしょうか?
また、Windowsサーバーでこのようにブラウザに処理を戻しつつ、時間のかかる処理を行いたい場合にはどうすればよいのでしょうか?
No.1ベストアンサー
- 回答日時:
>ネットなどで見るかぎり、UNIX系のサーバーではよく行われる方法のようなのですが、Windowsでの実装になにか違いがあるのでしょうか?
検索したら、こういうことらしいです。ビルド環境の違いのようですね。
CGIの動作について
http://chaichan.web.infoseek.co.jp/qa3000/qa3198 …
suEXEC サポート
http://httpd.apache.org/docs/2.2/ja/suexec.html
>また、Windowsサーバーでこのようにブラウザに処理を戻しつつ、時間のかかる処理を行いたい場合にはどうすればよいのでしょうか?
こちらは、他の方にお願いします。
No.2
- 回答日時:
> ネットなどで見るかぎり、UNIX系のサーバーではよく行われる方法のようなのですが、
> Windowsでの実装になにか違いがあるのでしょうか?
Apacheのソースコードを見てみました。Linuxでは Unix 独自のコード部分でepoll を
使ってディスクリプタの監視をしているようです。ただ、Windows には同じAPI はない
ようで、別の実装がされているように見えました。
少なくとも、mod_cgi.cの中で、Windows 環境ではAPR_FILES_AS_SOCKETSが
定義されないのでこの部分で分岐が行われます。
------
#if APR_FILES_AS_SOCKETS
apr_file_pipe_timeout_set(script_in, 0);
apr_file_pipe_timeout_set(script_err, 0);
b = cgi_bucket_create(r, script_in, script_err, c->bucket_alloc);
#else
b = apr_bucket_pipe_create(script_in, c->bucket_alloc);
#endif
------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
USTREAMのような動画配信システ...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
アプリケーションサーバについ...
-
CGIが実行されずにダウンロード...
-
SSIの『#exec cmd』と『#exe...
-
VBAでサーバーにアクセスするに...
-
特定のCGIだけ、作動するかわり...
-
cgi-binのディレクトリの作成方法
-
FTPにて553エラー
-
自宅サーバーに大容量(1GB...
-
CGIでソースがそのままでてしま...
-
画像アップ時のエラー
-
ASPから既存のexcelブックを開...
-
DiaryCGI nicky! について 新し...
-
htaccessを教えて下さい。
-
httpd の1.42pで表示出来ないCG...
-
アップしたフォルダが消せない
-
一番最後につけるend
-
VBAを使用して、外部サーバのフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP(IIS?)のエラーについて
-
直リンク用バナーの作り方
-
ファイルの破損について
-
cgi アクセス制限 エラー
-
HPを特定の人(IP)にしか見せ...
-
カウンタCGIを別のサーバーにお...
-
サンマイクロシステムズ
-
close(STDOUT)するとCGIが終了...
-
CGI禁止って???
-
Windowsサーバー(IIS)対応のア...
-
USTREAMのような動画配信システ...
-
Win2000
-
サーバー上で動く cgiソフトで...
-
レンタルサーバとDDNSの差
-
ExcelでNTPサーバーから時刻を...
-
$ENV{'HTTP_COOKIE'}について
-
クライアントサイドとサーバー...
-
PHPの変数の上限の数を知りたい
-
CGIの外部呼出しについて
-
AS/400 QUERYの集計結果について
おすすめ情報