本教程将向您展示如何在Ubuntu 18.04服务器实例上安装Elixir和Phoenix frameworks以进行开发。
必要条件
- 一个新的Ubuntu 18.04服务器实例
- 以非root sudo用户身份登录。
升级系统
代码语言:javascript复制sudo apt-get update
安装Erlang
使用以下命令安装Erlang:
代码语言:javascript复制cd ~
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
您可以验证安装:
linuxidc@linuxidc:~/www.linuxidc.com$ erl
这将带您到Erlang shell,输出如下:
Erlang/OTP 22 [erts-10.4.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.4.2 (abort with ^G) 1>
按CTRL C两次以退出Erlang shell。
安装 Elixir
使用 apt-get
安装 Elixir:
sudo apt-get install elixir
现在您可以验证Elixir安装:
linuxidc@linuxidc:~/www.linuxidc.com$ elixir -v
这将显示以下输出:
Erlang/OTP 22 [erts-10.4.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Elixir 1.8.2 (compiled with Erlang/OTP 20)
现在您的系统上安装了Elixir 1.8.2。
安装 Phoenix
如果我们刚刚第一次安装Elixir,我们还需要安装Hex包管理器。 Hex是运行Phoenix应用程序所必需的,并且可以安装我们可能需要的任何额外依赖项。
输入此命令以安装Hex:
代码语言:javascript复制mix local.hex
现在我们可以继续安装Phoenix了:
代码语言:javascript复制mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
安装Node.js
Phoenix使用brunch.io来编译静态资产(JavaScript,css等),因此您需要安装Node.js.
安装Node.js的推荐方法是通过nvm(节点版本管理器)。
要安装nvm,我们运行以下命令:
代码语言:javascript复制curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
要找出可用于安装的Node.js版本,可以键入以下内容:
代码语言:javascript复制nvm ls-remote
这将输出:
代码语言:javascript复制输出
...
v8.8.1
v8.9.0 (LTS: Carbon)
v8.9.1 (LTS: Carbon)
v8.9.2 (LTS: Carbon)
v8.9.3 (LTS: Carbon)
v8.9.4 (LTS: Carbon)
v8.10.0 (LTS: Carbon)
v8.11.0 (LTS: Carbon)
v8.11.1 (LTS: Carbon)
v8.11.2 (LTS: Carbon)
v8.11.3 (LTS: Carbon)
v8.11.4 (LTS: Carbon)
-> v8.12.0 (Latest LTS: Carbon)
...
使用以下命令安装所需的版本:
代码语言:javascript复制nvm install 8.12.0
注意:如果您想使用其他版本,请将8.12.0替换为您想要的版本。
告诉nvm使用我们刚刚下载的版本:
代码语言:javascript复制nvm use 8.12.0
验证node已成功安装:
代码语言:javascript复制node -v
安装 PostgreSQL
您可以使用apt打包系统轻松安装PostgreSQL。
代码语言:javascript复制sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
打开PostgreSQL shell:
代码语言:javascript复制sudo -u postgres psql
将postgres密码更改为安全密码:
代码语言:javascript复制password postgres
成功更改密码后,可以退出PostgreSQL shell:
代码语言:javascript复制q
重启PostgreSQL服务:
代码语言:javascript复制sudo systemctl restart postgresql.service
安装 inotify-tools
这是一个Linux专用的文件系统监视程序,Phoenix用于实时代码重新加载:
代码语言:javascript复制sudo apt-get install inotify-tools
创建Phoenix应用
创建一个新的应用程序:
代码语言:javascript复制mix phoenix.new ~/phoenix_project_test
如果命令返回以下错误:
代码语言:javascript复制** (Mix) The task "phx.new" could not be found
你可以用以下命令修复它:
代码语言:javascript复制mix archive.install https://raw.githubusercontent.com/phoenixframework/archives/master/phx_new.ez
现在重新运行命令创建一个测试Phoenix应用程序:
代码语言:javascript复制mix phoenix.new ~/phoenix_project_test
使用上一步设置的密码修改配置文件中的PostgreSQL密码:
代码语言:javascript复制nano config/dev.exs
现在将成功创建应用程序。移动到应用程序文件夹并启动它:
代码语言:javascript复制cd ~/phoenix_project_test
mix ecto.create
mix phx.server
现在Phoenix应用程序已经启动并在端口4000上运行。