搭建自己的Anki同步服务器

搭建自己的Anki同步服务器_第1张图片

搭建自己的Anki同步服务器

Anki自带的AnkiWeb同步服务体验较差,当你的单词库较大时,同步起来体验非常的差。因此我在腾讯云上自己搭建了Anki同步服务器。

注意:

  1. windows端只能使用2.0的旧版本
    2.0版本使用python2写的插件,2.1版本用python3写的插件,而GitHub上提供的服务器版本是基于python2.7的,所以新版本无法使用此方法来和私有服务器同步,可以和AnkiWeb同步或是下载具有同步功能的插件来同步,但是我不知道怎么写一个适合新版本的插件出来,因此使用旧版Anki。
  2. 发现一个严重的问题,桌面端和安卓端会冲突。
    桌面端和服务器同步之后,安卓端要重新下载整个库;安卓端和服务器同步后,桌面端要重新下载。尚未发现解决办法。

我在网上查到的教程都是比较老的,而且大都模仿Anki知乎专栏的这篇文章。我主要是参考了idealclover的Linux 下尝试自建Anki服务器,在此表示感激。

服务端配置

选择CentOS 7.5 x64系统

我在腾讯云上有个云服务器,关机重新安装系统,很方便,然后用putty远程登录服务器

安装AnkiServer包

# easy_install AnkiServer
报错

your setuptools is too old

“your setuptools is too old (<12)”

搭建自己的Anki同步服务器_第2张图片
可能是安装PasteScript出错

从头开始看,安装PasteScript的时候就不正常了,然后我试着pip PasteScript,机器没有pip,用easy_install 也不行,我干脆去下了个pip。
# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# python get-pip.py
然后直接
pip install AnkiServer
就好了

设置AnkiServer

~目录下创建Anki文件夹
# mkdir Anki

找到AnkiServer中示例配置的目录,我的在/usr/lib/python2.7/site-packages/AnkiServer-2.0.6-py2.7.egg/examples

复制example.ini 到我们的目录,修改为production.ini
# cp example.ini ~/Anki/production.ini

之后编辑该文档
# vim ~/Anki/production.ini

搭建自己的Anki同步服务器_第3张图片
production.ini

我用红色涂抹的是主机地址,填你的服务器的内网地址,下面的允许来访问你的服务器的机器的ip,可以枚举每个你允许的ip,也可以设置0.0.0.0 允许任何ip地址连接,然后按esc键,输入:wq保存并退出vim

# ankiserverctl.py -h
查看命令选项

搭建自己的Anki同步服务器_第4张图片
查看命令选项

输入 # ankiserverctl.py adduser 来添加用户,该命令回车后会要求你输入密码

可以查看是否成功添加了用户
# ankiserverctl.py lsuser
成功的话,你会看到自己添加的用户名

测试运行
# ankiserverctl.py debug

没有报错的话我们就可以正式运行Ankiserver了,先用Ctrl+C中止调试程序,然后
# ankiserverctl.py start

Anki2.0版Windows客户端的设置

打开插件文件夹


搭建自己的Anki同步服务器_第5张图片
搭建自己的Anki同步服务器_第6张图片

本来这里是没有这个mysyncserver.py文件的,我们创建一个
文件内容如下:

import anki.sync
anki.sync.SYNC_BASE = 'http://[你的服务器外网ip]:27701/'
anki.sync.SYNC_MEDIA_BASE = 'http://[你的服务器外网ip]:27701/msync/'

保存后,重启Anki客户端
点击同步按钮,输入自己在服务器里设置的用户名和密码,然后就像用AnkiWeb服务一样了,不过体验如丝般顺滑,而且可以同步很大的库文件

AnkiDroid安卓端设置

搭建自己的Anki同步服务器_第7张图片
搭建自己的Anki同步服务器_第8张图片
搭建自己的Anki同步服务器_第9张图片

得益于大家的力量,我成功搭建了自己的Anki同步服务器,但愿我的文章能给你提供帮助。

你可能感兴趣的:(搭建自己的Anki同步服务器)