Swift Perfect - Ubuntu 服務器部署

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框架初識

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容