あるソフトウェアエンジニアの開発ブログ

ソフトウェアエンジニアリングを中心につらつらと書く

Elixir - Phoenixのセットアップ

このブログで書いたように、
Elixir習得のために作り始めた株価スクレイピングアプリは当初データ収集のみの想定だった。
でも思いの外気合のみで作れてしまい、まるで言語を習得できていないのでWebアプリにしようと思う。
定期的にデータをスクレイピングし、それをHTMLで表示するアプリをAWSで運用する。

ElixirでWebアプリといったら Phoenix らしい。
にしても作者完全にFF好きだな、ElixirPhoenixて。

Phoenix のインストー

Installation · Phoenix

Hex のインストー

mix local.hex

Phoenix のインストー

mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez

node と npm のインストー

sudo apt-get install -y nodejs npm

sudo npm cache clean
sudo npm install n -g

sudo n stable
sudo ln -sf /usr/local/bin/node /usr/bin/node

# 古いnodejs npm削除
sudo apt-get purge -y nodejs npm

inotify-tools のインストー

Linuxのみ inotify-tools をインストールする必要があるらしい。

sudo apt-get install inotify-tools

MySQL の設定

Using MySQL · Phoenix
databaseオプションをmysqlにしphoenixプロジェクト作成。

mix phoenix.new stock_scraping --database mysql

configファイルを編集

config/dev.exsconfig/test.exsconfig/prod.secret.exsを、
自分のMySQLの環境に合わせて修正する。

config :stock_scraping, StockScraping.Repo,
  adapter: Ecto.Adapters.MySQL,
  database: "stock_scraping",
  username: "ytoida",
  password: "",
  hostname: "localhost",
  port: 3306,
  pool_size: 10

Repo の作成

コンパイルして、StockScraping.Repoを作る。

mix do deps.get, compile
mix ecto.create

Webサーバー起動

ここまできたらWebサーバーを起動できるはず。
起動してみる。

mix phoenix.server

すると、

[info] Running StockScraping.Endpoint with Cowboy using http://localhost:4000
12 Jun 17:20:46 - info: compiled 6 files into 2 files, copied 3 in 3.8 sec

と出力された。
どうやら http://localhost:4000 でアクセス出来るらしい。
Chromeからアクセスして、Welcomeページ出たらOK牧場