LoginSignup
7
0

More than 3 years have passed since last update.

Phoenix Framework を導入

Last updated at Posted at 2019-04-15

Elixirのインストール

公式ページのインストールガイドから
環境に合わせてインストールしてください。

MIX

Rakeのようなツール
Elixirをインストールすると、一緒にインストールされる。
mixを使ってPhoenix FrameworkなどElixirの環境を構築する。

HEX

RubyGemsのようなElixir,Erlang 向けのパッケージ管理ツール
mixだけではパッケージ管理してくれない、最初はインストールされていないので、
mixでhexをインストールする。

インストール

mix local.hex

バージョン確認

mix hex.info

Elixirに導入するパッケージとバージョンなどは下のページで探す。
HEX https://hex.pm/

初めてPhoenix Frameworkを動かすだけなら、下の作業は不要です。
今後、パッケージを追加する場合などに必要になります。

パッケージを追加する場合は mix.exに追加する。

mix.ex
defp deps do
    [
      {:phoenix, "~> 1.4.3"},
      {:phoenix_pubsub, "~> 1.1"},
      {:phoenix_ecto, "~> 4.0"},
      {:ecto_sql, "~> 3.1"},
      {:postgrex, "~> 0.14.2"},
      {:phoenix_html, "~> 2.13"},
      {:phoenix_live_reload, "~> 1.2", only: :dev},
      {:gettext, "~> 0.16.1"},
      {:jason, "~> 1.1"},
      {:plug_cowboy, "~> 2.0"},
    ]
  end

追加されているパッケージとバージョンは mix.lock ファイルで確認できる。

パッケージの指定方法はhexから取得するだけでなく、gitリポジトリ、ローカルパスの指定も可能です。

{:gettext, git: "https://github.com/elixir-lang/gettext.git", tag: "0.1"}
{:local_dependency, path: "path/to/local_dependency"}

指定方法の詳細はリファレンスを参照。
https://hexdocs.pm/mix/Mix.Tasks.Deps.html

下のコマンドでパッケージを取得してプロジェクトへ追加します。

mix deps.get

対話シェルでパッケージの動作確認をしたい場合などは下のコマンドで
mix.exの依存関係・環境でiexが起動します。

iex -S mix

Phoenix Framework

下のコマンドでインストールする。

mix archive.install hex phx_new バージョン

例 1.5.5を導入する場合

mix archive.install hex phx_new 1.5.5

HEX https://hex.pm/packages/phx_new

Phoenix Frameworkで使用されているライブラリなど・・・・
 CowBoy Phoenix Frameworkで使用されているWebサーバー
 Ecto データベースを操作するためのライブラリ

新規プロジェクト作成

mix phx.new ディレクトリ名

※ディレクトリが無かったら自動で作成してくれます。
例 相対パスでの指定も可能

mix phx.new ./project/hello

プロジェクト実行

プロジェクトのディレクトリへ移動して、下のコマンドを実行します。

 mix phx.server

エラーが出力される場合

inotify-toolsをインストールする

sudo apt install inotify-tools

nodeをインストールする

sudo apt install -y nodejs npm
cd assets
npm install

データベースのエラーが出力される場合、
Phoenix Frameworkでデータベースを使う
を実施すると解消する。

7
0
0

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
0