[Elixir][WSL] Phoenix フレームワークで WebAP を実行する

はじめに

Phoenix とは、Elixir 言語で利用可能な WebAP フレームワークです。
WSL で Phoenix サーバを起動し、ブラウザで参照するための手順をまとめます。

以下参考ページです。

WSL で Phoenix を起動

動作環境

  • Windows 11
  • WSL Ubuntu 20.04

事前準備

WSL ディストリビューションの複製(非必須)

お試しで実行する場合は WSL Ubuntu イメージを複製しておくのがお勧めです。
本手順は必須ではありません。

各種インストール

Ubuntu パッケージのアップデート

初めに、Ubuntu パッケージを最新化しておきます。

$ sudo apt update
$ sudo apt upgrade
Elixir のインストール

Erlang と Elixir をインストールします。
Ubuntu の標準リポジトリにも elixir はありますが、2022/09/19 現在では 1.9.1 のバージョンがインストールされてしまいます。
一方で Phoenix では 1.12 以降の Elixir を必要としますので、Erlang のリポジトリからインストールするようにします。

$ wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb
$ sudo apt update
$ sudo apt install esl-erlang
$ sudo apt install elixir

バージョン 1.13.4 の Elixir をインストールできました。

$ elixir -v
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns]

Elixir 1.13.4 (compiled with Erlang/OTP 25)
PostgreSQL インストール

Phoenix はデータベースとして、デフォルトでは PostgreSQL を利用するようになっています。
postgresql をインストールして、サービスを手動で起動しておきます。

$ sudo apt install postgresql
$ sudo service postgresql start

サービス起動後、postgres ユーザのパスワードを設定しておきます。
これをやっておかないと、後続の mix ecto.create のタイミングでエラーが発生します。

$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
パッケージのインストール

Elixir のパッケージ管理ツールの hex をインストールします。
mix コマンドからインストールすることができます。

$ mix local.hex

続いて、hex を介して phx_new をインストールします。
Phoenix のプロジェクトジェネレータです。

$ mix archive.install hex phx_new

ここまでで事前準備完了です。

Phoenix プロジェクト作成および起動

mix コマンドを利用して、Phoenix のデフォルトプロジェクトを作成します。
hello ディレクトリが作成され、この配下に各種ファイルが配置されます。

$ mix phx.new hello

次に実行するべきコマンドは、先ほどのコマンドの出力にて指示されます。
その通りに順に実行してやります。

$ cd hello
$ mix ecto.create
$ mix phx.server

ここまで実行すると、Phoenix の Web サーバが起動されます。
Chrome などのウェブブラウザから http://localhost:4000 にアクセスすることで、Welcome ページにアクセスすることができます。

なお、ウェブブラウザは WSL 上で起動する必要はありません。
Windows 11 にインストールされている Chrome や Edge で十分です。