【php】ビルトインウェブサーバーの動作
問題
php5.4から入っているビルトインウェブサーバーって、本番環境で使うとよくないの?
答え
開発などで一人で使っている分には問題ないことが多いけど、複数のリクエストがやってきたときに直列に順番待ちになるのが現状のようです。
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)
- 00:00:00 ブラウザAがリクエスト送信
- 00:00:05 ブラウザBがリクエスト送信
- 00:00:10 ブラウザAにレスポンスが返ってくる(1番乗りしたAは10秒待ち)
- (コマンドラインの出力を見ていると、2つ目のリクエストの処理はここで開始している)
- 00:00:20 ブラウザBにレスポンスが返ってくる(2番目のBは15秒待ち)
例2)
- 00:00:00 リクエスト送信
- 00:00:05 再読み込み
- 00:00:10 再読み込み
- (コマンドラインの出力を見ていると、10秒待って2回目、さらに10秒待って3回目という風に処理されている)
- 00:00:30 レスポンスが返ってくる(最初のリクエストから3回分の30秒待ち)
コメント