![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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で質問しましょう!
似たような質問が見つかりました
- フリーソフト タスクソフト? 1 2023/01/14 07:52
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Perl perlのrequireの動き方についての質問 2 2022/10/30 17:27
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- 法人税 浄水器レンタル 経理処理 1 2023/06/29 17:16
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Win2000
-
ASP(IIS?)のエラーについて
-
close(STDOUT)するとCGIが終了...
-
Internal Server Errorになる原...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
文法はあってるのにサーバーエ...
-
ダヴィンチカート2のアップロ...
-
「EJBとServletの違い」「J2SE...
-
PerlでWEBサイトを作るために必...
-
ライブラリと処理速度について
-
FTPサーバー上のデータにADO接...
-
LAN上の他サーバにあるDBを参...
-
コード表記
-
ユーザの所属するグループを取...
-
インテル製インタフェース82...
-
Apacheをlocalhostで動かしてい...
-
ssiのinclude fileについて
-
cgiが動作しない 実行すると 構...
-
URLに~/cgi-bin/~を隠す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP(IIS?)のエラーについて
-
mac エクリプス javaについて
-
HPを特定の人(IP)にしか見せ...
-
AS/400 QUERYの集計結果について
-
ログの消失対策に効果的なサーバ
-
USTREAMのような動画配信システ...
-
サーバーとルーターでどこまで...
-
cgi アクセス制限 エラー
-
ファイルの破損について
-
Internal Server Errorになる原...
-
SSIまで編集時にイメージどおり...
-
CGI アクセス禁止
-
レンタルサーバとDDNSの差
-
xdomainのperlとsendmailがわか...
-
PCと携帯で閲覧可能なHP作成に...
-
ブラウザの表示URLを変える方法...
-
Backbone.jsでは、jQuery使えな...
-
オープンソースのMQサーバー
-
直リンク!?
-
アプリソースの場所はどこですか?
おすすめ情報