阿里雲主機(VPS主機)上搭建Anki伺服器及Anki伺服器搭建方案分析

背景簡介:

大家都知道Anki是一款優秀的記憶軟體,擁有優秀的記憶演算法,高度可定製性,跨幾乎所有平台等諸多優點。但由於AnkiWeb的伺服器在國外,國內同步的同步速度真的是相當的慢- -,如果只有卡片只有文字內容還能接受,如果記憶庫中有許多媒體文件(圖片,音頻等),同步速度根本沒法忍- -...如果手動同步,又太麻煩(好吧其實是我懶- -),還好我們可以通過自己搭建伺服器的辦法達到較快的同步速度。

適用人群:

  • 被Anki伺服器同步速度慢困擾的

  • 有錢(租用雲主機)

  • 有閑(搭建伺服器是很麻煩的一件事情,各種踩坑)

  • 願意折騰(我不會告訴你我折騰了一整天加一個上午才全部搞定,真是扎心ヽ(≧□≦)ノ
  • 需要同步的設備為安卓手機/平板windows PC,IOS不支持修改成自己的同步伺服器。

目前自建Anki伺服器的教程相當少,只有知乎上的兩三篇文章,這也是我寫這個教程原因之一。

搭建伺服器的可選方案:

  • 在本地搭建(樹莓派,筆記本,安卓手機等)/在雲端搭建(阿里雲,騰訊雲等...)

  • 基於windows平台搭建/基於linux

如果要實現24h隨時同步,伺服器需要24h開機,對個人來說,未免太費電。2333...

因此我想到的最適合個人的解決方案應該是在雲端基於linux搭建Anki同步伺服器。(也試過用windows,但成功與否似乎看運氣- -,又總是出現不明錯誤,遂放棄- -)

其他方案可參考文末的參考資料。

回到主題,本文簡單介紹在阿里雲主機(基於Linux)上搭建自己的Anki伺服器,不廢話了,開始嘿嘿。

雲主機的知識在這裡詳細介紹,可以大致理解為一台運行在雲端的完整的個人電腦(說錯了不要打我 : P),可選windows也可選linux。阿里和騰訊雲都有針對大學生的優惠政策,阿里9.9元/月,騰訊8元/月,配置略有不同,不過搭建一個Anki伺服器都綽綽有餘,個人覺得這個價格相當划算。(感謝兩位馬叔叔??)

由於我自己用的搭載在阿里雲的Anki伺服器已配置完成,穩定使用,故以下以騰訊云為例,並沒有多大區別,標題似乎有誤(不管了 就這樣??)

1.申請雲主機,網址自行百度

阿里雲

騰訊雲

2.在雲主機上安裝linux(這裡選用centos 7版本)

登錄雲主機

登錄linux系統,使用前面設置過的用戶名與密碼

因為我對vim編輯器使用不熟練,後面的文檔修改乾脆使用圖形化界面下修改,於是先給系統安裝圖形化安裝包。

3.安裝桌面組件包

yum -y groupinstall "Server with GUI" 安裝圖形化程序組n

ps.安裝要等好久- -

啟動桌面

startxn

系統會自動重啟。

成功進入桌面環境

4.安裝ankiserver

在命令行中執行:

easy_install AnkiServern

安裝成功測試命令

ankiserverctl.pyn

看到如圖結果即安裝AnkiServer服務成功

5.建立ankiserver配置文件

從文件管理器進入目錄

/usr/lib/python2.7/site-packages/AnkiServer-2.0.6-py2.7.egg/examples/

把example.ini 文件複製到 /root下

重命名為production.ini

修改production.ini文件內容並保存

host= x.x.x.x #自己伺服器的內網地址也可是區域網IPnallowed_hosts=0.0.0.0 #允許同步的客戶端ip地址,使用0.0.0.0表示允許任何ip地址連接n

6.添加用戶

這裡添加的用戶是將來在Anki客戶端登錄時使用的用戶,使用以下指令添加用戶,然後輸入對應的密碼

ankiserverctl.py adduser username #usename替換為你的用戶名,如xiaomingnankiserverctl.py lsuser #列出用戶列表,能看到上一步添加的用戶即為成功n

7.測試伺服器

調試模式:#ankiserverctl.py debug

如果沒有報錯,則可以正常的運行了。

  • 故障處理

在測試伺服器的時候,我這裡出現了這樣的報錯:

Anki requires a UTF-8 localen

這個錯誤是由於系統的編碼不是UTF-8所致,因此我們只要改變編碼即可,可以使用以下的方法改變編碼:

export LC_ALL="en_US.UTF-8"n

  • 調試模式運行:

ankiserverctl.py debugn

  • 關閉命令行窗口,重新進入,正常運行命令

ankiserverctl.py startn

8.外網測試能否連上埠

埠掃描 - 站長工具

填入外網IP及埠27701--狀態開放

成功標誌:外網ip,及埠可被檢測到開放狀態

至此在伺服器端的配置已經告一段落了,下面是同步端(需要同步的安卓手機,電腦等,IOS設備不支持自己搭建伺服器)的配置

8.同步端的(軟體端)配置

看這篇文章,我搬運過來,謝謝原作者。

Linux 下自建Anki伺服器 - 知乎專欄

8.1 ANKI桌面版設定

開啟插件文件夾

新增一個txt擋案,檔名修改為mysyncserver.py。

文件內容如下

import anki.syncnanki.sync.SYNC_BASE = http://192.168.0.100:27701/nanki.sync.SYNC_MEDIA_BASE = http://192.168.0.100:27701/msync/n

IP自行修改為本機區網IP

保存後,重啟anki即可測試同步。

8.2 Android版anki(AnkiDroid)設定

ps.ios目前無法自定義server IP。

網址要注意ankiserver預設是使用http而不是https

其中桌面版和安卓版中的IP地址都改成雲主機的外網IP即可,埠號保持27701不變。

配置完成後,記得及時給雲主機續費,雲主機就會不辭辛勞的在雲端工作,給你提供24小時的同步服務啦~

想在哪裡學就在哪裡學,想什麼時候學就在什麼時候學,媽媽再也不用擔心我的學習啦~

現在開始享受飛一般的,隨時隨地的,多平台Anki同步服務吧~

參考資料:

Linux 下自建Anki伺服器 - 知乎專欄

利用遠程伺服器搭建Anki服務

自建ANKI同步伺服器(使用AnkiServer),運行環境windows。 - 知乎專欄

【英語閱讀背單詞】Anki自建伺服器教程

AnkiServer 2.0.6
推薦閱讀:

雲棲大會Clouder Lab六劍齊發,學技能拿認證模式受熱捧
阿里雲大學與中科院計算所成立「大數據與智能計算工作委員會」
教育部阿里雲聯合推進雲計算人才培養首批9本教材出版
機器學習PAI為你自動寫歌詞,媽媽再也不用擔心我的freestyle了(提供數據、代碼)
驚爆 | 貓哥獨家連線阿里巴巴未來CEO!

TAG:Anki知识记忆工具 | 阿里云 | AnkiDrive |