SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】ビルトインウェブサーバーの動作

問題

php5.4から入っているビルトインウェブサーバーって、本番環境で使うとよくないの?

php

答え

開発などで一人で使っている分には問題ないことが多いけど、複数のリクエストがやってきたときに直列に順番待ちになるのが現状のようです。

php.net のビルトインウェブサーバー についての以下の記述はそういうことですね。

リクエストがブロックされると、PHP アプリケーションはストールします。

確認手順

1、ビルトインウェブサーバーを起動

php.exe -S 0.0.0.0:8000 -t /var/www

2、10秒スリープするスクリプトを用意

<?php sleep(10);

3、ブラウザで複数のリクエストを送信する

http://127.0.0.1/sleep.php

以下のような動きをする。

例1)

  1. 00:00:00 ブラウザAがリクエスト送信
  2. 00:00:05 ブラウザBがリクエスト送信
  3. 00:00:10 ブラウザAにレスポンスが返ってくる(1番乗りしたAは10秒待ち)
  4. (コマンドラインの出力を見ていると、2つ目のリクエストの処理はここで開始している)
  5. 00:00:20 ブラウザBにレスポンスが返ってくる(2番目のBは15秒待ち)

例2)

  1. 00:00:00 リクエスト送信
  2. 00:00:05 再読み込み
  3. 00:00:10 再読み込み
  4. (コマンドラインの出力を見ていると、10秒待って2回目、さらに10秒待って3回目という風に処理されている)
  5. 00:00:30 レスポンスが返ってくる(最初のリクエストから3回分の30秒待ち)

関連するメモ

コメント