公司培訓部最近有在線考試的需求,而目前使用的在線考試的系統沒有自動評分功能,全部的試題需要人工進行批閱,效率十分低下。為解決這個問題,我上網找了好多軟件進行測試,但效果都不是很理想,直到遇到了TCExam這款開源軟件。
TCExam是基於PHP開發的在線考試系統,安裝環境為LAMP。其安裝十分簡單設置也不是很繁鎖。
雖然說tcexam需要的是lamp環境,但是官方文檔中是需要通過yum安裝的,我通過手工編譯安裝lamp環境後,在tcexam安裝過程中遇到很多問題。所以我在這裡使用的是通過yum安裝lamp和其他相關的軟件的。
yum install -y epel-release;
yum install -y gd curl ImageMagick texlive zbar mysql-server php httpd php-mysql libdbi-dbd-mysql php-gd php-curl memcached
vim /etc/httpd/conf/httpd.conf
修改ServerName
ServerName localhost:80
vim /etc/php.ini
修改 date.timezone
date.timezone = "Asia/Shanghai"
#設置mysql服務chkconfig mysqld onservice mysqld start#設置apache服務chkconfig httpd onservice httpd start#設置memcached服務chkconfig memcached onservice memcached start
cd /var/www/html
wget https://github.com/tecnickcom/tcexam/archive/master.zip
uzip master.zip
mv ./tcexam-master/* .rm -rf tcexam-master
按照官方文檔tcexam的安裝頁面是可以自動新建tcexam數據庫並導入初始數據的,但從實際的操作的效果來看,這個功能基本上無法完成這個任務。因此我們需要手工建立數據庫並導入初始數據。
tcexams要求MySQL的root密碼不能為空,所以先設置mysql的root密碼。
mysqladmin -u root password "newpassword";
”newpassword” 是你指定的mysql的root密碼
mysql -uroot -p;#輸入你設置的密碼#新建數據庫create database tcexam;#退出mysqlquit
cd /var/www/html/install
mysql -uroot -p tcexam < mysql_db_structure.sqlmysql -uroot -p tcexam < db_data.sql
單獨執行每一條語句並回車,按提示輸入密碼
vim /etc/selinux/config#修改SELINUX=enforcingSELINUX=disabled
保存退出
setenforce 0
iptables -Fservice iptables save
在浏覽器中輸入下面的地址,其中IP是你服務器的IP地址
http:\\IP\install\install.php
如果數據庫是在本機的話,在頁面中只需要修改下面幾項: db password 裡面填寫mysql的root密碼 將“Drop Existing Database”和”Create New Database“ 後面的復選框去掉勾選。 然後單擊”INSTALL”按鈕完成安裝
按照官方的文檔,安裝完成後需要進行以下操作,來增強程序的安全性。
cd /var/www/htmlrm -rf installrm -rf *.TXT
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 {} \;
需要修改shared/config/tce_email_config.php
#管理員的郵件地址 $emailcfg['AdminEmail'] = '[email protected]'; #smtp服務器 $emailcfg['Host'] = 'smtp.163.com'; #smtp服務端口 $emailcfg['Port'] = 25; (端口默認是25) #郵箱的用戶名 $emailcfg['Username'] = '[email protected]'; #郵箱的密碼 $emailcfg['Password'] = '123456'; #是否開啟高度模式 $emailcfg['SMTPDebug'] = false;
需要修改shared/config/tce_config.php
/** * 2-letters code for default language. */define ('K_LANGUAGE', 'cn');
系統默認的設置導出的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');
默認的圖標文件放在./images目錄下,文件名為logo_tcexam_118x25.png 圖像的大小為118*25,格式為png
修改./shared/config/tce_user_registration.php文件
#是否允許用戶自行注冊define ('K_USRREG_ENABLED', true);#是否使用郵箱認證define ('K_USRREG_EMAIL_CONFIRM', false);#默認的用戶組ID#需要先去數據庫查看所需用戶組的IDdefine ('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);
這部分配置文件存放位置為 ./admin/config目錄下
http://IP 默認的用戶是:admin 密碼是:1234
tcexam分為前後台:前台就是進行用戶注冊和進行考試;後台就是管理用戶、題庫管理、測試出卷、文字題批閱、成績匯總查詢等。 前台不需要多說,登錄後考試即可; 後台的主要部分就是出題和生成試卷。由於實現起來不是很難,稍有電腦基礎的用戶測試二遍也就可以掌握80%。所以在這裡我只是講一大致流程
可以理解為科目,是數學、語文還是英語,這麼說懂了吧!
可以理解為題庫
可以理解為題庫裡的各個考題
為在題庫裡的考題添加標准答案(文字題無需添加答案)
http://xxxxxx/Linuxjc/1134305.html TechArticle