1. 安装Elixir/Phoenix
1.1 Exlixir 安装
$ brew install elixir$ elixir -vErlang/OTP 23 [erts-11.1.7] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [hipe] [dtrace]Elixir 1.11.3 (compiled with Erlang/OTP 23)
之后安装Elixir的包管理工具hex
$ mix local.hex
1.2 Phoenix安装
$ mix archive.install hex phx_new$ mix phx.new -vPhoenix v1.5.8
此外,Phoenix还需安装node,数据库等。
2. 测试工程
新建一个hello工程用于测试安装:
$ mix phx.new hello* creating hello/config/config.exs* creating hello/config/dev.exs* creating hello/config/prod.exs* creating hello/config/prod.secret.exs* creating hello/config/test.exs* creating hello/lib/hello/application.ex* creating hello/lib/hello.ex* creating hello/lib/hello_web/channels/user_socket.ex* creating hello/lib/hello_web/views/error_helpers.ex* creating hello/lib/hello_web/views/error_view.ex* creating hello/lib/hello_web/endpoint.ex* creating hello/lib/hello_web/router.ex* creating hello/lib/hello_web/telemetry.ex* creating hello/lib/hello_web.ex* creating hello/mix.exs* creating hello/README.md* creating hello/.formatter.exs* creating hello/.gitignore* creating hello/test/support/channel_case.ex* creating hello/test/support/conn_case.ex* creating hello/test/test_helper.exs* creating hello/test/hello_web/views/error_view_test.exs* creating hello/lib/hello/repo.ex* creating hello/priv/repo/migrations/.formatter.exs* creating hello/priv/repo/seeds.exs* creating hello/test/support/data_case.ex* creating hello/lib/hello_web/controllers/page_controller.ex* creating hello/lib/hello_web/templates/layout/app.html.eex* creating hello/lib/hello_web/templates/page/index.html.eex* creating hello/lib/hello_web/views/layout_view.ex* creating hello/lib/hello_web/views/page_view.ex* creating hello/test/hello_web/controllers/page_controller_test.exs* creating hello/test/hello_web/views/layout_view_test.exs* creating hello/test/hello_web/views/page_view_test.exs* creating hello/lib/hello_web/gettext.ex* creating hello/priv/gettext/en/LC_MESSAGES/errors.po* creating hello/priv/gettext/errors.pot* creating hello/assets/webpack.config.js* creating hello/assets/.babelrc* creating hello/assets/js/app.js* creating hello/assets/css/app.scss* creating hello/assets/js/socket.js* creating hello/assets/package.json* creating hello/assets/static/favicon.ico* creating hello/assets/css/phoenix.css* creating hello/assets/static/images/phoenix.png* creating hello/assets/static/robots.txtFetch 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 developmentWe are almost there! The following steps are missing:$ cd helloThen configure your database in config/dev.exs and run:$ mix ecto.createStart your Phoenix app with:$ mix phx.serverYou can also run your app inside IEx (Interactive Elixir) as:$ iex -S mix phx.server
运行工程,访问http://localhost:4000
$ mix phx.server

3. mix命令帮助
mix命令格式: mix task.subtask args
运行mix task 显示task 相关帮助,运行mix task.subtask显示subtask相关帮助
$ mix phxPhoenix v1.5.8Productive. Reliable. Fast.A productive web framework that does not compromise speed or maintainability.Available tasks:mix phx.digest # Digests and compresses static filesmix phx.digest.clean # Removes old versions of static assets.mix phx.gen.cert # Generates a self-signed certificate for HTTPS testingmix phx.gen.channel # Generates a Phoenix channelmix phx.gen.context # Generates a context with functions around an Ecto schemamix phx.gen.embedded # Generates an embedded Ecto schema filemix phx.gen.html # Generates controller, views, and context for an HTML resourcemix phx.gen.json # Generates controller, views, and context for a JSON resourcemix phx.gen.live # Generates LiveView, templates, and context for a resourcemix phx.gen.presence # Generates a Presence trackermix phx.gen.schema # Generates an Ecto schema and migration filemix phx.gen.secret # Generates a secretmix phx.new # Creates a new Phoenix v1.5.8 applicationmix phx.new.ecto # Creates a new Ecto project within an umbrella projectmix phx.new.web # Creates a new Phoenix web project within an umbrella projectmix phx.routes # Prints all routesmix phx.server # Starts applications and their servers
4. 参考链接
https://elixirschool.com/blog/instrumenting-phoenix-with-live-dashboard/
