共计 4712 个字符,预计需要花费 12 分钟才能阅读完成。
公司培训部最近有在线考试的需求,而目前使用的在线考试的系统没有自动评分功能,全部的试题需要人工进行批阅,效率十分低下。为解决这个问题,我上网找了好多软件进行测试,但效果都不是很理想,直到遇到了 TCExam 这款开源软件。
TCExam 是基于 PHP 开发的在线考试系统,安装环境为 LAMP。其安装十分简单设置也不是很繁锁。
一、安装 LAMP 环境
虽然说 tcexam 需要的是 lamp 环境,但是官方文档中是需要通过 yum 安装的,我通过手工编译安装 lamp 环境后,在 tcexam 安装过程中遇到很多问题。所以我在这里使用的是通过 yum 安装 lamp 和其他相关的软件的。
1、安装 epel-release 源
yum install -y epel-release;
2、安装 lamp
yum install -y gd curl ImageMagick texlive zbar mysql-server php httpd php-mysql libdbi-dbd-mysql php-gd php-curl memcached
3、修改 apache 配置文件
vim /etc/httpd/conf/httpd.conf
修改 ServerName
ServerName localhost:80
4、设置 php 时区
vim /etc/php.ini
修改 date.timezone
date.timezone = "Asia/Shanghai"
5、启动相关服务
# 设置 mysql 服务
chkconfig mysqld on
service mysqld start
# 设置 apache 服务
chkconfig httpd on
service httpd start
# 设置 memcached 服务
chkconfig memcached on
service memcached start
二、下载 TCExam
1、进入网站根目录:
cd /var/www/html
2、到官网下载安装包
wget https://github.com/tecnickcom/tcexam/archive/master.zip
3、解压安装包
uzip master.zip
4、解压出来的文件夹为“tcexam-master”, 将 tcexam-master 目录下的文件全部移动到 /var/www/html 中并删除 tcexam-master 目录
mv ./tcexam-master/* .
rm -rf tcexam-master
三、设置 mysql
按照官方文档 tcexam 的安装页面是可以自动新建 tcexam 数据库并导入初始数据的,但从实际的操作的效果来看,这个功能基本上无法完成这个任务。因此我们需要手工建立数据库并导入初始数据。
1、设置 mysql 的 root 密码
tcexams 要求 mysql 的 root 密码不能为空,所以先设置 mysql 的 root 密码。
mysqladmin -u root password "newpassword";
”newpassword”是你指定的 mysql 的 root 密码
2、进行 mysql 建立数据库
mysql -uroot -p;
# 输入你设置的密码
# 新建数据库
create database tcexam;
# 退出 mysql
quit
3、导入初始化数据
1)、进入 tcexam 安装页目录
cd /var/www/html/install
2)、导入初始数据
mysql -uroot -p tcexam < mysql_db_structure.sql
mysql -uroot -p tcexam < db_data.sql
单独执行每一条语句并回车,按提示输入密码
四、关闭主机的 selinux 并清空 iptabels
1、修改 selinux 配置文件
vim /etc/selinux/config
#修改 SELINUX=enforcing
SELINUX=disabled
保存退出
2、暂时关闭 selinx
setenforce 0
3、清空 iptables 并保存
iptables -F
service iptables save
五、访问 tcexam 的安装页面
在浏览器中输入下面的地址,其中 IP 是你服务器的 IP 地址
http:\\IP\install\install.php
如果数据库是在本机的话,在页面中只需要修改下面几项:
db password 里面填写 mysql 的 root 密码
将“Drop Existing Database”和”Create New Database“后面的复选框去掉勾选。
然后单击”INSTALL”按钮完成安装
六、安全方面的设置
按照官方的文档,安装完成后需要进行以下操作,来增强程序的安全性。
1、删除安装目录并删除根目录下的 TXT 文件
cd /var/www/html
rm -rf install
rm -rf *.TXT
2、设置相关目录的属主和权限
find . -exec chown -R apache:apache {} \;
find . -type f -exec chmod 544 {} \;
find cache/ -type f -exec chmod 644 {} \;
find cache/backup -type f -exec chmod 644 {} \;
find cache/lang -type f -exec chmod 544 {} \;
find admin/log/ -type f -exec chmod 644 {} \;
find public/log/ -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
七、tcexam 配置
1、设置邮件验证
需要修改 shared/config/tce_email_config.php
# 管理员的邮件地址
$emailcfg['AdminEmail'] = 'lzl001@163.com';
#smtp 服务器
$emailcfg['Host'] = 'smtp.163.com';
#smtp 服务端口
$emailcfg['Port'] = 25; (端口默认是 25)
# 邮箱的用户名
$emailcfg['Username'] = 'lzl001@163.com';
# 邮箱的密码
$emailcfg['Password'] = '123456';
# 是否开启高度模式
$emailcfg['SMTPDebug'] = false;
2、设置默认登录语言为简体中文
需要修改 shared/config/tce_config.php
/**
* 2-letters code for default language.
*/
define ('K_LANGUAGE', 'cn');
3、修改导出 PDF 设置并设置中文字体
系统默认的设置导出的 PDF 文件内容为乱码,因此需要修改 shared/config/tce_pdf.php
先上网下载 Drod Sans Fallback-PHP 字体文件
把压缩包的三个文件 droidsansfallback.php、droidsansfallback.z 以及 droidsansfallback.ctg.z 解压到 fonts 目录下
# 修改 PDF 的主标题
define ('PDF_HEADER_TITLE', "主标题");
# 修改 PDF 的副标题(可以设置三个副标题)
define ('PDF_HEADER_STRING', "副标题 1\n 副标题 2\n 副标题 3");
# 设置 PDF 的 log,默认的图标文件放置在 images 目录下
define ('PDF_HEADER_LOGO', 'logo.png');
# 设置默认字体
define ('PDF_FONT_NAME_MAIN', 'stsongstdlight');
define ('PDF_FONT_NAME_DATA', 'stsongstdlight');
4、修改网站的 log
默认的图标文件放在./images 目录下,文件名为 logo_tcexam_118x25.png
图像的大小为 118*25,格式为 png
5、用户注册设置
修改./shared/config/tce_user_registration.php 文件
# 是否允许用户自行注册
define ('K_USRREG_ENABLED', true);
# 是否使用邮箱认证
define ('K_USRREG_EMAIL_CONFIRM', false);
# 默认的用户组 ID
# 需要先去数据库查看所需用户组的 ID
define ('K_USRREG_GROUP', 3);
# 用户注册协议地址
define ('K_USRREG_AGREEMENT', '');
# 接收注册信息的管理员邮箱
define ('K_USRREG_ADMIN_EMAIL', '');
# 需要在注册页面中显示的项目,0 禁用,1 选填项,2 必填项
/**
* Additional fields to display on registration form.
* Legal values are:
* 0 = disabled field;
* 1 = enabled field;
* 2 = required field;
*/
$regfields = array('user_email' => 0,
'user_regnumber' => 0,
'user_firstname' => 2,
'user_lastname' => 2,
'user_birthdate' => 0,
'user_birthplace' => 0,
'user_ssn' => 0,
'user_groups' => 0,
'user_agreement' => 0
);
6、tcexam 配置文件说明
1)、tcexam 主要的配置文件全部放置在./shared/config 目录下,以 tce_ 开头,.php 结尾
文件名 | 说明 |
---|---|
tce_cas.php | CAS 认证中心配置 |
tce_config | 系统通用设置 |
tce_db_config.php | 数据库配置 |
tce_email_config.php | 电子邮件配置 |
tce_general_constants.php | 系统通用常量配置 |
tce_latex.php | LaTeX 公式配置 |
tce_ldap.php | LDAP 配置 |
tce_mime.php | MIME 文件扩展名关联 |
tce_paths.php | 配置系统内的文件及文件夹 |
tce_pdf.php | PDF 文件导出设置 |
tce_radius.php | RADIUS 配置 |
tce_user_registration.php | 用户注册配置 |
2)、系统管理配置文件
这部分配置文件存放位置为 ./admin/config 目录下
文件名 | 说明 |
---|---|
tce_auth.php | 管理模块的访问级别配置 |
tce_config.php | 管理面板通用配置 |
3)、公共区域配置文件
文件名 | 说明 |
---|---|
tce_auth.php | 公共模块的访问级别配置 |
tce_config.php | 公共区域驱通用配置 |
八、tcexam 的使用
1、登录
http://IP
默认的用户是:admin 密码是:1234
2、使用
tcexam 分为前后台:前台就是进行用户注册和进行考试;后台就是管理用户、题库管理、测试出卷、文字题批阅、成绩汇总查询等。
前台不需要多说,登录后考试即可;
后台的主要部分就是出题和生成试卷。由于实现起来不是很难,稍有电脑基础的用户测试二遍也就可以掌握 80%。所以在这里我只是讲一大致流程
1)、生成模块
可以理解为科目,是数学、语文还是英语,这么说懂了吧!
2)、生成主题
可以理解为题库
3)、添加题目
可以理解为题库里的各个考题
4)、添加答案
为在题库里的考题添加标准答案(文字题无需添加答案)
5)、进行完上述操作后,就可以在测试管理里新建测试,从题库里随机抽题进行考试了。
更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-06/132412.htm