安装

Phoenix 框架是用 Elixir编写的,Elixir 本身基于 Erlang语言,并利用 Erlang VM,以运行低延迟,分布式和容错系统而闻名。使用 phoenix 框架需要两种语言。按照以下步骤安装 phoenix 框架:

1. 在你的机器上安装 Elixir 。请参阅 Elixir 安装以及如何安装 Elixir 指南

2.安装 Hex 包管理器。 Hex 是运行 Phoenix 应用程序并安装我们可能需要的任何额外依赖项的必要工具。在终端或命令控制窗口中,键入:

$ mix local.hex

如果已有,此命令将安装或更新 Hex。

3. 在你的计算机上安装 Erlang 。没有 Erlang,Elixir 代码将无法编译,因为 Elixir 使用 Erlang 的 VM 进行代码编译。当你安装 Elixir 时,你可能也安装了 Erlang,但如果不是这样的话,请按照 Elixir 指南中的这些说明安装 Erlang。但是,如果你有基于 Debian 的系统,则可能需要显式安装 Erlang。

$ 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 esl-erlang

4. 在你的机器上安装 phoenix 框架。一旦我们有了 Elixir 和 Erlang,我们就可以安装 Phoenix Mix 档案了。Mix 档案是一个 Zip 文件,其中包含一个应用程序及其编译的 BEAM 文件。它与应用程序的特定版本相关联。存档是我们将用于生成我们可以构建的新的基本凤凰应用程序的内容。这是安装 Phoenix 存档的命令:

$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez

如果上面的命令无法正常工作,你可以手动下载软件包。将软件包下载到文件系统 Phoenix 归档并运行以下命令

mix archive.install /path/to/local/phoenix_new.ez

5 Plug,Cowboy 和 Ecto 是 Phoenix 框架的组件,它们将通过 mix 自动安装,如果你让 mix 安装它的依赖项,那么你将首先创建 Phoenix 项目。此外,如果你不允许混合下载这些组件,那么 mix 会告诉你稍后该怎么做。

6. 在你的计算机上安装 Node.js (不低于 v5.0.0)。这是一个可选的依赖项。 Node.js 是安装 brunch.io 依赖项所必需的。凤凰城使用 Brunch.io 来编译静态资产(javascript,css 等),默认情况下。

我们可以从 Node.js 的下载页面 。选择要下载的软件包时,请务必注意 Phoenix 需要 5.0.0 或更高版本。

Mac OS X 用户也可以通过安装的 node.js 自制

注意:io.js 是一个最初基于 Node.js 的 npm 兼容平台,不知道与 Phoenix 合作。

Debian / Ubuntu 用户可能会看到如下错误:

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"

这是因为 Debian 节点的二进制文件存在冲突:请参阅关于以下 SO 问题的讨论

无法在 Ubuntu 中使用节点包管理器安装包

有两种方法可以解决此问题:

安装 nodejs-legacy:

$ apt-get install nodejs-legacy

或创建符号链接

$ ln -s /usr/bin/nodejs /usr/bin/node

7 在你的计算机上安装数据库PostgreSQL )。Phoenix 默认配置应用程序使用它,但我们可以在创建新应用程序时通过传递 --database mysql 标志来切换到 MySQL 。PostgreSQL wiki 具有许多不同系统的安装指南

Postgrex 是一个直接的 Phoenix 依赖项,它将用于创建模型。当你创建和启动 Phoenix 项目时, Postgrex 将与其余依赖项一起自动安装。

8 inotify-tools (适用于 linux 用户)这是一个仅限 Linux 的文件系统观察程序,Phoenix 用于实时代码重新加载。 (Mac OS X 或 Windows 用户可以安全地忽略它。)

Linux 用户需要安装此依赖项。有关特定于发行版的安装说明,请参阅 inotify-tools wiki