-
Notifications
You must be signed in to change notification settings - Fork 21
5.搭建
Kingfree edited this page Jan 3, 2017
·
15 revisions
- 评测系统主程序打包需要如下插件:
Bootstrap
,MathJax
,SyntaxHighlighter
,jQuery
,kindeditor
。请务必打包这些插件以调用。这里有一个打包过的https://github.com/kingfree/cogs/blob/master/plugins.7z
。 - 评测系统数据库使用 phpMyAdmin 打包成压缩的 SQL 文件,如
cogs.sql.zip
。 - 评测系统以前上传的图片分散在
mw
,upload
,images
中,请一并打包。其中upload
和images
应该链接(ln -s)到 COGS 程序目录。 - COGS 程序目录可以直接打包,也可以从 GitHub 上下载最新版本(安装完成软件后在服务器目录执行
git clone https://github.com/kingfree/cogs
)。 - 评测系统的测试数据在
grading_data
中,其中也有程序运行目录,请打包(此包较大)。 - 评测系统的用户提交的代码在
cogs_data
中,亦打包。 - 对于评测系统的旧版本和IE版本,以及局域网浏览器下载地址,可选打包。
- 安装 Linux 系统,建议使用最近的 Ubuntu LTS 版本,为
/home
单独分区以防止重装系统数据丢失。 - 安装 Apache 服务器,
sudo apt-get install apache2
。 - 安装 MySQL 数据库,
sudo apt-get install mysql-server
,设置 MySQL 的 root 用户密码。 - 安装 PHP 解析器,
sudo apt-get install php5
。然后编辑/etc/php5/apache2/php.ini
配置文件设置 PHP 的参数(如上传文件大小限制等)。 - 安装 phpMyAdmin 管理软件,
sudo apt-get install phpmyadmin
,设置服务器为 apache(空格选中回车确定) ,确认 MySQL 的 root 用户密码,设置 phpMyAdmin 的 root 用户密码。 - 安装 Pascal 和 C/C++ 编译器,
sudo apt-get install lazarus build-essential
。 - 安装 git/subversion 代码版本控制器,
sudo apt-get install git-all subversion
。 - 安装 SSH 用以远程访问,
sudo apt-get install ssh
。 - 亦可配置 FTP 服务器等。
- 建立评测系统用户
syzx
,将备份好的系统和数据解压到该用户目录中,编辑/etc/apache2/sites-available/default
,设置根目录路径为/home/syzx/www/
,最后有必要有一个斜杠。 - 在浏览器中访问
localhost/phpmyadmin/
,输入用户名密码后,选择“权限——添加新用户”,用户名密码自定(例如用户名为cogs
),主机为本地,并创建与用户同名的数据库并授予所有权限。然后选择该新建的数据库,选择“导入”,将之前的备份数据库导入进来。 - 解包备份的各种打包。
- 复制
cogs/include/default.env.inc.php
为cogs/include/env.inc.php
,修改数据库相关设置,然后便可直接通过 IP 地址来访问了。 - 评测机随系统存放在在
cogs/grader
中,所以只要在评测机列表中添加此地址即可。亦可修改相关评测参数等等等…… - 评测机需要一个非系统的
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
└── 其他