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
apt-get update
sudo apt-get install clang libicu-dev
image.png
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 -
tar xzf swift-3.0.2-RELEASE-ubuntu16.04.tar.gz
mv swift-3.0.2-RELEASE-ubuntu16.04 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
sudo apt-get install git
sudo apt-get install openssl libssl-dev uuid-dev
git clone https://github.com/PerfectlySoft/PerfectTemplate.git
cd PerfectTemplate
swift build
.build/debug/PerfectTemplate
INFO Starting HTTP server localhost on 0.0.0.0:8181
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
swift package update 更新依赖关系 swift build 构建一个快速的包装 swift build -c release 构建一个快速发布的代码 swift package generate-xcodeproj 从Swift代码创建或更新Xcode项目 swift package resolve 获取所有的依赖关系
image.png
image.png
在 Ubuntu 部署遇到坑多,几乎快要 “从入门到放弃”,最后无意在Slack 看到 Perfect-Ubuntu,心想再试一试,再不行就准备“从Vapor入门到。。”(Vapor部署成功,坑少),最后这Perfect-Ubuntu解决了数据库的问题部署成功!
学习资料 : Perfect 官网 Swift/Perfect部署到Ubuntu上 Perfect 网络框架的应用 —— 基本方法、MySQL连接和Cpp代码接入 基于Perfect的swift服务器开发 全栈Swifter:一、Perfect框架初识