如何在CentOS 7上安装Phoenix框架

Phoenix是一个新兴的基于Elixir的Web开发框架。它旨在提供高开发效率,丰富的功能和强大的运行时性能。

本教程将向您展示如何出于开发目的在Vultr CentOS 7服务器实例上安装Phoenix。

先决条件

在继续之前,我假设您具有:

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

步骤1:更新系统

sudo yum install epel-release
sudo yum update
sudo reboot

步骤2:安装Erlang

首先,您需要在系统上安装Erlang。Phoenix是用Elixir编程语言编写的框架,任何基于Elixir的应用程序都必须先编译为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外壳。

步骤3:安装Elixir

由于CentOS 7系统YUM存储库中的Elixir版本太旧了,因此您应该使用官方预编译的Elixir归档文件来安装Elixir的最新版本。

下载并解压缩最新的Elixir预编译存档:

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已安装在您的系统上。您可以通过指定每个与Elixir相关的命令的路径来运行Elixir命令,例如:

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

此命令将告诉您系统上Elixir的版本。

为了方便起见,您可以将Elixir的bin路径(以及将要安装的node.js bin路径)添加到您的PATH环境变量中:

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(可选)

如果要使用Phoenix的默认构建工具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路径已添加到PATH环境变量中。您可以使用以下命令测试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-tools

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

sudo yum install inotify-tools

步骤8:创建Phoenix应用程序

假设您要在目录中创建Phoenix应用程序~/phoenix_project_1

mix phoenix.new ~/phoenix_project_1

Y在获取和安装依赖项的过程中回答。

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

cd ~/phoenix_project_1
mix ecto.create

Y在第一次创建数据库时回答安装“钢筋”的问题。

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

mix phoenix.server

在保持当前SSH连接有效的同时,启动另一个SSH连接并修改防火墙规则以授予对您的应用程序的访问权限:

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

最后,使用网络浏览器从以下位置访问您的应用程序:

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

我们的教程到此结束。欢迎来到凤凰城!

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息