為什么要搭建自己的Anki服務器
- 為了提高同步的速度
- 保證自己的數據不會落到別人的手里
- 避免具有大量圖片和音頻的牌組同步時間過長
前提條件
- 需要擁有一個遠程的服務器,或者是在局域網中有自己的樹莓派之類的產品。
搭建環境
Python 2.7
pip軟件包管理工具
Ubuntu Server 16.04 LTS
具體步驟
- 安裝
AnkiServer
在命令行中執行:sudo easy_install AnkiServer
- 參考示例文件來配置自己的服務器文件:
在自己的主目錄下新建一個名字為Anki的文件夾,用來存放相關數據。
$ mkdir Anki
$ cd Anki
$ cp /usr/local/lib/python2.7/dist-packages/AnkiServer-2.0.6-py2.7.egg/examples/example.ini production.ini #拷貝配置文件
$ vi producion.ini #修改配置文件
在配置文件中,我主要修改了以下的參數:
host= 10.XX.XX.XX #自己服務器的地址也可是局域網IP
allowed_hosts=0.0.0.0 #允許同步的客戶端ip地址,使用0.0.0.0表示允許任何ip地址連接
需要注意的是:此處的host地址不可以填寫公網ip,如何服務器是搭建在云服務器上的(eg.騰訊云),那么,這個地址要寫服務器的內網IP,如下圖所示
IP地址選擇
- 添加用戶
這里添加的用戶是將來在Anki客戶端登錄時使用的用戶,使用以下指令添加用戶,然后輸入對應的密碼
$ ankiserverctl.py adduser username
- 測試服務器
調試模式:
$ ankiserverctl.py debug [configfile] # 如果配置文件就在當前目錄下,則可以不輸入配置文件的路徑
如果沒有報錯,則可以正常的運行了。
- 故障處理
在測試服務器的時候,我這里出現了這樣的報錯:
Anki requires a UTF-8 locale
然后執行以下的指令:
python2 -c "import sys; print sys.getfilesystemencoding()"
輸出的結果是:
ANSI_X3.4-1968
可以看到,這個錯誤是由于系統的編碼不是UTF-8所致,因此我們只要改變編碼即可,可以使用以下的方法改變編碼:
$ export LC_ALL="en_US.UTF-8"
- 正常運行
$ ankiserverctl.py start [cofigfile]
配置桌面端和安卓移動端的Anki
配置過程可以參看 這篇文章