ExamStack2
考试系统部署方案
修订控制页
次序
版本
修订人
修订日期
修订摘要
1
V1.0
jakee
2016-02-26
初稿发布
                                                       

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 免费下载mysql
•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的 /download.html 下载最新的erlang安装包,Linux和MacOSX下载的版本 
或直接在 lang-solutions/section/132/download-erlang-otp下载的对应版本的安装包,省的自己配置和安装了
然后解压下载的gz包  tar zxcf  *. 或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 .
wget /download/otp_src_18.2.
tar -zxf otp_src_18.2. 
cd otp_src_18.2.1
./configure 
make 
sudo make install 
最好不要用 --prefix 指定 erlang 安装目录,默认安装到 /usr/lib/erlang,改了安装 rabbitmq 就不方便。
• Rabbitmq安装
1)rpm包
#wget www.rabbitmq/releases/rabbitmq-server/v3.6.0/rabbitmq-server-3.arch.rpm
#rpm -ivh rabbitmq-server-3.arch.rpm --force --nodeps
或yum install rabbitmq-server-3.arch.rpm
PS:/usr/lib/rabbitmq
2)Binary .
#tar -Jxvf Binary .
#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 -Jxvf Source .-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
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的默认配置就足够了。如果希望特殊设置的话,有两个途径:
一个是环境变量的配置文件 f ;
一个是配置信息的配置文件 fig;
注意,这两个文件默认是没有的,如果需要必须自己创建。
f
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,常用的有:
#RABBITMQ_NODE_PORT=    //端口号
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE=        //配置文件的路径
RABBITMQ_MNESIA_BASE=/rabbitmq/data        //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log        //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins    //插件的路径
具体的列表见:www.rabbitmq/configure.html#define-environment-variables
2.2.3 应用软件
• 部署Portal和Management
1)将Management.war和Portal.war放到Tomcat应用程序目录(webapps)下。 
2)启动Tomcat,webapps目录下会生成两个文件夹(Management和Portal)。
3)分别进入到Management/WEB-INF/Spring和Portal/WEB-INF/Spring下修改l文件,将数据库地址、用户名和密码修改成正确的内容。修改完成后重启tomcat服务器。
需要修改的内容如下:
<property name="jdbcUrl"
value="jdbc:mysql:/*.*.*.*:3306/examstack?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="***" />
4)访问localhost:8080/Management和localhost:8080/Portal可以进入到管理后台页面和学员页面,并可以正常登陆,则应用配置成功。
注意:在完成这一步后学员考试交卷无法完成,需要部署ScoreMarker。

 • 部署ScoreMarker
1)Linux 解压scoreMarker到/opt/目录。
确认config/scoremarker.properties文件配置正确。
修改chmod 777 jsvc 文件权限

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。