Laravel4、PHP5.4のサーバーを使用する
タグ: Laravel4
簡単な小ネタをひとつどうぞ。
PHP5.4以上をご利用でしたら、PHP自体をサーバーとして使用できます。Laravel4にはこれを簡単にコマンドから動作可能です。
以降のコマンド・表示はLinuxのbashを使用している場合です。
php artisan serve
これで完了です。以下のメッセージが表示され、サーバーとして動作している間は入力が受け付けられません。
Laravel development server started on localhost:8000...
ブラウザでlocalhost:8000にアクセスすれば、トップページが表示されます。もう、開発でWebサーバーがどうのこうのと、面倒なことをしなくてもすむわけです。
さて、上記のサーバーですが、停止したい場合はどうするのでしょうか。それは、皆さんの使用している設定にもよりますが、一般的にはCTRL+Cで終了させることが可能です。(Windowsだと異なっているかもしれませんね。CTRL+D? CTRL+Z??)
コマンドの最後にバックグランドで実行させるため&をつけてコマンドを叩くことができますが、サーバーとして正しく動作しないようです。(試していませんが、もしかしたら--quietを付けて実行するか、出力をリダイレクトする必要があるのかも知れません。)
一度起動し、停止、その後にもう一度実行しようとして以下のエラーが表示された場合、内部的には完全に前回のコマンドが終了していません。
Laravel development server started on localhost:8000... [Sat Apr 6 07:49:42 2013] Failed to listen on localhost:8000 (reason: Address already in use)
実行しているプロセスをまず確認してください。
ps -F
これで自分が実行しているプロセスの一覧が表示されます。
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD hiro 5683 5679 0 2172 4052 1 07:29 pts/0 00:00:00 /bin/bash hiro 6476 5683 0 9379 6852 1 08:01 pts/0 00:00:00 php artisan hiro 6486 5683 0 1540 1188 0 08:04 pts/0 00:00:00 ps -F
今回の場合、3つのうち2番目のプロセスです。一番右のCMD欄に、実行コマンドが表示されています。そのプロセスのPIDを確認してください。上記の場合、6476です。
次に、このプロセスを強制的に停止させます。
kill -9 6476
kill -9
で強制終了です。最後にプロセスのPIDを指定してください。
なお、serveコマンドは、ホスト名もポート番号も変更できます。コマンドのオプションは以下のとおりです。
使用法: serve [--host[="..."]] [--port[="..."]] オプション: --host ホスト名(デフォルトは"localhost") --port ポート番号(デフォルトは8000) --help (-h) ヘルプの表示 --quiet (-q) メッセージを表示しない --verbose (-v) メッセージを詳しくする --version (-V) アプリケーションのバージョン表示 --ansi ANSI表示にする --no-ansi ANSI表示を使用しない --no-interaction (-n) インタラクティブに質問をしない --env 環境の指定
尚、もちろんArtisanを使用しなくても、組み込みWebサーバーは実行できます。その場合、PHPに指定できるオプションは全部使用できます。(ただし、私が試したMint linux14のデフォルトのPHPパッケージでは、Webサーバー起動時は-cによるphp.iniの指定は動作しませんでした。)
PHP -S localhost:8000 server.php