起動
Phoenixのアプリケーションをできるだけ早く起動させましょう。
始める前に、インストールガイドを少しだけお読みください。必要な依存関係を事前にインストールしておくことで、スムーズにアプリケーションを立ち上げることができます。
Phoenixアプリケーションを起動するために、どのディレクトリからでも mix phx.new
を実行できます。Phoenixは、新しいプロジェクトのディレクトリに絶対パスか相対パスのどちらかを受け入れます。アプリケーションの名前が hello
であると仮定して、以下のコマンドを実行してみましょう。
$ mix phx.new hello
始める前のwebpackについての注意。Phoenixはデフォルトでアセット管理にwebpackを使用します。Webpackの依存関係は、ノードのパッケージマネージャを介してインストールされます。Phoenixは
mix phx.new
タスクの最後にそれらをインストールするように促します。この時点で「いいえ」と答え、あとでnpm install
で依存関係をインストールしないと、アプリケーションを起動しようとしたときにエラーが発生し、アセットが正しくロードされない可能性があります。webpackをまったく使いたくない場合は、単に--no-webpack
をmix phx.new
に渡せばよいのです。
Ectoについての注意点。Ectoは、PhoenixアプリケーションがPostgreSQLやMySQLなどのデータストアと通信することを可能にします。アプリケーションがこのコンポーネントを必要としない場合は、
--no-ecto
フラグをmix phx.new
に渡すことで、この依存関係をスキップできます。このフラグは--no-webpack
と組み合わせてスケルトンアプリケーションを作成することもできます。
mix phx.new
の詳細については、Mixタスクガイドを参照してください。
mix phx.new hello
* creating hello/config/config.exs
* creating hello/config/dev.exs
* creating hello/config/prod.exs
...
* creating hello/assets/static/images/phoenix.png
* creating hello/assets/static/favicon.ico
Fetch and install dependencies? [Yn]
Phoenixは、ディレクトリ構造とアプリケーションに必要なすべてのファイルを生成します。
Phoenixはバージョン管理ソフトウェアとして gitを使うことを推奨しています。生成されたファイルの中には
.gitignore
というファイルがあります。リポジトリをgit init
して、無視されていないものをすぐに追加してコミットできます。
それが終わると、依存関係をインストールするかどうかを尋ねてきます。これにイエスと答えましょう。
Fetch and install dependencies? [Yn] Y
* running mix deps.get
* running mix deps.compile
* running cd assets && npm install && node node_modules/webpack/bin/webpack.js --mode development
We are almost there! The following steps are missing:
$ cd hello
Then configure your database in config/dev.exs and run:
$ mix ecto.create
Start your Phoenix app with:
$ mix phx.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phx.server
依存関係がインストールされると、タスクはプロジェクトディレクトリに変更してアプリケーションを起動するように促します。
Phoenixは、PostgreSQLデータベースが正しいパーミッションとパスワード "postgres" を持つ postgres
ユーザーアカウントを持っていることを前提としています。そうでない場合は、mix ecto.create
タスクの詳細についてMixタスクガイドを参照してください。
それでは、試してみましょう。まず、先ほど作成した hello/
ディレクトリに cd
します。
$ cd hello
インストールガイドにしたがって、
{:cowboy, "~> 2.7.0"}
をmix.exsに追加することを選択した場合は、mix deps.get
を実行してください。
では、データベースを作成します。
$ mix ecto.create
Compiling 13 files (.ex)
Generated hello app
The database for Hello.Repo has been created
データベースが作成できなかった場合、一般的なトラブルシューティングについては、mix ecto.create
のガイドを参照してください。
注意: このコマンドを初めて実行する場合、PhoenixはRebarのインストールを要求してくるかもしれません。RebarはErlangパッケージのビルドに使われるので、インストールを進めてください。
そして最後にPhoenixサーバーを起動します。
$ mix phx.server
[info] Running HelloWeb.Endpoint with cowboy 2.5.0 at http://localhost:4000
Webpack is watching the files…
...
新しいアプリケーションを生成するときに依存関係をインストールしないように選択した場合、mix phx.new
タスクは、依存関係をインストールしたいときに必要なステップを踏むように促してくれます。
Fetch and install dependencies? [Yn] n
We are almost there! The following steps are missing:
$ cd hello
$ mix deps.get
$ cd assets && npm install && node node_modules/webpack/bin/webpack.js --mode development
Then configure your database in config/dev.exs and run:
$ mix ecto.create
Start your Phoenix app with:
$ mix phx.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phx.server
デフォルトでは、Phoenixは4000番ポートでリクエストを受け付けます。お気に入りのウェブブラウザをhttp://localhost:4000に向けると、Phoenix Frameworkのウェルカムページが表示されるはずです。
上の画像のような画面が表示されたら、おめでとうございます。これでPhoenixアプリケーションが動作します。上のページが表示されない場合は、http://127.0.0.1:4000からアクセスしてみてください。
これを止めるには、ctrl-c
を2回入力します。
これで、Phoenixが提供する世界を探検する準備が整いました!書籍、スクリーンキャスト、コースなどについては、コミュニティページをご覧ください。
あるいは、これらのガイドを読み続けることで、Phoenixアプリケーションを構成するすべての部分に関する簡単な紹介を得ることができます。その場合は、任意の順番でガイドを読むこともできますし、Phoenixディレクトリ構造について説明しているガイドから始めることもできます。