ビルトインサーバーまとめ

こんにちわ。ちょっと改名しました。でらぽんです。

ビルトインサーバーとは

PHPRubyPythonなどのプログラミング言語には、httpサーバー機能をもっていて、HTMLやjavascriptをちょこっと動かしたい時に知っていると便利だったりします。また、これらの言語はMacでは最初からインストールされているので何の準備もなく実行することができます。

今回は各言語のビルトインサーバーの紹介とそれをコマンド一発で起動できるようにしましょうという記事です。

PHP
# 実行コマンド
# PHP 5.4 から実装
php -S localhost:[ポート番号]
Ruby
# 実行コマンド
ruby -run -e httpd . -p [ポート番号]
Python
# pythonの場合
python -m SimpleHTTPServer [ポート番号]
# python 3
python3 -m http.server [ポート番号]

使い方はどの言語もだいたい同じで、ctrl+c で停止。ctrl+x を押してしまった時とかは、Macならkillコマンド、Windowsならタスクマネージャーからプロセスを停止させてください。

コマンドに登録する

これだけ知っていれば実行はできるのですが、少し長いので一発で実行できるように、http というコマンドを打ったら実行するようにしましょう。コマンド化の方法は色々あったりするようですが、私がやっている方法を紹介します。

※この設定でしばらく動かしてみましたが、コマンド名が http だと、Windowsで意図せず呼び出される事があり、 思わぬものが動かなくなったりしたのでコマンド名を http_start に変更しました。 atomのパッケージマネージャーやgitがうまく動かなくなり原因を探った所これが原因でした。

windowsの場合
# コマンドの設定
doskey http=ruby -run -e httpd . -p 8888
# コマンドを削除
doskey http=

この方法ですが、プログラムを終了してしまうと設定が無効になってしまうので、以下の方法でコマンドプロンプトの起動時に自動実行するようにします。

ユーザーディレクトリ等に autorun というディレクトリを作成します。そこに autorun.bat というファイルを作成し、テキストエディタ等で開いて doskey コマンドを入力して保存します。

# autorun.bat
doskey http=ruby -run -e httpd . -p 8888

その後 regedit から HKEY_CURRENT_USER\Software\Microsoft\Command ProcessorAutoRun という項目を追加し、値に autorun.bat のフルパスを設定します。

f:id:Derabon:20150129203329p:plain

Macの場合
# .bash_profile
alias http="ruby -run -e httpd . -p 8888"

Macの場合はターミナル起動時に読み込まれる .bashsh_profileなどに alias コマンドを実行するように記述を追加すれば完了です。お手軽です。

まとめ

必ず設定する必要は無いが、ちょっと便利な時があるかなって記事でした。 この編の環境作成はいろいろ方法があると思うのでもっとクールな方法があったら教えて欲しいです。

あと、記事とは関係ありませんが、4月にコースデビュー予定なのでゴルフの練習がんばります。