利用远程服务器搭建Anki服务

为什么要搭建自己的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

配置过程可以参看 这篇文章

你可能感兴趣的:(利用远程服务器搭建Anki服务)