[PHP-users 21949]Re: WEBサーバーがシングルで動いている現象について

Koichi KUBOYA k-kuboya @ syd.odn.ne.jp
2004年 6月 3日 (木) 00:55:24 JST


初めて投稿いたします。久保谷と申します。

Webサーバーがシングルでというのはちょっと意味がわかりかねますが、
PHPでソケットの通信を受けて結果を表示する。
その待ち時間の間、画面が表示されない問題ということでよろしいでしょうか?

PHPにポーリング処理などの時間のかかる仕事をさせるのは向いていないかと思われ
ますので、
1.サーバー側でポーリング処理を行うプロセスを常駐させる。
2.その結果をファイルに保存する。
3.PHPでファイルを読み込み、結果を画面に表示する。

PHPでファイルを読み込むタイミングに工夫が必要ですが、
PHP自体の実行時間を短くすることはできると思います。

私事になりますが、PHPのお仕事をいただいてから、ようやく一月経ちました。
まだ全くの初心者の意見ですので、もっと的確なソリューションが存在すると思いま
す。
少しでもお役に立てれば幸いです。

久保谷

-----Original Message-----
From: php-users-bounces @ php.gr.jp [mailto:php-users-bounces @ php.gr.jp]On
Behalf Of aiko
Sent: Wednesday, June 02, 2004 5:09 PM
To: php-users @ php.gr.jp
Subject: [PHP-users 21944]WEBサーバーがシングルで動いている現象について


お世話になっております。
岸川です。

a.phpで下記の様なループ処理をさせます。
その間、他のブラウザからの要求を受け付けなくなってしまいます。
a.phpが終了すると、画面が表示されます。

Webサーバー(thttpdを使用)がシングルで動いている感じです。
この様な現象の回避方法として、Apacheの様なマルチで動くものに
Webサーバーを変えるしか方法はないのでしょうか。

※ a.phpのループはあくまで例ですが、
  他プロセスとソケット通信を行っており、
  結果をポーリングしているため、a.phpの様にファイル終了に時間がかかってしま
うことがあります。


どなたか何でも良いのでアドバイス頂けないでしょうか。


'./configure'
 '--with-thttpd=../thttpd-2.21b'
 '--enable-mbstring' '--enable-mbstr-enc-trans'
 '--enable-mbregex' '--enable-track-vars' '--enable-trans-sid'
 '--enable-sockets' '--enable-sigchild'
 '--with-config-file-path=/usr/local/lib/php.ini'
 '--enable-libgcc' '--enable-php-streams'
 '--enable-exif' '--with-hyperwave' '--with-ncures'
 '--with-tsrm-pthreads' '--with-zlib' '--enable-shmop'
 '--enable-sysvsem' '--enable-sysvshm' '--enable-shared'
 '--enable-static' '--enable-fast-install' '--without-gd' '--without-mysql'


PHP Version 4.3.4

//////以下ソース//////
//
// a.phpを表示し、
// 続いてb.php、c.phpを表示すると、a.phpの終了後に2画面が表示される。
//
<a.php>
====================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テストループ</title>
</head>
<body>
<?php
    $nStartTime = time() ;

    do {
        $nNowTime = time() ;
        if ( $nNowTime - $nStartTime > 60 ) {
            break ;
        }
        sleep( 10 ) ;

    } while ( TRUE ) ;

?>
</body>
</html>
====================

<b.php>
====================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テスト表示</title>
</head>
<body>
<?php
print "<font color='blue'><b>テストです</b></font>";
?>
</body>
</html>
====================


<c.html>
====================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テスト表示</title>
</head>
<body>
<font color='blue'><b>テストです</b></font>
</body>
</html>
====================

_________________________________________________________________
メッセンジャーで総額1億円プレゼント! http://im.msn.co.jp/home.htm

_______________________________________________
PHP-users mailing list  PHP-users @ php.gr.jp
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3



PHP-users メーリングリストの案内