如何在CentOS 7上安装Phoenix框架

・8 分钟阅读

凤凰是一种新兴的基于web的网络开发框架,它旨在提供高开发效率,丰富的功能和强大的运行时性能。

本教程会向你展示如何在CentOS 7服务器实例上安装Phoenix以进行开发。

前提条件

在继续之前,我假设你拥有:

  • 部署了新的CentOS 7服务器实例,
  • 以非根sudo用户身份登录此CentOS 7系统,

步骤1更新系统


sudo yum install epel-release
sudo yum update
sudo reboot

步骤2安装Erlang

首先,你需要在你的系统上安装Erlang ,Phoenix是用Elixir编程语言编写的框架,任何基于tcm的应用程序都必须编译成Erlang字节代码才能执行。


cd ~
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang

你可以通过以下方式确认安装Erlang :

 
erl

 

此命令将带你进入Erlang shell ,启动Erlang shell时,你会看到以下输出。


Erlang/OTP 18 [erts-7.3] [source-d2a6d81] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.3 (abort with ^G)
1>

Ctrl+C两次退出Erlang shell 。

第三步:安装Elixir

因为Centos7系统YUM存储库中的Elixir版本过时了,所以,你应该使用官方预编译的Elixir档案来安装最新版本的Elixir。

下载并解压最新的tcm预编译归档文件:


cd /usr/bin
sudo mkdir elixir
cd /usr/bin/elixir
sudo wget https://github.com/elixir-lang/elixir/releases/download/v1.2.5/Precompiled.zip
sudo yum install unzip
sudo unzip Precompiled.zip

Elixir现在安装在你的系统上,你可以通过指定每个tcm相关命令的路径来运行tcm命令,例如:


/usr/bin/elixir/bin/elixir -v

这个命令会告诉你系统上的Elixir版本。

为了方便起见你可以将Elixir的bin路径(连同要安装的node ,js bin路径)添加到你的path environment variable :

 
sudo vi/etc/profile

 

将以下行追加到文件的末尾:


export PATH="$PATH:/usr/bin/elixir/bin:/usr/bin/node-v6.1.0-linux-x64/bin"

保存和退出:

 
:wq

 

重新加载配置文件:

 
source/etc/profile

 

从现在开始,你可以运行elixir相关命令而不指定它完整路径,例如:

 
elixir -v

 

现在,通过以相同的方式运行mix命令来安装Hex软件包管理器:

 
cd ~
mix local.hex

 

在安装过程中回答Y

步骤4安装Phoenix

使用以下命令安装Phoenix :


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

在安装过程中回答Y

步骤5:安装node ,js可选

如果要使用brunch.io的默认构建工具,可以编译静态资产(javascript,css,等等),你需要安装node.js (> =5.0.0 ):


cd ~
wget https://nodejs.org/dist/v6.1.0/node-v6.1.0-linux-x64.tar.xz
sudo yum install xz
xz -d node-v6.1.0-linux-x64.tar.xz
tar -xvf node-v6.1.0-linux-x64.tar
sudo mv ~/node-v6.1.0-linux-x64 /usr/bin/

记住,在步骤3.的路径环境变量中添加了node.js路径后,你可以使用以下命令测试node.js安装:

 
node -v

 

第6步安装PostgreSQL

默认情况下,phoenix使用PostgreSQL配置应用程序。 在CentOS 7上可以使用YUM安装PostgreSQL


sudo yum install -y postgresql-server
sudo postgresql-setup initdb

启动postgresql服务:


sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service

为默认PostgreSQL用户"postgres"设置密码:


sudo -u postgres psql

在PostgreSQL shell (提示转换为postgres=#之后)中,为"postgres"设置密码:

 
password postgres

 

输入密码postgres两次,这是Phoenix首选的。

最后,使用以下命令退出PostgreSQL shell 。

 
q

 

设置数据库用户身份验证方法:


sudo vi /var/lib/pgsql/data/pg_hba.conf

查找以下部分:


# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident

修改与md5的IPv4本地连接的身份验证方法:


# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5

保存和退出:

 
:wq

 

重新启动postgresql服务:


sudo systemctl restart postgresql.service

步骤7安装Inotify工具

使用以下命令安装必需的组件"inotify-tools":


sudo yum install inotify-tools

步骤8创建Phoenix应用程序

假设你想在目录~/phoenix_project_1中创建一个Phoenix应用程序:


mix phoenix.new ~/phoenix_project_1

在获取和安装依赖项进程中回答Y

此命令为你创建应用程序目录~/phoenix_project_1 ,进入目录并创建一个数据库:


cd ~/phoenix_project_1
mix ecto.create

应答Y在第一次创建数据库时安装"rebar"

使用以下命令启动你的应用程序:

 
mix phoenix.server

 

保持当前SSH连接处于活动状态时,启动另一个SSH连接,并且修改防火墙规则以授予对应用程序的访问权限:


sudo firewall-cmd --zone=public --permanent --add-port=4000/tcp
sudo firewall-cmd --reload

最后,使用web浏览器访问你的应用程序,方法如下:


http://[your-server-IP]:4000

我们的教程结束了,欢迎使用Phoenix!

Zuoxiaojuan profile image