Phoenix is a promising Elixir web framework that is fast and productive. I heard about Phoenix through a coworker a couple of weeks ago and started playing with it. Then stopped for a while, until I heard that the framework finally hit 1.0 on Hacker News. There were many praises for the framework and success stories that I thought I had to try it again.
This is a summary of what I did to set up Phoenix 1.0 on Mac OS X Yosemite (Version 10.10.5). I also included how I solved some odd errors that appeared during installation process.
-
$ brew install elixir -
$ mix local.hex -
$ mix archive.install https://github.com/phoenixframework/phoenix/releases/download/v1.0.0/phoenix_new-1.0.0.ezIn this step, you might see this error.
** (Mix) Could not access url https://github.com/phoenixframework/phoenix/releases/download/v1.0.0/phoenix_new-1.0.0.ez, error: {:failed_connect, [{:to_address, {'github.com', 443}}, {:inet, [:inet], :nxdomain}]}To solve this issue, you need to ensure that
~/.mix/archives directoryhas write permission.Run
$ sudo chmod a+rw ~/.mix/archives/then try running #3 again. -
Go into the directory where you want your Phoenix app to live.
-
$ mix phoenix.new hello_phoenix -
Say yes to
Fetch and install dependencies? [Yn] yYou might see an error during this process. And most likely, it's happening because your Phoenix project directory doesn't have write permission.
Run
$ sudo chmod -R a+rw hello_phoenix. Then try running #5 again. -
Run
$ npm installwith node > 0.12.0 -
Ensure that you have postgresql running.
-
Run
$ mix ecto.createYou might get this error.
** (Mix) The database for HelloPhoenix.Repo couldn't be created, reason given: "psql: FATAL: role \"postgres\" is not permitted to log in\n".Run
$ psql postgresIn the psql, run
CREATE ROLE postgres;Try running
$ mix ecto.createagain.You might get this error.
** (Mix) The database for HelloPhoenix.Repo couldn't be created, reason given: "psql: FATAL: role \"postgres\" is not permitted to log in\n".In the psql, run
ALTER ROLE postgres LOGIN;Try running
$ mix ecto.createagain.You might get this error.
** (Mix) The database for HelloPhoenix.Repo couldn't be created, reason given: "ERROR: permission denied to create database\n".In the psql, run
ALTER ROLE postgres CREATEDB;Now try
$ mix ecto.createagainYou should see
The database for HelloPhoenix.Repo has been created. -
Run
$ mix phoenix.server -
Go to http://localhost:4000/
