ExamStack2
考试系统部署方案
修订控制页
次序 1 版本 V1.0 修订人 jakee 修订日期 2016-02-26 修订摘要 初稿发布 Jakee.cc
1 概述 1.1 简介
ExamStack是国内首款一款基于JAVA与MYSQL开发的网络考试系统。它可以稳定、顺畅的运行在
Windows与Linux平台上。您可以通过它快捷方便的创建试题和题库,发布试卷,组织考试,系统自动批改。高度的可配置性和灵活性使得它可以被应用于很多领域。
软件采用GPL协议,完全开放且免费,并且有固定的开发团队提供技术支持 。
在ExamStack考试系统第一版的基础上,我们进行了大量代码重构,同时也对数据模型做了部分调
整。为了减小学员考试交卷时大量并发带来的系统风险,我们尝试采用成熟的消息队列框架RabbitMQ来解决这一问题,因此我们的数据库以及系统的架构同第一版相比,发生了不小的变化。
1.2 部署要点
?Management.war和Portal.war需要部署在同一个目录下。
?Examstack增加了培训功能,因为需要保存培训材料,所以请留出足够的磁盘空间(以实际需要为准)。 ?要保证RabbitMQ服务状态为运行状态。
?要保证ScoreMarker状态为运行状态,同时ScoreMarker调用服务地址要配置正确。
2 应用服务器安装配置 2.1 服务器安装部署 2.1.1 服务器配置
?操作系统:Linux、Windows ?内存:最低2G,推荐8G
2.1.2 java运行环境 ?java 8
2.1.3 服务器环境 ?Tomcat 8 ?RabbitMQ ?MySql 5.0以上
2.2 应用部署 2.2.1 数据库
?在MySql中新建一个数据库examstack,字符集使用utf8 -- UTF-8 Unicode ?使用官网提供的examstack.sql还原examstack ?设置好对应的访问权限
2.2.2 RabbitMQ组件 ? Erlang安装
RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境.
从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包,Linux和MacOSX下载的版本
或直接在 http://www.erlang-solutions.com/section/132/download-erlang-otp下载的对应版本的安装包,省的自己配置和安装了
然后解压下载的gz包 tar zxcf *.tar.gz 或rpm包(esl-erlang_18.2-1~centos~6_amd64.rpm) 依赖包检测:
rpm -q make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 1) rpm包 (centos/redhat)
yum install esl-erlang_18.2-1~centos~6_amd64.rpm
2) Source .tar.gz
wget http://erlang.org/download/otp_src_18.2.1.tar.gz tar -zxf otp_src_18.2.1.tar.gz cd otp_src_18.2.1 ./configure make
sudo make install
最好不要用 --prefix 指定 erlang 安装目录,默认安装到 /usr/lib/erlang,改了安装 rabbitmq 就不方便。
? Rabbitmq安装 1)rpm包
#wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.0/rabbitmq-server-3.6.0-1.noarch.rpm #rpm -ivh rabbitmq-server-3.6.0-1.noarch.rpm --force --nodeps 或yum install rabbitmq-server-3.6.0-1.noarch.rpm PS:/usr/lib/rabbitmq
2)Binary .tar.xz #tar -Jxvf Binary .tar.xz #mkdir /usr/lib/rabbitmq
#ln -s /u01/rabbitmq_server rabbitmq //建立软链接
#cd rabbitmq/sbin,./rabbitmq-server -detached //可以实现后台启动 修改/etc/profile,添加环境变量 #set rabbitmq environment
export PATH=$PATH:/opt/rabbitmq/sbin source profile使得文件生效
cd /opt/rabbitmq/sbin,./rabbitmqctl stop关闭rabbitmq
3)Source .tar.xz
#tar -Jxvf Source .tar.xz-C /opt #cd /opt/rabbitmq_server
#make TARGET_DIR=/usr/local SBIN_DIR=/usr/local/sbin MAN_DIR=/usr/local/man #make install
? 启动rabbitmq,并验证启动情况
#rabbitmq-server --detached &ps aux |grep rabbitmq Starting broker... completed with 0 plugins.
? 检查端口5672是否打开
#/sbin/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT #/etc/rc.d/init.d/iptables save #/etc/init.d/iptables restart #/etc/init.d/iptables status
? 注册服务并配置开机启动 #chkconfig rabbitmq-server on #service rabbitmq-server start
? 启用维护插件(可选):
[root@localhost ~]# rabbitmq-plugins enable rabbitmq_management The following plugins have been enabled: mochiweb webmachine
rabbitmq_web_dispatch amqp_client
rabbitmq_management_agent rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect. ? 其他
一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径: 一个是环境变量的配置文件 rabbitmq-env.conf ; 一个是配置信息的配置文件 rabbitmq.config;
注意,这两个文件默认是没有的,如果需要必须自己创建。 rabbitmq-env.conf
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。 文件的内容包括了RabbitMQ的一些环境变量,常用的有: #RABBITMQ_NODE_PORT= //端口号 #HOSTNAME=