一、 引言
如今已进入WEB 2.0时代,各种网络应用也如雨后春笋般不断涌现,特别是企事业单位应用越来越广泛,从最初的C/S架构,到现如今的B/S架构。本文是通过在LINUX主机上架设基于APACH服务的PHP程序应用,介绍了《网络调查系统》和《网上考试系统》安装和使用手册,全部为作者个人经验之谈。源程序归作者所有,任何使用该程序者请遵守相关的使用协议。
二、 安装前的准备
a) LINUX系统:本文使用的是基于Fedora 8的linux系统,如使用其它版本的linux请安装系统对应的相关组件,当然上述两种PHP应用也可以安装在Windows 系统中,相关安装信息请参考相应的手册,这里只介绍基于linux系统。建议安装好操作系统后去掉一些不必要的服务,如蓝牙、SMART CARD等。
b) Webmin 的安装,为了方便使用请在相关网站下载Webmin,最好是RPM文件,安装好即可。
c) HTTP支持:使用的是Apache 2.2.6,将文件的字符集设定为默认,否则会产生乱码。
d) MYSQL支持:MYSQL 版本 5.0.45, 建立一个新的用户,并给予建立和修改数据库的权利。
e) PHP 版本:PHP 版本 5.2.5
f) 安装php-mbstring,此插件不是随PHP自行安装,需要另外安装,Linux光盘上有现成的RPM。
g) 本文所使用的组件全部是Fedora光盘中所带的组件,并且都是经过编译后的rpm文件,所以安装上省去了很多的麻烦。这种方法安装的弊端就是不能根据自己定义的方式进行安装,也不够灵活,所以安装目录也会和通过重新编译进行安装的程序会有一些区别。
h) 所用到的虚拟目录为 /var/www/html,为了安全考虑可以根据需要建立其他虚拟目录。
i) 本文为了方便并没有建立其他的用户和相应的权限,全部使用root用户进行操作,在实际工作中非常不可取,因为LINUX是以安全著称的,所以不建议大家像我这样设定。
j) 为了使用方便,使用了两个工具如下:
i. WinSCP 是一个支持SSH(Secure SHell)的SCP(Secure Copy)文件传输软件。只要文件主机支持SSH协定,你就可以安心的下载、上传文件。他的操作界面是参考NC(Norton Commander)的双视窗排列方式,使用起来不会有太大的困难。在WinSCP中,一般的文件操作都没有问题,如:复制、移动、更名文件或文件夹等。
ii. SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,同时支持Telnet和rlogin协议。还可用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具。通过使用内含的VCP命令行程序可以进行加密文件的传输。
k) 对PHP和MYSQL 进行测试,以保证其正常工作。请把下面文件放在虚拟目录相应的文件夹下。测试文件如下
Phpinfo.php
<?phpinfo();?>
Mysql.php
<?php
$link=mysql_connect('localhost','myadmin','999999');
if(!$link) echo "失败!";
else echo "成功!";
mysql_close();
?>
当程序出现PHP相关信息和数据库测试成功后,我们就可以进行接下来的安装了。
三、 网络调查系统(limesurvey)的安装和使用
a) Limesurvey介绍
LimeSurvey(前身为PHPSurveyor)是一款开源的在线问卷调查程序,它用PHP语言编写并可以使用MySQLPostgreSQL或者MSSQL等多种数据库,它集成了调查程序开发、调查问卷的发布以及数据收集等功能,使用它,用户不必了解这些功能的编程细节。系统包括了分支、自定义页面布局和设计(使用web template system),并且提供了基本的统计分析功能。调查可以匿名访问也可以限制为问卷“访问一次性”令牌的用户参加,从而我们能得到匿名数据或者参与者与结果相分离的数据。
b) 确定服务器符合以下要求
i. 约 40 兆的磁盘空间保存脚本
ii. MySQL 4.1.0 或以上版本或者Postgres 8.1 以上版本
iii. PHP 5.x 或以上版本并启用下列模块/链接库:
1. mbstring (Multibyte String Functions) 扩展库
2. mysql4 或 mysql5 PHP 链接库
3. pcre (regular expressions) - 见 http://de2.php.net/manual/en/book.pcre.phpclip_image001 (也是标配)
4. 已安裝iconv 扩展库(only for PHP 4 versions - needed for Excel export) (可选)
5. GD-Library with FreeType support installed (for captchas or nice charts in statistics) ,以图片形式展示数据,建议还是装一下吧。
6. 已安裝LDAP-Library (to import tokens using LDAP) (可选)这个是和LDAP进行结合的,默认已经在安装PHP的时候已经安装上了。
c) 下载程序解压缩
www.limesurvey.org下载最新版本的安装程序。现在程序的版本是1.85。程序的扩展名为tar.gz,将文件上传到虚拟目录(例如:/var/www/html/),利用tar命令将程序解压缩释放到此文件夹下面(不用另外建立limesurvey文件夹)。
cd /var/www/html
tar –zxvf limesurvey185rc3-build7008-20090604.tar.gz limesurvey
d) 确认一下信息
i. 网址(比如: http://my.domain.com/limesurvey)
ii. MySQL 数据库的 IP/网络位置(如: localhost)
iii. 如果MySQL 数据库使用非标准端口, 就要找出端口号
iv. MySQL 数据库使用的用户名及密码 。
e) 配置 LimeSurvey
i. 利用文本编辑工具打开打开位于/limesurvey/ 根目录的文件config.php,休息下面参数
$databasetype = 'mysql'; //默认即可,无需修改
$databaselocation = 'localhost'; //服务器地址
$databasename = 'limesurvey' ; //建立的数据库名称(不用修改)
$databaseuser = 'root'; //mysql数据库用户名 (具有创建数据库权利的MYSQL用户)
$databasepass =''; //上面用户的密码。
$dbprefix= 'lime_'; //默认即可
f) 设定目录权限
i. 将limesurvey 目录设定为777权限
g) 安装并创建所需的数据库
i. 进入如下地址http://my.domain.com/limesurvey/admin/install/ (请根据主机的不同修改域名),点击“Create Database”提示Database has been created. 点击下面的Populate database, 提示Database `limesurvey` has been successfully populated.,成功创建数据库,点击后面返回管理员界面。
ii. 创建完数据库后会出来提示
Everything is fine - you just forgot to delete or rename your LimeSurvey installation directory (/admin/install). Please do so since it may be a security risk.
提示你删除/admin/install文件夹以保证安全。
iii. 登录并修改密码
1. 第一次登陆的用户名密码如下:
User: admin
Password: password
登录后会提示去更改密码。
不知道为什么本人用的IE6无论如何也进不了管理界面,但是用FIREFOX就可以了。
h) 使用limesurvey来创建一份问卷调查
i. 使用浏览器登录http://my.domain.com/limesurvey/admin/ 并输入用户名和密码
clip_image003
ii. 点击右上角的clip_image005按钮,进行新调查的创建。
iii. 填写调查信息:
1. 基础语言:调查问卷的语言,就是说你这份问卷是英文版的还是中文版的,或者是其他语言版的,当前版本已经支持简体中文。
2. 标题:这个不用说了,问卷的标题。
3. 描述:问卷内容的一些补充信息。
4. 欢迎信息:就是问卷开始时的欢迎信息。
5. 结束信息:就是问卷结束时的结束语。
6. 管理员、管理员邮件地址、你的邮件、传真:这个根据需要填写,如果已经架设了邮件服务器,会更加方便的直接给客户机发送邀请调查问卷。
7. 点击建立调查
clip_image007
iv. 编辑或者导入调查问卷
1. 建立后会给出调查识别号(自动生成的序列号信息),上图可以看到问卷还不可以启用,因为还没有题目。
2. 在添加题目之前,我们需要为题目建立分组,目的是让每组题目会具有相同的类型,或者相同属性,比如我建立一个日常生活品的调查,就需要首先建立一个用户基础信息组,比如年龄、籍贯等信息,然后我再建立一个组为我要调查的相关产品信息,比如某个产品是否使用过、使用满意程序等,这些都是与我要了解的产品相关的,所以为产品相关组。
3. 点击右上角的“问题分组”框品旁边的clip_image009按钮,进行增加新的题目组。
4. 填写题目组名和描述,点击新增组。增加后如下,这时候我们看到有三条信息栏了,第一条信息栏是问卷调查信息,第二条为某一个问题组相关的信息,而第三条为题目组内的题目信息。
clip_image011
5. 添加题目
a) 点击在第三栏右上角的按钮,添加题目clip_image013
i. 编号:题目编号,从1开始,以此类推
ii. 题目:
iii. 帮助:答题人在填写此题目时的一些帮助信息
iv. 题目类别:单选、多选,或者是问答形式
v. 组别:当前编辑的题目在哪个组下面
vi. 必须回答
vii. 有效性
viii. 题目属性
ix. 还可以利用编辑好的CSV文件,将题目导入到数据库中
6. 添加其他的题目
7. 测试问卷:点击clip_image015,对问卷进行测试,看看是否需要修改
8. 启用问卷调查:启用问卷点击
clip_image017
注意:在将问卷发放到用户之前,必须启用问卷,用户才可以看到.启用问卷之后就不可以对问卷里面的题目或者题目组进行修改了。
9. 删除题目、题目组以及整个问卷。
clip_image019clip_image021clip_image023
10. 将其他limesurvey问卷导入当前系统内
a) 点击右上角的clip_image025
b) 点击“导入调查”
c) 浏览文件位置,扩展名为CVS,点击“导入调查”
v. 调查问卷的相关设定
a) 设定匿名可以参加问卷调查
i. 默认情况下如果不初始化TOKEN,问卷就为匿名并且是开放的,也就是说任何可以访问上面给出的地址的用户,都可以参加这个调查。如果你想把调查分发给指定的用户,必须通过初始化TOKEN,来生成邀请码,这样,只有特定的人员才能参加。
b) 初始化TOKEN
i. 点击clip_image027按钮,进行对问卷的操作码设置,点击后会有一段提示,警告
本调查的操作代码还未初始化。
If you initialise tokens for this survey then this survey will only be accessible to users who provide a token either manually or by URL.
Note: If you turn on the -Anonymous answers- option for this survey then LimeSurvey will mark your completed tokens only with a 'Y' instead of date/time to ensure the anonymity of your participants.
Do you want to create a token table for this survey?
点击初始化TOKEN就可以了
ii. 点击clip_image029,添加需要发送到人的姓名和邮箱,以及操作码的生成等一些信息。
iii. 点击clip_image031,可以根据个人需要,对上面一些信息增加需要的字段。
iv. 如果你需要对发送的邮件模板需要自己定制的话,可以点击clip_image033进行对原有模板的修改。
v. 发送邮件邀请和发送邮件提醒,点击clip_image035,相应的按钮,当然如果你系统架设了邮件服务功能的话,就可以直接发送邮件了。
c) 对问卷调查题目进行设定
i. 这个功能可以根据你的需要,对不符合要求的调查人员进行终止调查和限制进行后面的题目调查。
ii. 点击clip_image037进行设定。
vi. 查看问卷调查的结果
1. 选择好一份问卷
2. 点击clip_image039
3. 点击clip_image041通过丙型图查看问卷调查结果
clip_image043
4. 数据导出:可以通过导出命令将结果通过EXCEL、PDF,WORD文件形式体现。不知道什么原因,凡是中文字体,导出的结果除excel,word以外,剩下的几种格式全部都是乱码,建议如果大家没有特殊需要的话可以导出到WORD 或者EXCEL。
i) 总结:上面介绍是一些建立一份简单问卷的基本步骤,没有很细致的去研究每一个功能,如有需要请参考相关文档,里面会介绍的比较详细。
四、 网络考试系统(phpexam)的安装和使用
a) 安装程序
i. 从http://www.ppframe.com 上下载源文件,将源文件解压缩后上传至APACHE的虚拟目录下,我这里是/var/www/html/ (特别注意:大家在上传的时候一定要选择“二进制”,这是必须的,否则你后面的抽取试卷过程中会报错而无法进行考试)并将ppframe设定为777权限。
clip_image045
ii. 在进行安装网上考试系统时,必须安装ZendOptimizer。安装方法见上面提到的网络调查系统,下载ZendOptimizer,然后进入安装目录输入命令:./install
iii. 安装目录为/usr/local/Zend
iv. 默认PHP配置文件为/etc 不需要修改
v. Apache control utility 也不用修改,是默认的目录/usr/sbin/apachectl
vi. 安装进度过去后,会提示你是否要重新启动APACHE,你同意即可。
vii. 在浏览器敲入如下地址:http://mydoamin.com/ppframe/install.php 这里的ppframe为我考试系统文件夹,可以根据需要修改相应的目录。进入到下面的界面选择GBK版本
viii. 同意按照使用协议使用本软件。请大家尊重开发者的劳动成果。
ix. 输入相关信息:如数据库用户名、数据库密码、管理员用户名、管理员密码、密码重复等信息。点击“安装PPFRAME基础框架”,出现“Install PPFrame SUCCESS”安装成功,安装“通行证”和“考试系统”模块,最后“安装exam模块”出现“INSTALL SUCCESS”即可。
x. http://mydomain.com/ppframe/admin/ 为后台管理系统
xi. http://mydomain/ppframe/exam/ 为前台考试系统
b) 后台管理程序
i. 概念定义
题库
题库用来装试题的,或者说是试题的分类。每个试题必须从属于一个题库,也可以从属于多个题库一个题库可以有n个试题。题库有上下级关系
试题
试题就是单项的题目,他是组成考卷的元素。
试卷
试卷是对考卷的说明,实际上他只是一个定义,定义生成考卷的规则。
考卷
考卷是按照试卷定义的规则,生成的一份具体的考卷,他是试卷规则的具体实现。是特定时候试卷的一个映像!一份考卷必然从属于一份试卷。而一份试卷可以有很多考卷。
试卷分类
试卷分类,是对试卷的分类,用于检索。当试卷太多时,肯定用得到
ii. 创建题库
1. 进入exam——考试系统——题目管理——添加题库。注意:顶级题库下面必须只要要有一级题库。
iii. 试题管理
1. 进入exam——考试系统——试题管理——添加试题。注意:如果是单选题,一定要勾选出正确的答案,设定正确的分值,以及加入到正确的题库当中去。
iv. 试卷分类管理
1. 进入exam——考试系统——分类管理——添加试卷分类。注意:这一选项的要求和添加题库差不多,也是需要建立顶级分类后再至少建立一个下一级分类。
v. 配置一份简单的试卷
1. 进入exam——考试系统——试卷管理——配置一份试卷。填写试卷标题,选择题库和分类,最低答题时间(可选),考试次数每人最多考几次(可选,根据需要来保证试卷被一个人答题的次数),开放试卷(表示从现在开始就可以开始答题了),其他选项可根据需要进行自行设定。
2. 进入考试限制选项,可以根据需要对考卷进行合格率设定,以及面对范围的设定。
3. 进入题目配置选项,可以设定一份试卷包含的题目类型,以及试题数目,每题的分值,限定答题时间等。
4. 最后提交修改后的试卷即可。
vi. 其他
1. 考卷管理——当用户通过前台登录完成一份试卷的答题后,相应的试卷信息就会从这里体现出来了。也可以对试卷进行删除等操作。
2. 考卷批处理——对作废试卷进行删除,或者设定相应的时间来释放作废试卷。
3. 成绩总汇导出——可以将全部成绩到处到EXCEL里面。
4. 题目报错——在用户答题过程中,用户可以针对某些问题答案有异议的地方,并进行提交后,在这里就可以看到。
5. 我的展示——在进行测试之前,会有一些出题人的信息,这里就是用来输入一些相关信息的地方。
6. 禁用命名考卷:当然你可以根据自己需要当用户在考试前,会有一个功能是对考卷命名,如果不需要就将此功能去掉。操作方法:进入exam——基础管理——禁用考卷名——是。
c) 前台考试系统
i. 注册新用户,新用户需要注册后才可以进行考试,当然这些功能与后台的PASSPORT管理模块相关联。可以根据需要自行添加一些其他注册用户需要填写的信息。
ii. 前台考试系统有试卷搜索、试卷分类、分类列表以及试卷题目等。这些内容都是根据后台管理程序进行相关设置和添加后出现的。
iii. 关于分发考卷和开放考卷的区别
1. 分发考卷:可以将一份试卷指定分发给某个用户,或者具有相同属性的一组人,其他人是无法看到的。当用户用注册好的用户名登录到前台,在“我的试卷”就可以看到分发给他的考试试卷。
2. 开放试卷:一般开放试卷就是任何人都可以看到(当然必须是注册用户),并且可以参与。
上述功能都可以通过后台管理进行设定。
iv. 每份答卷后面都会有一个“排行”的超级链接,进入后可以看到答题者的成绩以及排名,用户名只会显示前两个字母,隐去了后面的字符,也是为了隐私考虑,比较人性化。
五、 总结
至此两个系统就介绍到这,像这样的开源程序还是非常多的,只是平时没有太多的关注。由于这两个系统就是基于PHP进行开发的,所以不涉及到版权问题。从WEB 2.0发展趋势来来看,也许以后PHP应该是微软.NET强有力的竞争对手。