Edited at

Phoenix Frameworkの開発環境を構築する with Ubuntu 16.04

More than 1 year has passed since last update.


初めに

最近、趣味でUnity関連の開発を始めました。それに関連して、リアルタイム通信の仲介役となるサーバーアプリをElixir + Phoenix Frameworkで構築を進めています。この記事は環境構築時の忘備録です。タイトルの通りではありますが、この記事ではVagrantで初期化したUbuntu上(Ubuntu 16.04)でPhoenix Framework用の開発環境を整えるところまで進めます。バージョンやプロジェクト名・データベース名などは、必要に応じて改変してください。


依存関係

Phoenix Frameworkを使った開発環境の構築には、Elixirが導入されていることはもちろん、Node.jsやデータベースがセットアップされている必要性があります。ざくっとですが、HelloWorldするのに下記パッケージを必要です。


  • Phoenix Framework


    • Elixir

    • Node.js

    • Postgres (初回HelloWorldするのに必要)




手順


必要なパッケージ類のインストール

inotify-toolsは、Phoenixがファイルの変更を自動で検知してリロードするために必要です。

なくても動きますが、実行時にerrorが出ます。


$ sudo apt install wget curl git vim inotify-tools


Erlangの導入

筆者環境ではerlangインストール中にHash Sum mismatchと出ましたが、apt updateしなおしたら治りました。


$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
$ sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt update
$ sudo apt install -y erlang


Elixirの導入 (exenv経由)


$ git clone git://github.com/mururu/exenv.git .exenv
$ git clone git://github.com/mururu/elixir-build.git ~/.exenv/plugins/elixir-build
$ echo 'export PATH="$HOME/.exenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(exenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ exenv install 1.6.6
$ exenv global 1.6.6


Node.jsの導入 (nvm経由)

phoenix.newするときに、Node.js(というかnpm..?)が必要になります。

ここで入れておきましょう。


$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
$ nvm install v8.11.3
$ source ~/.bashrc


PostgresDBの構築 (Docker経由)

Docker経由でPostgreSQLサーバーをローカルに立てます。

DBが立ち上がっていないと後述のサーバー起動時にエラーで落ちます。


$ curl -fsSL get.docker.com -o get-docker.sh
$ sh get-docker.sh
$ sudo usermod -aG docker $(whoami)
$ docker run -d --name postgres -p 5432:5432 -e POSTGRES_DB=hello_phoenix_dev postgres:9.6


Phoenix Frameworkの導入


# Package manager hexの導入
$ mix local.hex
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez


プロジェクト作成

phoenix.newするときに、Fetch and install dependencies?と聞かれます。

Yを押して依存関係を入れておきましょう。

mix phoenix.serverでサーバーアプリが起動します。

初回起動は、生成されたソースをコンパイルするのでちょっと時間がかかるようです。


$ mix phoenix.new hello_phoenix
$ cd hello_phoenix
# サーバー起動
$ mix phoenix.server


確認

サーバーを起動すると4000番でLISTENされるので、http://(マシンのアドレス):4000でアクセスしてみましょう。

下記のような画面が出てくれば、HelloWorld成功です。