Featured image of post PHPでも簡単にテストサーバが起動できるなんて知らなかった

PHPでも簡単にテストサーバが起動できるなんて知らなかった

これを知った時、PHPってなんでもビルトインにするんだね

@nqounetです。

これを知った時、PHPってなんでもビルトインにするんだね。と思ったけど、とても便利なので良いと思います。 本当ですよ。

オプションをつけるだけでサーバ起動

PHP 5.4.0 から、CLI SAPI にはウェブサーバーの機能が組み込まれるようになりました。

[ PHP: ビルトインウェブサーバー - Manual ]

たったこれだけで、そのディレクトリをルートにしたサーバ( http://localhost:8000/ )が起動するんですよ。

1
php -S localhost:8000

なにこれすごい。 mysqlを設定しておけば、Wordpressもちゃんと動く。 開発環境が断然良くなった。 こんなに便利なんだったら、もっと大々的に謳ってくれればよいのに。

ウェブ開発にテストサーバは憑き物

さて、感動したことは言ったので、あとはグダグダです。 ウェブ開発に際しては、テストサーバを簡単に立てられるかどうかが勝負どころだと思います。 PerlにもMojoliciousやPlackベースのフレームワークにはテストサーバが簡単に起動できる仕組みがあります。 Node.jsも、Gruntなどのツールを使って簡単に開発用のサーバが立てられます。 PHPでガッツリ開発したことはなかったのですが、今回はWordPressのテーマを作成することになったのです。 今までは、既存のテーマ(PHPファイル群)をちょこちょこ修正というのがほとんどで、かつ、本番環境も自分自身で管理できるのが当たり前だったのですが、どちらも逆でした。 テーマをデザイン(HTML+CSS)から作成する、ということと、本番サーバには触れない、という条件でした。 これまで、開発環境を自らの手で選択できるのが当然だったので、あまりの不自由さに悶絶しました。 しかも、製作期間もあまりなく、とりあえず動けば良い、という感じだったので、ローカルマシン上に開発環境を作成する時間はもったいないと判断しました。 なので、以下の様な流れでテーマ作成をしていきました。

  1. 手元でHTMLからPHPファイルを作成
  2. 作成したファイル群をzipで圧縮
  3. WordPressの管理画面からテーマをアップロードして有効化(すでに有効の場合は、一度別のテーマに変更後、テーマを削除してからアップロードして有効化)
  4. 動作確認
  5. 1から4の繰り返し

この内、3が本当に手間で手間でしかたありませんでした。

コレが手間なのでWordPressのテーマ編集から修正して動作確認をしたりするのですが、そうすると、コピペで同期を取る感じになるのです。 こういう部分をコマンド一発で楽してきたツケか?と思うくらいに、単純ですがミスできない作業をひたすら繰り返しました。 もし、テストサーバがこんなに簡単に起動できると知っていれば、さっさと環境構築して、手元で動作確認しながら開発が進められたと思います。 実際には、anyenv→phpenvでのPHPインストールに躓いた(結局phpenvを差し替えた)り、mysqlのdefault_socketがデフォルトの場所にないためにデータベースに接続できないエラーが発生した(socketのパスをphp.iniに書くだけ、ということに気づくまでが大変だった)りしたので、テスト環境を作るのもやはり大変だったのですが。

まあ、でも、苦労はしてみるもんですよ。

これで、直接テーマのディレクトリをgitで管理しながらの開発ができるようになりました。 開発環境の構築は何度もやるものではないのでノウハウがなかなか蓄積できないんですよね。 Perl入学式でも、何度もやっているのに、まだ環境構築でハマってしまうこともあるくらいですから。

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。