Swift/Perfect部署到Ubuntu上[destroy]

PS本文章已某应用意义-
本人最近写了篇文章 希望点到这篇文章的直接查看(http://www.jianshu.com/p/e6c6abfa5bb1)[http://www.jianshu.com/p/e6c6abfa5bb1]
其中有关于perfect 的部署的问题

通过Perfect部署到ubuntu14:04上

1.通过手动部署
2.通过Docker

方法1:通过手动部署

  • 你需要一个ubuntu系统
    可以通过官网下载ubuntu镜像 有服务器版和桌面版下面为以命令行的方式为主(桌面版可以通过alt+control+F1切换至终端模式)

  • 更新apt-get包管理工具

$ apt-get update

  • 下载swift环境需要的编译器clang 和 软件包libicu-dev

$ sudo apt-get install clang libicu-dev

  • 下载swift版本选择对应ubuntu的版本号和对应的数字签名

  • 导入PGP Keys

$wget -q -O - https://swift.org/keys/all-keys.asc | gpg --import -

输出Good Signature from .... 表示OK,如果输出以下结果,也没关系。
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.

  • 解压并安装Swift

$ swift-DEVELOPMENT-SNAPSHOT-2016-11-01-a-ubuntu14.04.tar.gz

  • 将解压的文件改名为swift(可选)

$ mv swift-DEVELOPMENT-SNAPSHOT-2016-11-01-a-ubuntu14.04 swift

  • 把swift加入到环境变量。(swift为刚刚改名的文件夹)
echo "export PATH=/root/swift/usr/bin:\"\${PATH}\"" >> ~/.bashrc
source ~/.bashrc
  • 输入 swift 或者 swift --version即可打印相关字样,表示swift环境设置成功
  Welcome to Swift version 3.0-dev (LLVM f54fa77021, Clang 0e6c928036, Swift e013370b37). Type :help for assistance. 

接着我们下载Perfect

git clone https://github.com/PerfectlySoft/PerfectTemplate.git`

  • 安装PerfectTempalte所需的库(在Ubuntu Linux操作系统和14.04 15.10环境完美的运行。完美依赖于OpenSSL的,的libssl-dev的,和UUID-dev)

sudo apt-get install openssl libssl-dev uuid-dev

  • 打开下载完的PerfectTemplate文件夹

cd PerfectTemplate`

  • 编译

swift build`

  • 运行

.build/debug/PerfectTemplate`

  • 编译成功会返回此类似信息

    [INFO] Starting HTTP server on 0.0.0.0:8181 with document root ./ webroot

到这里服务器算是完成了
** 常见问题文章后面会提及到 **
~待续

方法2:通过Docker镜像部署(推荐

部署swift环境时会遇到各种问题,关键是如果迁移别的服务器上一切又要重新来过这里推荐用Docker的方式去部署我们的Perfect框架,后面会讲到如何通过Docker持续部署我们的代码

本文不会重点提及Docker用法但在文章的末尾会提供Docker的相关教程哈~

Docker介绍:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  • 安装docker

apt install docker.io

  • 拉取我制作好的的镜像(该镜像已经搭建好swift环境和Perfect框架了)

docker pull mubin/perfect

  • 查看镜像的ID

docker images

REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mubin/perfect          2.0                 2928a454c8a2        2 hours ago         1.124 GB 

ps:(这里的IMAGE ID是随机生成的)

  • 基于这个镜像创建一个容器

docker run -i -t -p 8000:8181 --name=XXX 2928a454c8a2

黑体斜体字是你的imageId
-p 8000:8181 的意思是将容器的端口号8181映射到服务器的8000端口上

  • 返回 ~目录

cd ~

  • 然后打开 PerfectTemplate

cd PerfectTemplate

  • 编译

swift build

  • 运行

./.build/debug/PerfectTemplate

就会看到下面的字样 返回一个ip 地址

[INFO] Starting HTTP server on 0.0.0.0:8181 with document root ./ webroot

此时我们可以通过**control + P 然后 control + Q **让一个容器后台运行,且退出容器操作界面

这是我们可以curl 0.0.0.0:8000(被映射的端口号)

curl 0.0.0.0:8000
输出
<html><title>Hello, world!</title><body>Hello, world!</body></html>
成功~

Docker 教程:https://pan.baidu.com/s/1kVwf9Yn
提取码:7n4c
待续~~

推荐阅读更多精彩内容