2011年7月30日土曜日

PHP5.4でビルトインウェブサーバーを使って反復実行環境の構築

PHPを勉強してて、コマンドラインで完結するようなphpファイルならあまり問題ないのですが、Webブラウザからアクセスして動作を確認する場合は
Apacheなどのローカルサーバに依存してて、特定のディレクトリに集める必要などがあって面倒だった。

NewImage

PHP5.4でビルトインウェブサーバーが導入されたので、phpからサーバを立ち上げてできるため、VirtualHostディレクティブなどを設定しなくても、
コマンドラインからphpを叩くだけでlocalhostにアクセスする環境が作れる。

PHP5.4はまだ正式版ではないので、自分でソースをダウンロードしてビルドする必要があります。

$ wget http://snaps.php.net/php5.4-latest.tar.gz
$ tar -xzvf php5.4-latest.tar.gz
$ cd php5.4-201107282230/
$ ./configure
$ make

makeまでにして、installはしないようにしています。

./sapi/cli/php -v
PHP 5.4.0alpha3-dev (cli)

CLIのphpが実行できるので、PHP: ビルトインウェブサーバー - Manualを参考にサーバーを立ち上げます。

準備ができたところで、こっから本題です。

自分はPHPStormを使っているので、External Toolからphpのコマンドを叩いて、
指定のファイルがディレクトリをrootにしたサーバーを立ち上げるように設定しています。

NewImage

☑Open consoleにチェックすると、PHPStorm内でコンソールを開いてコマンドを叩きます。この方法で開くとログもPHPStrom内からみられるので便利です。
プロセスの停止もPHPStorm内からプロセスを殺せます
Program: 先ほどコンパイルしたphpバイナリへのパス
Parameters:  -S localhost:8000 -t $FileDir$
これは PHP: ビルトインウェブサーバー - Manualを見るとわかりますが、
ポート番号8000で、ファイルがあるディレクトリをrootにしたサーバが起動するようにした引数です。

あとは、ブラウザで、http://localhost:8000/file.php にアクセスすれば結果が見られて確認などが便利。
同じように External Toolからopenするのもいいかもしれないです。

NewImage

$php -S localhost:8000 -t /path/to/dir/ && open http://localhost:8000/file.php

みたいに、サーバの起動と同時にブラウザも開くようにしたかったけど、やり方がよく分からなかった。

参考