美文网首页iOS Developer
Swift Perfect - Ubuntu 服务器部署

Swift Perfect - Ubuntu 服务器部署

作者: LeeCen | 来源:发表于2017-07-05 18:01 被阅读509次
    image.png

    引言

    Perfect 是一个完整和强大的工具箱,框架和应用程序服务器为Linux,iOS和MacOS(OS X)。它提供了Swift工程师为开发面向客户端和服务器端应用程序的Swift编程语言开发轻量级,可维护,可扩展的应用程序和其他REST服务所需的一切。
    接下来几篇我对 Perfect 框架进行记录。感兴趣的可以看:
    Swift Perfect - Ubuntu 服务器部署
    Swift Perfect - 七牛上传文件
    Swift Perfect - iOS消息推送(APNs)之获取 APNs 授权码
    Swift Perfect - 使用 systemd 命令服务器项目后台运行
    Ubuntu 环境下 Nginx 的安装部署
    Swift Perfect - Nginx 配置 HTTPS 服务器

    个人例子

    以下是我使用 Perfect 写的 (如果有能帮助到大家的地方,希望能点个赞,顺便给GitHub上点个赞)
    Github:https://github.com/LeeCenY/iRent

    开发环境 版本
    Swift 3.0.2
    Perfect 2.0
    Ubuntu 16.04

    第一种:使用脚本安装(推荐)

    使用 https://github.com/PerfectlySoft/Perfect-Ubuntu 部署 Swift 与 Perfect

    第二种:手动安装

    Swift 安装最好选择3.0版本

    • 更新 apt-get 包管理工具

    apt-get update

    • 安装 Swift 依赖

    sudo apt-get install clang libicu-dev

    • 根据Ubuntu的版本选择对应下载Swift
    image.png
    • 导入 PGP 密钥(两种方法)
    • 方法一:
    gpg --keyserver hkp://pool.sks-keyservers.net \
          --recv-keys \
          '7463 A81A 4B2E EA1B 551F  FBCF D441 C977 412B 37AD' \
          '1BE1 E29A 084C B305 F397  D62A 9F59 7F4D 21A5 6D5F' \
          'A3BA FD35 56A5 9079 C068  94BD 63BC 1CFE 91D3 06C6'
    
    • 方法二:
    wget -q -O - https://swift.org/keys/all-keys.asc | \
      gpg --import -
    
    • 下载Swift

    wget https://swift.org/builds/swift-3.0.2-release/ubuntu1604/swift-3.0.2-RELEASE/swift-3.0.2-RELEASE-ubuntu16.04.tar.gz

    • 解压

    tar xzf swift-3.0.2-RELEASE-ubuntu16.04.tar.gz

    • 更改文件名

    mv swift-3.0.2-RELEASE-ubuntu16.04 swift

    • 把Swift目录加入到环境变量

    echo "export PATH=/root/swift/usr/bin:"${PATH}"" >> ~/.bashrc
    source ~/.bashrc

    • 执行 swift --version 命令查看Swift环境是否设置成功

    Swift version 3.0.2 (swift-3.0.2-RELEASE)
    Target: x86_64-unknown-linux-gnu

    Ubuntu 部署

    • 安装 git

    sudo apt-get install git

    • 安装 Perfect 依赖 OpenSSL、libssl-dev和uuid-dev

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

    • 把 Perfect 官方的示例 git 下来

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

    • 下载完,打开 PerfectTemplate 文件

    cd PerfectTemplate

    • 编译

    swift build

    • 运行

    .build/debug/PerfectTemplate

    • 运行成功返回此类似信息

    [INFO] Starting HTTP server localhost on 0.0.0.0:8181

    swift build 过程可能会出现的问题
     ln -s /usr/include/libmongoc-1.0/ libmongoc-1.0
      或
      ln -s /usr/include/libmongoc-1.0 /usr/local/include/libmongoc-1.0 
    
    • 有一些报错可能是有些依赖在 swift build 时 clone 不是最新版本,我以下两个依赖出现这样的情况
    
     .Package(url: "https://github.com/SwiftORM/MongoDB-Storm.git", majorVersion: 1),
     .Package(url: "https://github.com/PerfectlySoft/Perfect-RequestLogger.git", majorVersion: 1),
    
    

    更新依赖:
    swift package update
    swift build

    • SPM命令包括:

    swift package update 更新依赖关系
    swift build 构建一个快速的包装
    swift build -c release 构建一个快速发布的代码
    swift package generate-xcodeproj 从Swift代码创建或更新Xcode项目
    swift package resolve 获取所有的依赖关系

    • 还有一些错误可能是有些依赖Swift版本不兼容问题(最好安装Swift3.0版本)
    image.png image.png

    快速安装 Swift 与 Perfect

    https://github.com/PerfectlySoft/Perfect-Ubuntu

    使用 Perfect StORM 的嵌套对象的示例(SQL数据库之间关系)

    https://github.com/iamjono/NestedObjectsExample

    尾巴

    在 Ubuntu 部署遇到坑多,几乎快要 “从入门到放弃”,最后无意在Slack 看到 Perfect-Ubuntu,心想再试一试,再不行就准备“从Vapor入门到。。”(Vapor部署成功,坑少),最后这Perfect-Ubuntu解决了数据库的问题部署成功!

    学习资料 :
    Perfect 官网
    Swift/Perfect部署到Ubuntu上
    Perfect 网络框架的应用 —— 基本方法、MySQL连接和Cpp代码接入
    基于Perfect的swift服务器开发
    全栈Swifter:一、Perfect框架初识

    相关文章

      网友评论

        本文标题:Swift Perfect - Ubuntu 服务器部署

        本文链接:https://www.haomeiwen.com/subject/reeqhxtx.html