超高速WebフレームワークPhoenix でHello World 的なことを Mac OS X で行う

Phoenix Framework とは

  • Elixir でコードを記述する。

http://elixir-lang.org/

gistb55b098d2f795d3df11a

  • Phoenix Framework 自体がRails からインスパイアされている。

  • だから、RubyRailsの知識が活かせる。

  • Elixir はErlangVM上で動く。

  • Erlangは耐障害性と高いスケーラビリティを持つ関数型プログラミング言語だ。

  • そして速い。マイクロ秒単位(1/1000秒単位)でレスポンスを返したりする。

みたいのが特徴。

具体的には、Erlang は電話網の50%を動かしていたり、WhatsApp で採用されていたり耐障害性と高いスケーラビリティの面で実証済み。

qiita.com

前提

Mac OS X で作業をします。

公式ドキュメントを参考にインストール作業を行います。

Installation · Phoenix

必要なアプリケーションをインストールする

Phoenix とは直接関係のないアプリケーション

Mac で開発環境を構築する際にほぼ必須なアプリケーションです。

Homebrew

まず、ターミナルで以下のコマンドを実行する。

xcode-select --install

xcode-selectがインストールされていなければ、AppStoreが立ち上がるのでxcode をインストールする。

上記が完了したら、以下のコマンドをTerminalで実行しインストールする。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew — OS X用パッケージマネージャー

実行環境を構築するのに必要なアプリケーション

node.js (>= 0.12.0)

node.js は バージョン管理を考えるとnodebrewを利用するのがいいので以下のサイトを参考にしてインストールする。

node.jsのversionを管理するためにnodebrewを利用する - Qiita

Phoenix

フレームワーク本体です。 後述します。

Elixir

Phoenixでアプリケーションを記述するRuby風味なシンタックス関数型言語です。

$ brew update
$ brew install elixir

Hex

Elixir, Erlang 向けのパッケージ管理ツールです。 以下のコマンドでインストールする。

% mix local.hex

インストールしますかと聞かれるのでy + Enterを入力するとこんなかんじになってインストール完了。

Are you sure you want to install archive https://s3.amazonaws.com/s3.hex.pm/installs/1.0.0/hex.ez? [Yn] y
2015-08-10 18:12:51 URL:https://s3.amazonaws.com/s3.hex.pm/installs/1.0.0/hex.ez [269416/269416] -> "/Users/user/.mix/archives/hex.ez" [1]
* creating /Users/user/.mix/archives/hex.ez

PostgreSQL

デフォルトのDBです。 PostgreSQL はHomebrewでインストールする。

$ brew install postgresql

MacにPostgreSQLをインストール - Qiita

とりあえず、アプリを起動させるだけならPostgreSQLは飛ばせます。

特に作業しなくてもインストールされているもの

Erlang

Elixir インストールした際に一緒についてくるので特に作業しなくていい。

Plug, Cowboy, and Ecto

Phoenixの中身。ORマッパーとかそんなの。mix deps.getでインストールする。

Installation · Phoenix

アプリケーション作製

Phoenix(phoenixframework)をインストールする

適当なディレクトリで以下のコマンドを実行する。

% mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v0.14.0/phoenix_new-0.14.0.ez

インストールしますかと聞かれるのでy + Enterを入力するとこんなかんじになってインストール完了。

Are you sure you want to install archive https://github.com/phoenixframework/phoenix/releases/download/v0.14.0/phoenix_new-0.14.0.ez? [Yn] y
* creating /Users/user/.mix/archives/phoenix_new-0.14.0.ez

mix はElixir のビルド用のコマンド。 *1

サンプルアプリケーションをつくる

以下のコマンドを実行する。

mix phoenix.new elixir-stuff/hello_phoenix    

Phoenix application を起動する

以下のコマンドを実行する。

We are all set! Run your Phoenix application:

    $ cd elixir-stuff/hello_phoenix
    $ mix deps.get
    $ mix phoenix.server

ブラウザで動作確認する

http://localhost:4000

f:id:snowlong:20150718045722p:plain

IEx (Interactive Elixir)で起動したい方はこちら

You can also run it inside IEx (Interactive Elixir) as:

    $ iex -S mix phoenix.server

Up And Running · Phoenix

アプリケーションを終了するときは ctrl-cを2回実行します。

以上、簡単ですね。

あと、このへんも参考にしました。

qiita.com

postd.cc


2015-08-10 わかりづらかったところなど大幅に書き換えました。

*1:Mix is a build tool that ships with Elixir that provides tasks for creating, compiling

Introduction to Mix - Elixir