はじめに
最近以下の様なReactとかいろんな記事が出ていて試そうと思うけど、
生のReactを知ろう – JSX、Flux、ES6、Webpackを使わず… | プログラミング | POSTD
Webサーバどう立てようのようなことがちょくちょくあり、普通にApacheとかnginxを立ててやってもいいんですが、少しだけ写経したいとかの時にわざわざ設定するのも面倒だなという方向けの記事です。
簡易Webサーバをコマンド化
前提条件
PHP5.3以上で使えるビルトインサーバを使う想定です。
RubyやPythonなどでもコマンドから起動することは出来ますが、たまにPHPも一緒に動かしたい時があったりするので、 PHP5.3以上 が入っていることを前提とします。
スクリプトについて
以下のシェルスクリプトを serve
という名前で PATH の通っているところへ配置したとします。
実行方法
カレントディレクトリをドキュメントルートとして8080ポートで起動
$ serve
オプション
-t path/to/public : /path/to/public をドキュメントルートとして起動
-p 4000 : ポートを4000として起動
オプションを何も指定しなければ、 http://localhost:8080
でアクセスできます。
スクリプト本体
#!/bin/sh
usage_exit() {
echo "Usage $0 [-h] [-t target-dir=.] [-p port=8080]"
exit 1
}
# デフォルト値
target="."
port=8080
while getopts ht:p: option; do
case $option in
h) usage_exit
;;
t) target=$OPTARG
;;
p) port=$OPTARG
;;
\?) usage_exit
;;
esac
done
shift $((OPTIND - 1))
### exec
## php5.3+
php -S localhost:$port -t $target
## rubyのwebrickを使う方法
# ruby -run -e httpd $target -p $port
注意事項
条件付きGET や 部分GET など特殊なリクエストヘッダの機能を利用したアプリケーションの場合は、素直に nginx や Apache を立ててやった方がいいかもしれません。
部分GET を試した時は 206 のステータスにならず、若干ハマりました。。。