如何在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

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



Leave a Comment

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

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

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

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

在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 機器變磚。閱讀這篇文章以了解更多信息