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ランキング
-
直リンク用バナーの作り方
-
cgi アクセス制限 エラー
-
SSIまで編集時にイメージどおり...
-
アプリソースの場所はどこですか?
-
Androidアプリ開発でユーザデー...
-
EXCELファイルに誰がアクセスし...
-
URLに~/cgi-bin/~を隠す方法
-
CGIの設置が分かりません・・・
-
midi・・・要はhpでbgm鳴...
-
ASPから既存のexcelブックを開...
-
ローカルマシンでCGIソースが出...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
メールフォームのCGIでデータが...
-
通貨表示で3桁毎にカンマ(?)を...
-
リダイレクト機能
-
perlからJavascriptを起動
-
掲示板のスレッドが消えた!?
-
CGIでコードがむきだしの状態で...
-
1日の売上表を作りたいのですけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP(IIS?)のエラーについて
-
クライアントサイドとサーバー...
-
Ajax React Jqueryの位置づけと...
-
AS/400 QUERYの集計結果について
-
PC シャットダウン
-
直リンク用バナーの作り方
-
CGIを使わずにアクセス解析は可...
-
SSIまで編集時にイメージどおり...
-
cgi アクセス制限 エラー
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
VBAでサーバーにアクセスするに...
-
URLに~/cgi-bin/~を隠す方法
-
ラジオボタンのグループ化
-
ASPから既存のexcelブックを開...
-
CGIでソースがそのままでてしま...
-
ApacheでのCGIについての質問
-
perl 矢印演算子 -> の使い方
-
ユーザの所属するグループを取...
おすすめ情報