群晖中安装PHPEMS 6.1在线模拟考试系统
文章目录
前言
群晖通过Web Station可以很轻松的发布自己的网站,建立博客,分享照片等,这里介绍如何使用Web Station搭建PHPEMS在线考试系统。
一、PHPEMS是什么?
PHPEMS系统,是一个开源的中文在线考试系统,该系统基于PHP进行开发,是一款集在线考试、视频播放等功能,上手操作简单的国产精品系统。
二、安装步骤
1.群晖中安装相关软件
(1)Web Station
(2)Apache HTTP Server 2.2
(3)PHP 7.0 (PHPEMS支持7.0>=PHP>=5.4)
(4)phpMyAdmin
(5)MariaDB 5(PHPEMS不支持MariaDB 10)
2.在Web Station中配置PHP
由于PHPEMS使用PDO访问数据库,这里不设置好将无法访问数据库。
。
后面登陆后台管理无法显示验证码,同样需要在PHP设置中勾选gd扩展的支持。
3.PHPems下载与安装
官方网站提供了最新版本的下载地址。
下载后在解压的文件夹的help目录中有《PHPems在线考试系统使用手册》的文档,根据此文档的步骤安装即可,需要注意的是,对于群晖系统来说,服务器根目录直接就是web目录(安装完Web Station后会自动生成)。
三、补充问题
1. 试题库无法导出
由于群晖中PHP设置中,默认没有勾选iconv扩展模块,而导出试题库的脚本中使用到了iconv函数进行字符转换,从而导致出错,解决方法,就是在php设置中勾上iconv。
2. 在答题时,工具栏没有公式编辑按钮
原因:在js中的编辑框初始化中的工具栏设置里没有添加Mathjax工具。
解决:修改files/public/js/pe.app.js,在function initEditor()函数中的toolbar里的insert后面的items:中添加“Mathjax”
{ name: 'insert', items: [ 'CodeSnippet', 'Image', 'Mathjax', 'ckeditor_wiris_formulaEditor', 'ckeditor_wiris_formulaEditorChemistry', 'Table', 'HorizontalRule', 'SpecialChar'] },
3. 教师在阅卷时,不显示公式
原因:header.tpl中没有加渲染公式的MathJax.js。
解决:修改app/exam/tpls/teach/header.tpl,即
<script src="files/public/js/ckeditor/ckeditor.js"></script> //其后添加
<script src="files/public/js/ckeditor/js/MathJax.js?config=TeX-AMS_HTML"></script> //增加此行
4. 手机端答题,不显示公式
原因:header.tpl中没有加渲染公式的MathJax.js。
解决:修改app/exam/tpls/phone/header.tpl,即
<script src="files/public/js/ckeditor/js/MathJax.js?config=TeX-AMS_HTML"></script>//增加此行
<script src="files/public/js/pe.mobile.js"></script>
5.手机端强化强化训练时,任何题型的答题界面都是4个选项
原因:判断题型的语句有问题 解决:参考电脑端的代码app/exam/tpls/app/exercise_paper.tpl修改app/exam/tpls/phone/exercise_paper.tpl。
在
<li class="unstyled">
<div class="rows">
<p>{x2;realhtml:v:question['questionselect']}</p>
</div>
</li>
前加
{x2;if:!$questype[v:question['questiontype']]['questsort'] && $questype[v:question['questiontype']]['questchoice'] != 5}
后加
{x2;endif}
将接下来的
{x2;if:$questype['questsort']}
改为
{x2;if:$questype[v:quest]['questsort']}
6.主观题批改时,题目不显示公式
原因:users_decide.tpl中标题项输出格式问题。 解决:参考标准答案的输出方式,将
<td>标题:</td>
<td>{x2;eval: echo strip_tags(html_entity_decode(v:question['question']))}</td>
改为:
<td>标题:</td>
<td>{x2;realhtml:v:question['question']}</td>
7.课件上传大小限制在20.5MB
原因:与课程相关的模板代码在app\course\tpls中,其\app\course\tpls\master和\app\course\tpls\teach目录中,分别用于管理员和教师管理课程。在header.tpl中引用了files/public/js/pe.master.js,而在pe.master.js文件中指定的上传文件大小为20480000,因此上传文件大小被限制在了20.5MB。 解决:修改files/public/js/pe.master.js文件,在function inituploader()中,var maxsize = ‘20480000’;设置了上传文件的大小限制,可更改该值来改变上传大小的限制。
8.浏览器窗口宽度变窄后,水平滚动条无法刷出隐藏的登录及导航栏
问题:当浏览器窗口大小变化时,主要是宽度变窄时,导航栏的内容不能全部显示,此时拖动底部的滚动条,右侧显示空白,无法显示隐藏的内p容。 原因:追踪代码发现调用了\files\public\css\pe.less,在该文件中指定了网页的样式。其中topbar-box和nav的宽度设置为固定值1400p,而其对应的父元素topbar和header中未指定宽度,即采用默认的百分比(100%),也就是实际的窗口宽度。当窗口宽度变窄时,topbar-box和nav的宽度将大于其父元素的宽度,根据topbar和header中关于溢出内容设置为隐藏,因此就看不到其余的导航栏内容了。同时底部的滚动条时针对content的,topbar和header的宽度始终等于浏览器的实际宽度,因此,拖动滚动条也无法显示隐藏的内容。 解决:改变其父元素的最小宽度,使其最小宽度也为1400p即可。修改如下:
.topbar{
&{
min-width: @pgwidth; //增加此行,其中@pgwidth设置为1400px,在文件开始出已设置
height: 40px;
background-color: #4f4f4f;
border-bottom: 1px solid #4f4f4f;
overflow: hidden;
clear: both;
}
......
.header{
&{
min-width: @pgwidth; //增加此行
height: 75px;
background-color: @headerbgcolor;
color: #3c3c3c;
border-bottom: 1px solid @bgcolor;
clear: none;
overflow: hidden;
}
......
9.教师上传的课件无法播放
问题:管理员上传的课件能正常播放,而教师上传的课件无法播放 原因:教师上传课件的模板缺少一行代码,没有将课件的类型记录下来,在提交时发生了错误,因此无法将课件的类型及路径写入数据库。 解决:修改\app\course\tpls\teach\content_add.tpl文件
<input type="hidden" name="submit" value="1">
<input type="hidden" name="args[coursemoduleid]" value="{x2;$moduleid}"> //增加此行
<input type="hidden" name="args[coursecsid]" value="{x2;$courseid}">