Skip to content
Kingfree edited this page Jan 3, 2017 · 15 revisions

必要文件(准备工作)

  1. 评测系统主程序打包需要如下插件:Bootstrap, MathJax, SyntaxHighlighter, jQuery, kindeditor。请务必打包这些插件以调用。这里有一个打包过的 https://github.com/kingfree/cogs/blob/master/plugins.7z
  2. 评测系统数据库使用 phpMyAdmin 打包成压缩的 SQL 文件,如cogs.sql.zip
  3. 评测系统以前上传的图片分散在 mw, upload, images 中,请一并打包。其中uploadimages应该链接(ln -s)到 COGS 程序目录。
  4. COGS 程序目录可以直接打包,也可以从 GitHub 上下载最新版本(安装完成软件后在服务器目录执行 git clone https://github.com/kingfree/cogs )。
  5. 评测系统的测试数据在 grading_data 中,其中也有程序运行目录,请打包(此包较大)。
  6. 评测系统的用户提交的代码在 cogs_data 中,亦打包。
  7. 对于评测系统的旧版本和IE版本,以及局域网浏览器下载地址,可选打包。

必要软件

  1. 安装 Linux 系统,建议使用最近的 Ubuntu LTS 版本,为 /home 单独分区以防止重装系统数据丢失。
  2. 安装 Apache 服务器,sudo apt-get install apache2
  3. 安装 MySQL 数据库,sudo apt-get install mysql-server,设置 MySQL 的 root 用户密码。
  4. 安装 PHP 解析器,sudo apt-get install php5。然后编辑/etc/php5/apache2/php.ini配置文件设置 PHP 的参数(如上传文件大小限制等)。
  5. 安装 phpMyAdmin 管理软件,sudo apt-get install phpmyadmin,设置服务器为 apache(空格选中回车确定) ,确认 MySQL 的 root 用户密码,设置 phpMyAdmin 的 root 用户密码。
  6. 安装 Pascal 和 C/C++ 编译器,sudo apt-get install lazarus build-essential
  7. 安装 git/subversion 代码版本控制器,sudo apt-get install git-all subversion
  8. 安装 SSH 用以远程访问,sudo apt-get install ssh
  9. 亦可配置 FTP 服务器等。

迁移步骤

  1. 建立评测系统用户syzx,将备份好的系统和数据解压到该用户目录中,编辑/etc/apache2/sites-available/default,设置根目录路径为/home/syzx/www/,最后有必要有一个斜杠。
  2. 在浏览器中访问localhost/phpmyadmin/,输入用户名密码后,选择“权限——添加新用户”,用户名密码自定(例如用户名为cogs),主机为本地,并创建与用户同名的数据库并授予所有权限。然后选择该新建的数据库,选择“导入”,将之前的备份数据库导入进来。
  3. 解包备份的各种打包。
  4. 复制cogs/include/default.env.inc.phpcogs/include/env.inc.php,修改数据库相关设置,然后便可直接通过 IP 地址来访问了。
  5. 评测机随系统存放在在cogs/grader中,所以只要在评测机列表中添加此地址即可。亦可修改相关评测参数等等等……
  6. 评测机需要一个非系统的timelimit程序,我将其打包在grader中,请复制到操作系统的/bin下面。

下面是一个最终可用的目录结构:

/home/syzx/
├── cogs_data
│   ├── backup
│   ├── comp
│   └── source
├── grading_data
│   ├── comp
│   ├── competition
│   ├── gradecompile
│   └── testdata                              //测试数据
├── www
│   ├── Bootstrap
│   ├── browsers.php
│   ├── cogs                                  //COGS主程序
│   │   ├── admin
│   │   ├── contest
│   │   ├── discuss
│   │   ├── docs
│   │   ├── images -> /home/syzx/www/images
│   │   ├── include
│   │   ├── index.php
│   │   ├── mail
│   │   ├── page
│   │   ├── problem
│   │   ├── style
│   │   ├── submit
│   │   ├── upload -> /home/syzx/www/upload/
│   │   └── user
│   ├── cogs_back                             //COGS旧版
│   ├── cogs_ie                               //COGS IE版
│   ├── downloads
│   ├── images
│   ├── index.php
│   ├── jQuery
│   ├── kindeditor
│   ├── MathJax
│   ├── mw
│   ├── SyntaxHighlighter
│   └── upload
└── 其他
Clone this wiki locally