其实编译 Servatrice 服务器挺简单的,只是官方没专门写这部分的文档。基本上可以完全参考 Cockatrice 客户端的编译文档 Compiling Cockatrice (Linux)

  • 只要在 cmake 步骤时注意加上 -DWITH_SERVER=1 参数就行,这样服务器端就会随着客户端一起完成编译(服务器端似乎不能独立完成编译)。
  • 再就是注意编译环境的准备,提前安装必要的类库就行,其中最重要的是 libqt5sql5-mysqllibmysqlclient-dev ,因为服务器端的大量高级功能都依赖 MySQL 服务。
  • 最后根据 Setting up Servatrice 调整一下配置文件设置就差不多了。

在 Debian Stable 下安装 Servatrice 的完整过程

源代码获取及目录准备:

  1. https://github.com/Cockatrice/Cockatrice/releases 下载最新版本的源代码压缩包,并解压。
  2. 进入解压出来的目录,执行以下代码
    mkdir build
    cd build

编译环境准备:

  1. 基本编译环境和类库依赖:
    apt-get install git build-essential g++ cmake \
        libprotobuf-dev protobuf-compiler \
        qt5-default qttools5-dev qttools5-dev-tools \
        qtmultimedia5-dev libqt5multimedia5-plugins libqt5svg5-dev libqt5sql5-mysql
  2. 补充 MySQL 连接类库:
    apt-get install libmysqlclient-dev
  3. 升级 cmake 版本(Servatrice 要求 cmake 版本大于 3.10,Stable 环境不满足要求,所以得把 Testing 环境的 cmake 弄进来):
    1. 在文件 /etc/apt/sources.list 最后加入如下两行:
      deb http://ftp.us.debian.org/debian/ stretch main contrib
      deb-src http://ftp.us.debian.org/debian/ stretch main contrib
    2. 更新 apt-get 依赖树:
      apt-get update
    3. 重新安装 cmake 新版本:
      apt-get install cmake
    4. 删除刚才在 /etc/apt/sources.list 添加的两行,更新依赖树回到标准的 Stable 版本,以防其他软件包的版本受到污染。
      apt-get update

开始编译软件:

  1. 这时已经在刚才建立的 build 目录中了。
  2. 制作同时包含客户端和服务器端的软件包:
    cmake .. -DWITH_SERVER=1
    make package
  3. 编译完成得到一个 deb 格式文件,安装它:
    dpkg -i Cockatrice*.deb
  4. 执行 servatrice 指令,已经可以得到一个默认配置的匿名鸡蛇服务器端运行在 4747 端口了。

调整配置文件设置:

  1. 使用源代码自带的参考配置文件作为调整基础:
    cp /usr/share/servatrice/servatrice.ini.example /etc/servatrice.ini
  2. 参考 Setting up Servatrice 文档,启用用户注册、游戏录像保存等功能。
  3. 指定以新的配置文件来启动服务:
    servatrice --config /etc/servatrice.ini

利用 Supervisor 配置 Servatrice 自动启动:

  1. 可参考类似的文档 用 Supervisor 运行 Shadowsocks
  2. 安装 Supervisor 软件包:
    apt-get install supervisor
  3. 编辑 /etc/supervisor/conf.d/servatrice.conf 文件,加入如下内容(原先应该不存在这个文件):
    [program:servatrice]
    command=servatrice --config /etc/servatrice.ini
    autorestart=true
    user=nobody
  4. /etc/default/supervisor 最后加一行:
    ulimit -n 51200
  5. 让 Supervisor 重新载入设置:
    service supervisor start
    supervisorctl reload
  • 如果遇到问题,可以检查日志:
    supervisorctl tail -f servatrice stderr
  • 如果修改了 servatrice 配置 /etc/servatrice.ini, 可以重启 servatrice:
    supervisorctl restart servatrice

其他可以考虑调整的:

  • 配置一下各种定时维护脚本,比如定期删除历史数据,以维持 MySQL 数据库在体积比较精简的状态。(脚本在 cockatrice 源代码中能找到)
  • 删除 gcc 包和 cmake 包,以避免服务器万一被黑时,黑客能比较容易地编译自己的工具包。
    apt-get remove gcc make
    apt-get auto remove
GlossyBlue theme adapted by David Gilbert
Powered by PmWiki