LoginSignup
25
24

More than 5 years have passed since last update.

Elixir/Phoenix Framework ubuntu/trusy64 導入メモ

Last updated at Posted at 2015-11-21

Phoenix Frameworkの開発環境をVagrant上に構築したときのメモです。

参考:http://www.phoenixframework.org/docs/installation

Vagrantfile を作成

以下の内容でVagrantfileを作成しました。
Boxはubuntu/trusty64を使いました。

Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"

  config.vm.network "forwarded_port", guest: 4000, host: 4000
  config.vm.network "private_network", ip: "192.168.33.10"
end

Vagrantを起動してSSHに接続しましょう。

$ vagrant up
$ vagrant ssh

Elixirの導入

provisioningで設定するのが良いですが、とりあえず初めて構築するので手動で設定していきます。

http://elixir-lang.org/install.html#unix-and-unix-like を参考に構築しました。

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

PostgreSQLの導入

こちらを参考にしました。
http://qiita.com/ibara1454/items/40ce2d82926f48cf02bc

vagrantというRoleを作成し、パスワードもvagrantにしました。

$ sudo apt-get install -y postgresql-9.3
$ sudo service postgresql start

$ sudo -i -u postgres
$ psql
postgres=# ALTER ROLE postgres LOGIN PASSWORD 'postgres';

Hex package manager の導入

はじめに、HexというElixirのパッケージマネージャーを導入する必要があります。
Hexを使う事で、Phoenixのアプリケーションで利用する依存パッケージを管理することができます。

$ mix local.hex

Phoenix の導入

Phoenixのパッケージはmix archiveとして提供されています。mix archive自体はzipファイルで、beamファイルにコンパイルされたライブラリのコードが含まれています。

$ mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez

Node.jsの導入

PhoenixではJavaScriptやCSSなどのアセットコンパイルにbrunch.ioを使用しています。
そのため、Node.js 0.12.0以上の導入が必要です。

$ sudo apt-get install nodejs npm nodejs-legacy

inotify-tools の導入

Phoenixではライブコードリロードのために、Linuxではinotify-toolsが必要なようです。

$ sudo apt-get install inotify-tools

Phoenixプロジェクトを作成する

参考:http://www.phoenixframework.org/docs/up-and-running

$ cd /vagrant
$ mix phoenix.new hello_phoenix

新規プロジェクトがサブディレクトリにできてしまったので、、、

$ mv hello_phoenix/* ./
$ mv hello_phoenix/.gitignore ./
$ mix ecto.create
$ mix phoenix.server

http://localhost:4000/ にアクセスして、Welcome to Phoenix! と表示されたら正常にサーバが起動しています。

完成版Vagrantfile

11/28 追記

プロビジョニングも自動で行うVagrantfileが完成したので、以下に掲載しておきます。

Vagrantfile
$script = <<SCRIPT
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get -y update
sudo apt-get -y install elixir nodejs npm nodejs-legacy inotify-tools postgresql-9.3

# postgresユーザにパスワードpostgresをつける
sudo -u postgres sh -c "echo \\"ALTER ROLE postgres LOGIN PASSWORD 'postgres';\\" | psql"

# install Hex
yes | mix local.hex
# install Phoenix
yes | mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez
SCRIPT

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"

  config.vm.network "forwarded_port", guest: 4000, host: 4000
  config.vm.network "private_network", ip: "192.168.33.10"

  config.vm.provision 'shell', inline: $script
end
25
24
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
25
24