PHP Hyper Built-in Server

OVERVIEW

PHPのビルトインサーバを最小限の依存性でマルチプロセス構成・TLS/SSLに対応させるリバースプロキシ

YEAR 2016 - 2018

※ 現在はメンテナンス停滞中

mpyw/php-hyper-builtin-server: Reverse proxy for PHP built-in server which supports multiprocessing and TLS/SSL encryption
https://github.com/mpyw/php-hyper-builtin-server

概要

php -S で起動できるビルトインサーバは,「シングルプロセスでしか動かない」「TLS/SSL非対応」という大きな弱点がある。例えばストリーミング形式でレスポンスを返し続けているときに他の新しいリクエストはブロックされたり,ローカルで Service Worker を試したいのに試せない,などの困難に当たることがある。かといってそのためだけに Apache や Nginx + php-fpm の環境を要求するのも大掛かりすぎるので,最小限の依存性でなんとかしたいと考えた。そのため,php-cli から ReactPHP を使用してリバースプロキシを立て,その裏で php -S を複数プロセス立てるという方式で PHP Hyper Built-in Server を制作した。

機能

mpyw@localhost:~$ hyper-run -h

Usage:
hyper-run <options>

Example:
hyper-run -S localhost:8080 -s localhost:8081

[Required]
-S "<Host>:<Port>" of an HTTP server. Multiple arguments can be accepted.
-s "<Host>:<Port>" of an HTTPS server. Multiple arguments can be accepted.

[Optional]
-n The number of PHP built-in server clusters, from 1 to 20. Default is 10.
-t Path for the document root. Default is the current directory.
-r Path for the router script. Default is empty.
-c Path for the PEM-encoded certificate.
Default is "/Users/mpyw/.composer/vendor/mpyw/php-hyper-builtin-server/certificate.pem".

Restrictions:
- The option -s is only supported on PHP 5.6.0 or later.
- Access logs will not be displayed on Windows.

mpyw@localhost:~$



WEBSITE