CodeIQ MAGAZINECodeIQ MAGAZINE

手軽に開発環境が作れるビルトインサーバーを使ってみよう #PHP

2014.04.16 Category:技術コラム Tag:

  • 13
  • このエントリーをはてなブックマークに追加

PHPは、Apache等のウェブサーバー上で動作します。昔は、PHPの動作確認のためにウェブサーバーを起動することが多かったですが、最近ではVagrantを用いて環境構築するケースも増えています。

今回は、PHP本体の機能にあるビルトインサーバーを紹介します。ビルトインサーバーを使うと、手軽にPHPの動作確認ができます。
by レスキューワーク株式会社 水野史土

PHPの動作環境構築方法

PHPプログラムは、コマンドラインから実行することができます。しかし、たいていの場合は、ブラウザでアクセスし、実行することが多いでしょう。この場合、ウェブサーバーを用意してアクセスします。以下のように、いろいろな方法があります。

  • Apache等のウェブサーバーを起動する
    Unix系OSなら、Apache等のウェブサーバーを起動することで、PHPが実行できます。

  • MAMP, XAMPP等を使う
    MAMP, XAMPPは、ウェブサーバーを手軽に環境を構築できるソフトウェアです。Apacheを設定するよりも楽に環境構築できます。

  • 仮想環境を使う
    Vagrant等を使って、仮想マシンを構築する方法です。様々な環境を作ることができます。最近はこの方法が流行っているようです。

ビルトインサーバー

PHP5.4で、ビルトインサーバー機能が導入されました。
コマンドラインから簡易ウェブサーバーを起動することができます。
あくまで開発補助用ですので、ビルトインサーバーで本番運用することは推奨されていません。

ビルトインサーバーを起動するには、コマンドラインで下のように記述します。

php -S localhost:8000

-Sオプションで IP:ポート番号を指定します。上の例は、localhost(127.0.0.1)のポート8000をPHPビルトインサーバーが使用する設定です。

コマンドを実行したディレクトリが、ウェブルートとなります。
ウェブルートを指定して起動する場合は、-t オプションで指定することができます。

php -S localhost:8000 -t /home/USERNAME/public_html

上の例は、ユーザーのpublic_htmlをウェブルートとしてビルトインサーバーを起動します。

ビルトインサーバーを終了する場合は、CTRL-cを押します。

エラーメッセージ例

ビルトインサーバーを使っている時、上手く起動すれば良いですが、必ず上手くいくとは限りません。
筆者がビルトインサーバーを使った時に遭遇したエラーを紹介します。

Cannot assing requested address

IPアドレスの指定を間違えた場合(そのマシンのIPではなかった場合)、このエラーメッセージが表示されました。
192.168.0.2が割り当てられているのに、192.168.0.1を指定したような場合です。IPアドレスを正しく設定したら動作しました。

Address already in use

localhostで普通にウェブサーバーを既に起動していて、localhost:80を指定した場合、このエラーメッセージが表示されました。
この場合はポート番号を80から8000に変更したら動作しました。

ビルトインサーバーのメリット

ビルトインサーバーのメリットは、ずばり、手軽さでしょう。コマンドラインで一行書けば、それだけで簡易ウェブサーバーが立ち上がります。

ビルトインサーバーのデメリット

あくまで開発補助用なので、本番運用には向きません。
小さい会社等で、エンジニアがサーバーのメンテナンスも行う、というような場合では、ビルトインサーバーを使うよりも、Apache等のウェブサーバーを開発環境に選択した方が、本番への移行の手間、運用経験の蓄積、等の点で有利でしょう。

まとめ

手軽にPHPの動くサーバーを作りたい場合、ビルトインサーバーが役立ちます。PHP5.4以降で利用できるので、試してみてはいかがでしょうか。

CodeIQコード銀行にあなたのコードを預けてみませんか?

  • CodeIQコード銀行ではあなたのコードを財産と考えます。
  • お預かりいただいたコードは、CodeIQコード銀行がしっかり評価し、フィードバックいたします。
  • 当コード銀行にお預けいただいたコードは、企業がみてスカウトをかける可能性があります。
  • 転職したい方や将来転職することを考えている方で、今の自分のスキルレベルを知りたい方はぜひ挑戦してみてください。
  • 企業からスカウトがきたら困る人は挑戦しないでください。

興味を持った方はこちらからチャレンジを!

  • 13
  • このエントリーをはてなブックマークに追加

■この記事を書いた人

avatar

レスキューワーク株式会社 水野史土

レスキューワーク株式会社(WordPressサイト/テーマ/プラグインの診断および障害復旧サービス)の代表取締役。。WordPressおよびNovius OS(FuelPHPベースのCMS)のコアコード貢献者。concrete5.orgのコミュニティリーダー。主な著書「徹底攻略 PHP5 技術者認定 [上級] 試験問題集」(共著)。

■関連記事

GUIでアプリケーションが作れるNovius OSで効率的な開発 #PHP... 「アプリケーション作成」ウィザードとは 「アプリケーション作成」ウィザードとは、Novius OSに標準同梱されているアプリケーションです。管理画面からアプリケーションの雛形を作ることができます。開発を効率化するツールとして役立ちます。 このウィザードを使ってアプリケーションの雛形を作ると、 ...
クイックソートとバブルソートを比較してみよう #PHP... クイックソートとバブルソート ソートの方法には様々な方法があります。よく知られているものには、クイックソートやバブルソートなどがあります。ほかにもソート方法がありますが、ここではこの2つを紹介します。尚、今回は要素の値は全て異なる前提とします。 バブルソート バブルソートは、一番小さい(or大...
Webサイト発注の指標にもなるconcrete5のポイント機能「Karma」とは? #concret... concrete5とは? concrete5とは、CMS(conctents management system)と呼ばれる、Webサイトをブラウザから更新できるようにするソフトウェアのことです。アメリカ、オレゴン州ポートランドで開発されていますが、英語だけでなく様々な言語に対応しています。日本語...
覚えておくと便利!min, max関数を使ってシンプルなコードを書く方法 #PHP... <Part1> min関数の活用法 min関数は、いくつかの値から最小のものを返す関数です。非常にシンプルですね。シンプルな関数ですが、使い方はいろいろあります。とり得る引数も様々です。 配列を引数にする場合 min関数は配列を引数にすることができます。この場合、配列の要素の中で最も小さい値を...
トランプのカードを混ぜる仕組み(パーフェクトシャッフル)をプログラミングで調べてみよう #PHP... トランプのカードを混ぜる トランプゲームを行う時、カードを混ぜる必要があります。カードを混ぜる方法にも、様々なものがありますが、ここでは、リフルシャッフルを取り上げます。 リフルシャッフルは、カード全体を半分に分けて、交互に一枚ずつ混ぜていく、というものです。 実際に手作業で行うと、一度に二、三...
待ったなし!今すぐPHP5.3から移行しないと起こるかもしれないトラブルまとめ #PHP... まずは確認。PHP5.4で削除されるもの セーフモード、マジッククォート、register_globals、register_long_arraysが、PHP5.4で削除されています。これらはPHP5.3で非推奨となっていたものですが、PHP5.2以前ベースで開発していた等で使っている場合はコード...

今週のPickUPレポート

新着記事

週間ランキング

CodeIQとは

CodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。

CodeIQご利用にあたって
関連サイト
codeiq

リクルートグループサイトへ