LoginSignup
7
3

More than 5 years have passed since last update.

PHPerがElixir + Phoenixの環境を構築する

Posted at

概要

バックエンドのプログラムの学習としてElixirを使ってアプリケーションを作って見ようと思います。
そこで、Elixirについて勉強してみたことをまとめていきます。

※しばらく凍結していたものを動かしたので情報は古めです。

Elixirとは

ElixirはErlangのVM上で動作する関数型言語です。
Elixirの特徴は以下となります。

  • スケールしやすい
  • 耐障害性が高い(フォールトトレラント)
  • 関数型プログラミング
  • 拡張しやすい

環境構築

  1. Erlang関係のパッケージを導入
sudo yum install ncurses ncurses-devel openssl openssl-devel gcc-c++ unixODBC unixODBC-devel fop *openjdk-devel inotify-tools
  1. 作業ディレクトリ作成&移動
mkdir work
cd work/
  1. Erlangの最新コード(2017/01/14時点で19.2)をダウンロードして解凍
wget http://erlang.org/download/otp_src_19.2.tar.gz
tar -zxf otp_src_19.2.tar.gz
  1. ビルド&インストール
cd otp_src_19.1/
./configure
make
sudo make install
  1. Erlangが入ったか確認
erl -version
  1. Elixirのソースコードをダウンロード&解凍(解凍は/opt/elixirに)
cd ..
wget https://github.com/elixir-lang/elixir/releases/download/v1.4.0/Precompiled.zip
sudo unzip Precompiled.zip -d /opt/elixir
  1. PATHに追記して再起動
sudo vim ~/.bash_profile
   (以下追記)
   export PATH=/opt/elixir/bin:$PATH
sudo reboot
  1. Elixirが入ったか確認
$ elixir -v
  1. パッケージ管理ツールHexを標準ビルドツールmixでインストール
$ mix local.hex
  1. WebフレームワークPhoenixをmixでインストール
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez

これで一先ずインストールは完了です。

アプリケーションの準備

アプリケーションを構築します。
このとき、DBを指定しないとPostgreSQLがインストールされます。

mix phoenix.new elixir_blog  --no-brunch --database mysql

スクリーンショット 2018-09-14 0.01.29.png

インストールが完了すると、上記画面が表示されます。
このまま、 mix phoenix.server を実行しても、DBがなくエラーとなります。そのため、次はDBを構築します。

DBを構築するため、mysql にDBを作ります。

$ mix ecto.create
The database for ElixirBlog.Repo has been created

これで立ち上げる準備が整いました。

では、Phoenixを立ち上げます。

$ mix phoenix.server
[info] Running ElixirBlog.Endpoint with Cowboy using http://localhost:4000

http://localhost:4000 にアクセスするとデフォルトの画面が表示されます。

スクリーンショット 2018-09-18 1.26.28.png

これで環境構築はできました。
これから開発していこうと思います。

以上、最後まで読んで頂きありがとうございました。

参考

7
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3