Elixir の Web Framework である Phoenix を使って初めてのアプリケーションを作成してみる (Phoenix入門の入門)

はじめに

環境 OS: Ubuntu 18.04.3 Desktop

Elixir は Erlang を基とする関数型言語です。 Elixir は Web Framework である Phoenix を記述するのに用いられます。

インストール

※ Desktop版を使っているので Server だと別途何か必要かもしれません。

Elixir

Elixirの公式サイトの手順 に従ってインストールします。 最新の情報は公式サイトから見たほうが確実ですが、 2019/09/01 現在では以下の通り。

リポジトリを追加し、最新情報にアップデート後 apt でインストール。 元が Erlang であるため Erlang のインストールからしていますね。

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 esl-erlang
sudo apt install elixir

以上で elixir の導入は完了。

Phoenix

つづいてPhoexnix を入れていきます。 まずはPhoenixを入れる前にHexを入れます。 HexはElixirのパッケージマネージャです。

mix local.hex

続いてPhoenixをいれます。

mix archive.install hex phx_new

このほかにもPhoenixを使う上で必要なパッケージはあるのですが、 それは使っていくうちに Phoenix が親切にも教えてくれるので 取りあえずは置いておきます。

Node.js (nvm)

続いて、Node.js を入れます。 Node.jsを直接入れるよりも、nvm(Node Version Manager) を経由した方が良いです。 nvmの入れ方は 公式リポジトリの説明 を読んでいきましょう。 一応この記事を書いたときのリポジトリから抜き書きすると以下のように入れます。

# curlはインストールされていないことがあるのでその場合は sudo apt install curl
# などで入れてください。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

# これにより `~/.nvm` にnvmがインストールされ、bashの設定ファイルに
# source コマンドが追記されます。

# Ubuntuだと ~/.bashrc に上記のsourceコマンドが記載されるので読み直します。
source ~/.bashrc

# 以下のコマンドで nvm と出力されたらOKです。
command -v nvm

これでnvmは完了。 続いて、Node.jsを入れていきましょう。

単純に最新のLTSをインストールし、デフォルトで使用するようにするには 以下のコマンドをたたきます。

nvm install --lts
nvm use --lts

PostgreSQL

elixirのチュートリアルではPostgreSQLを利用しますので それもインストールします。

sudo apt install postgresql

これからPhoenixの機能を用いてプロジェクトを作成するのですが、 その際に色々な設定ファイルも生成されます。 その中にデータベースの設定を記載したファイルもありまして、 今回はそのファイルの内容に合わせてPostgreSQL側の準備をします。

本当はデータベースに合わせて設定ファイルを変更するべきですが、 今回はお試しということで逆にしています。

具体的に何をどうするかというと、 postgres というユーザが postgres というパスワードを用いて ログイン可能な様に設定します。

まず、 postgres というユーザの作成ですが、 これについては特に操作をする必要はありません。 PostgreSQLをインストールした際に自動的に作成されています。

それでは、そのユーザのパスワードを変更してみましょう。 まず、 sudo を利用して postgres として強制的にログインします。 -u の後にあるのがログインに利用したいユーザ名、 psql が PostgreSQL Clientのコマンドになります。

sudo -u postgres psql

PostgreSQLのコマンドでパスワードを postgres へ変更します。

ALTER USER postgres WITH PASSWORD 'postgres';

これを行えば取りあえず開発環境としては何も設定を弄らなくても 自動的にログインすることが可能となります。

新規プロジェクトの作成

まずは最初のプロジェクトとして hello を作成してみます。 Phoennix では mix というものがあり、これで色々な便利コマンドを実行できます。 Rails で言うところの rake or rails コマンドであり、 Djangoで言うところの manage.py に相当する感じ。

まずは、新規プロジェクト作成コマンドを実施。

mix phx.new hello

他のWeb Frameworkにたがわず、プロジェクトを構成するファイルが非常に多いため、 このようなコマンドでプロジェクトを作成するのが通常です。

実施したのは phx.new というコマンドで、引数に作成するプロジェクト名を取ります。 これにより指定したプロジェクト名のフォルダを作成し、その中に色々なファイルを準備 してくれます。

お察しの通り、 phx が Phoenix を表しており、その中の new というコマンドを 実施しているという感じですね。

作成完了後、 hello というフォルダが作成されているので中に入りましょう。 その中でこれまた mix を使ってデータベースの作成を実施していきます。 ここでさっき設定したPostgreSQLが役に立つわけですね。

cd hello
mix ecto.create

今回は先ほどとは違い Phoenix のコマンドではなく、 Ecto というデータベースを扱う ライブラリのコマンドを利用しています。

このコマンドにより、Phoenixで利用するデータベースの作成がなされるわけですね。

そして、ここまでくるともうすでにサーバを立ち上げることが可能です。

mix phx.server

上記のコマンドにより、 http://localhost:4000/ から 初めてのPhoenixアプリケーションにアクセスできるというわけです。

取りあえず動くのが確認できたので、今回はここまで。

コメント

このブログの人気の投稿

gnuplot: グラフの色を変更する

[Linux] rsyncで進捗を確認する

gnuplotで縦線を引きたい