阿里云主机(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"      \\ 安装图形化程序组

ps.安装要等好久- -

启动桌面


startx

系统会自动重启。
成功进入桌面环境


4.安装ankiserver

在命令行中执行:
easy_install AnkiServer

安装成功测试命令
ankiserverctl.py
看到如图结果即安装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  #自己服务器的内网地址也可是局域网IP
allowed_hosts=0.0.0.0 #允许同步的客户端ip地址,使用0.0.0.0表示允许任何ip地址连接


6.添加用户
这里添加的用户是将来在Anki客户端登录时使用的用户,使用以下指令添加用户,然后输入对应的密码
ankiserverctl.py adduser username  #usename替换为你的用户名,如xiaoming
ankiserverctl.py lsuser            #列出用户列表,能看到上一步添加的用户即为成功


7.测试服务器
调试模式:#ankiserverctl.py debug
如果没有报错,则可以正常的运行了。
  • 故障处理

在测试服务器的时候,我这里出现了这样的报错:

Anki requires a UTF-8 locale

这个错误是由于系统的编码不是UTF-8所致,因此我们只要改变编码即可,可以使用以下的方法改变编码:

export LC_ALL="en_US.UTF-8"
  • 调试模式运行:
ankiserverctl.py debug

  • 关闭命令行窗口,重新进入,正常运行命令
ankiserverctl.py start

8.外网测试能否连上端口
端口扫描 - 站长工具
填入外网IP及端口27701--状态开放

成功标志:外网ip,及端口可被检测到开放状态

至此在服务器端的配置已经告一段落了,下面是同步端(需要同步的安卓手机,电脑等,IOS设备不支持自己搭建服务器)的配置

8.同步端的(软件端)配置
看这篇文章,我搬运过来,谢谢原作者。
Linux 下自建Anki服务器 - 知乎专栏

8.1 ANKI桌面版设定

开启插件文件夹

新增一个txt挡案,檔名修改为mysyncserver.py。

文件内容如下


import anki.sync
anki.sync.SYNC_BASE = 'http://192.168.0.100:27701/'
anki.sync.SYNC_MEDIA_BASE = 'http://192.168.0.100:27701/msync/'

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
未经允许不得转载:开心小站长 » 阿里云主机(VPS主机)上搭建Anki服务器及Anki服务器搭建方案分析

相关推荐