TCExam在线考试系统从零到一的企业级部署与配置指南【免费下载链接】tcexamTCExam is a CBA (Computer-Based Assessment) system (e-exam, CBT - Computer Based Testing) for universities, schools and companies, that enables educators and trainers to author, schedule, deliver, and report on surveys, quizzes, tests and exams.项目地址: https://gitcode.com/gh_mirrors/tc/tcexamTCExam是一款功能强大的开源计算机化考试系统专为教育机构、企业和培训中心提供完整的在线考试解决方案。作为一款基于PHP的Web应用程序TCExam支持MySQL、PostgreSQL和Oracle数据库具备高度可配置性和国际化的特点能够满足各种规模的考试需求。核心概念与架构设计TCExam采用分层架构设计将管理员后台、考生前端和共享资源分离确保了系统的安全性和可维护性。系统支持多语言、无障碍访问、多种认证方式以及丰富的报表功能。系统架构概览TCExam采用清晰的三层架构设计TCExam系统架构 ├── 管理员界面 (admin/) │ ├── 考试管理 │ ├── 用户管理 │ ├── 题库管理 │ └── 报表统计 ├── 考生界面 (public/) │ ├── 考试执行 │ ├── 成绩查询 │ └── 个人信息 └── 共享资源 (shared/) ├── 核心库文件 ├── 配置模板 └── 公共函数要点提示这种分离架构允许独立部署管理员和考生界面提高了系统的安全性。关键技术特性多数据库支持原生支持MySQL、PostgreSQL和Oracle国际化支持基于TMX标准的26种语言翻译无插件设计纯Web界面无需客户端安装额外软件无障碍访问遵循WCAG 2.1 AA标准支持屏幕阅读器多种认证方式支持LDAP、RADIUS、CAS单点登录环境准备与系统要求基础环境要求在部署TCExam之前请确保服务器满足以下最低要求组件最低版本推荐版本PHP8.28.4Web服务器Apache 2.4Apache 2.4数据库MySQL 5.7MySQL 8.0内存512MB2GB存储100MB1GBPHP扩展依赖TCExam需要以下PHP扩展才能正常运行# 必需扩展 mysqli 或 pgsql # 数据库连接 gd # 图像处理 intl # 国际化支持 bcmath # 高精度数学计算 mbstring # 多字节字符串处理 zip # 压缩解压 curl # 网络请求 xml # XML处理 openssl # 加密传输 posix # 进程控制 # Oracle数据库额外需要 oci8 # Oracle数据库连接最佳实践使用PHP 8.4或更高版本以获得更好的性能和安全性。推荐部署环境开发环境Docker Compose快速启动测试环境XAMPP / WAMP / MAMP生产环境Linux Apache/Nginx MySQL/MariaDB实战部署方案方案一Docker快速部署推荐用于评估对于快速评估和开发环境Docker是最佳选择# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/tc/tcexam # 进入项目目录 cd tcexam # 启动完整环境 make up # 或使用docker compose docker compose up --build图TCExam系统标识代表考试测试功能Docker部署会自动完成以下操作启动Apache PHP 8.4容器启动MariaDB数据库容器运行非交互式安装脚本生成PDF字体和翻译缓存创建默认管理员账户访问地址http://localhost:8080/默认登录admin/code/用户名admin密码1234安全提醒首次登录后立即修改默认密码方案二手动生产环境部署对于生产环境建议采用手动部署以获得更好的控制和优化步骤1环境准备# 安装PHP及相关扩展Ubuntu/Debian示例 sudo apt update sudo apt install php8.4 php8.4-mysql php8.4-gd php8.4-intl \ php8.4-bcmath php8.4-mbstring php8.4-zip \ php8.4-curl php8.4-xml php8.4-openssl \ php8.4-posix composer apache2 mysql-server步骤2项目部署# 克隆项目 git clone https://gitcode.com/gh_mirrors/tc/tcexam /var/www/tcexam # 设置目录权限 cd /var/www/tcexam sudo chown -R www-data:www-data . sudo chmod -R 755 . sudo chmod -R 777 cache install admin/backup # 配置目录可写权限 sudo chmod 777 admin/config public/config shared/config步骤3依赖安装# 安装PHP依赖 composer install --no-dev --optimize-autoloader # 生成PDF字体 make fonts # 预编译翻译缓存可选 make lang步骤4Web服务器配置创建Apache虚拟主机配置/etc/apache2/sites-available/tcexam.confVirtualHost *:80 ServerName tcexam.yourdomain.com DocumentRoot /var/www/tcexam Directory /var/www/tcexam Options -Indexes FollowSymLinks AllowOverride All Require all granted /Directory ErrorLog ${APACHE_LOG_DIR}/tcexam_error.log CustomLog ${APACHE_LOG_DIR}/tcexam_access.log combined /VirtualHost启用配置并重启Apachesudo a2ensite tcexam.conf sudo a2enmod rewrite sudo systemctl restart apache2核心配置指南数据库配置编辑shared/config/tce_db_config.php配置文件// 数据库类型MYSQL, POSTGRESQL, ORACLE define(K_DATABASE_TYPE, MYSQL); // 数据库连接信息 define(K_DATABASE_HOST, localhost); define(K_DATABASE_PORT, 3306); define(K_DATABASE_NAME, tcexam_db); define(K_DATABASE_USER_NAME, tcexam_user); define(K_DATABASE_USER_PASSWORD, secure_password_here); // 数据库字符集 define(K_DATABASE_CHARSET, utf8mb4);最佳实践为TCExam创建专用数据库用户并限制其权限。路径配置编辑shared/config/tce_paths.php文件// 系统URL路径 define(K_PATH_HOST, https://tcexam.yourdomain.com); define(K_PATH_MAIN, /var/www/tcexam/); define(K_PATH_URL, K_PATH_HOST . /); // 缓存和临时目录 define(K_PATH_CACHE, K_PATH_MAIN . cache/); define(K_PATH_TEMP, K_PATH_MAIN . tmp/);邮件系统配置配置shared/config/tce_email_config.php以启用邮件通知功能// 启用邮件功能 define(K_EMAIL_ENABLED, true); // SMTP服务器配置 define(K_SMTP_HOST, smtp.gmail.com); define(K_SMTP_PORT, 587); define(K_SMTP_AUTH, true); define(K_SMTP_SECURE, tls); define(K_SMTP_USER, your-emailgmail.com); define(K_SMTP_PASS, your-app-password); // 发件人信息 define(K_EMAIL_FROM_NAME, TCExam System); define(K_EMAIL_FROM_ADDRESS, noreplyyourdomain.com);高级功能配置LaTeX数学公式支持要启用LaTeX公式渲染需要安装相关依赖并配置shared/config/tce_latex.php# 安装LaTeX和相关工具Ubuntu/Debian sudo apt install texlive-latex-base texlive-latex-extra \ imagemagick ghostscript配置文件设置// 启用LaTeX支持 define(K_LATEX_ENABLED, true); // LaTeX二进制路径 define(K_LATEX_PATH, /usr/bin/latex); define(K_DVIPNG_PATH, /usr/bin/dvipng); define(K_CONVERT_PATH, /usr/bin/convert);单点登录集成CAS认证配置编辑shared/config/tce_cas.php// 启用CAS认证 define(K_CAS_ENABLED, true); // CAS服务器配置 define(K_CAS_HOST, cas.yourdomain.com); define(K_CAS_PORT, 443); define(K_CAS_CONTEXT, /cas); define(K_CAS_CA_CERT, /path/to/cas_cert.pem);LDAP集成配置配置shared/config/tce_ldap.php// 启用LDAP认证 define(K_LDAP_ENABLED, true); // LDAP服务器配置 define(K_LDAP_HOST, ldap.yourdomain.com); define(K_LDAP_PORT, 389); define(K_LDAP_BASE_DN, ouusers,dcyourdomain,dccom); define(K_LDAP_BIND_DN, cnadmin,dcyourdomain,dccom); define(K_LDAP_BIND_PASSWORD, ldap_password);OMR光学标记识别TCExam支持从纸质答题卡自动导入答案需要安装zbar工具# 安装zbarUbuntu/Debian sudo apt install zbar-tools配置OMR功能// OMR配置 define(K_OMR_ENABLED, true); define(K_OMR_ZBARIMG_PATH, /usr/bin/zbarimg);系统运维管理备份策略TCExam提供了完整的备份功能建议定期执行以下操作数据库备份# MySQL备份示例 mysqldump -u tcexam_user -p tcexam_db tcexam_backup_$(date %Y%m%d).sql # 使用系统内置备份功能 # 访问admin/code/tce_edit_backup.php文件备份# 备份配置文件和上传的文件 tar -czf tcexam_files_$(date %Y%m%d).tar.gz \ /var/www/tcexam/shared/config/ \ /var/www/tcexam/admin/backup/ \ /var/www/tcexam/cache/监控与日志启用系统日志编辑shared/config/tce_config.php// 启用详细日志 define(K_ENABLE_SYSLOG, true); define(K_SYSLOG_FACILITY, LOG_LOCAL0); define(K_LOG_LEVEL, DEBUG);关键监控指标数据库连接数监控MySQL连接池使用情况PHP内存使用确保memory_limit足够磁盘空间定期清理cache目录响应时间监控API响应时间性能优化PHP配置优化编辑/etc/php/8.4/apache2/php.ini; 内存限制 memory_limit 256M ; 执行时间限制 max_execution_time 300 ; 文件上传限制 upload_max_filesize 50M post_max_size 55M ; OPcache优化 opcache.enable1 opcache.memory_consumption128 opcache.interned_strings_buffer8 opcache.max_accelerated_files10000 opcache.revalidate_freq2数据库优化-- 为常用查询字段创建索引 CREATE INDEX idx_test_user_id ON tce_tests (test_user_id); CREATE INDEX idx_question_subject_id ON tce_questions (question_subject_id); CREATE INDEX idx_answer_question_id ON tce_answers (answer_question_id); -- 定期优化表 OPTIMIZE TABLE tce_tests, tce_questions, tce_answers;Web服务器优化# Apache配置优化 IfModule mod_expires.c ExpiresActive On ExpiresByType image/jpg access plus 1 year ExpiresByType image/png access plus 1 year ExpiresByType text/css access plus 1 month ExpiresByType application/javascript access plus 1 month /IfModule IfModule mod_deflate.c AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript /IfModule故障排除指南常见问题与解决方案问题1安装向导无法访问症状访问安装页面时出现404错误或空白页面解决方案检查Web服务器配置是否正确验证install/目录是否存在且可读检查PHP是否已正确安装并启用必要扩展查看Apache错误日志tail -f /var/log/apache2/error.log问题2数据库连接失败症状安装过程中出现数据库连接错误解决方案验证数据库服务是否运行systemctl status mysql检查数据库用户权限GRANT ALL PRIVILEGES ON tcexam_db.* TO tcexam_userlocalhost IDENTIFIED BY password; FLUSH PRIVILEGES;确认防火墙设置sudo ufw allow 3306问题3LaTeX公式无法显示症状数学公式显示为代码或空白解决方案检查LaTeX是否安装which latex验证ImageMagick和Ghostscriptconvert --version gs --version检查文件权限确保Web用户有权执行相关命令问题4邮件发送失败症状用户注册或密码重置邮件无法发送解决方案检查SMTP配置是否正确验证防火墙是否允许出站SMTP连接查看PHP错误日志tail -f /var/log/php8.4-fpm.log测试邮件功能// 在临时文件中测试 ?php require_once shared/code/tce_class_mailer.php; $mail new PHPMailer(true); // 配置和发送测试邮件日志分析TCExam系统日志位于以下位置# Apache访问日志 /var/log/apache2/tcexam_access.log # Apache错误日志 /var/log/apache2/tcexam_error.log # PHP错误日志 /var/log/php8.4-fpm.log # 系统日志 journalctl -u apache2 --since 1 hour ago安全加固指南基础安全措施删除安装目录rm -rf /var/www/tcexam/install/修改默认密码首次登录后立即修改admin用户密码创建新管理员创建新的level-10管理员账户删除默认admin账户文件权限设置# 设置正确权限 find /var/www/tcexam -type f -exec chmod 644 {} \; find /var/www/tcexam -type d -exec chmod 755 {} \; # 设置特殊目录权限 chmod 777 /var/www/tcexam/cache chmod 777 /var/www/tcexam/admin/backup网络安全配置HTTPS强制启用配置Apache强制使用HTTPSVirtualHost *:80 ServerName tcexam.yourdomain.com Redirect permanent / https://tcexam.yourdomain.com/ /VirtualHost VirtualHost *:443 ServerName tcexam.yourdomain.com # SSL配置 SSLEngine on SSLCertificateFile /etc/ssl/certs/tcexam.crt SSLCertificateKeyFile /etc/ssl/private/tcexam.key # 其他配置... /VirtualHost安全头设置在Apache配置中添加安全头Header always set X-Content-Type-Options nosniff Header always set X-Frame-Options SAMEORIGIN Header always set X-XSS-Protection 1; modeblock Header always set Referrer-Policy strict-origin-when-cross-origin Header always set Content-Security-Policy default-src self数据库安全使用专用数据库用户避免使用root账户限制数据库权限仅授予必要权限定期备份设置自动备份策略监控异常查询启用数据库审计日志定期安全检查清单每月执行以下安全检查更新系统补丁sudo apt update sudo apt upgrade检查文件权限find /var/www/tcexam -perm -ow -type f审查日志文件检查异常访问模式验证备份完整性测试恢复流程更新依赖composer update --no-dev性能调优最佳实践缓存策略优化TCExam使用文件缓存系统可通过以下方式优化启用OPcache显著提升PHP性能配置浏览器缓存减少静态资源请求使用CDN加速全球访问速度数据库查询缓存优化频繁查询并发处理优化对于高并发考试场景// 调整PHP-FPM配置 pm dynamic pm.max_children 50 pm.start_servers 5 pm.min_spare_servers 5 pm.max_spare_servers 35 // 调整MySQL连接数 max_connections 200 thread_cache_size 8监控指标建立监控仪表板关注以下关键指标响应时间API平均响应时间 500ms错误率HTTP错误率 0.1%并发用户数实时在线用户数量数据库负载连接数、查询速度系统资源CPU、内存、磁盘使用率升级与维护版本升级流程备份当前系统# 备份数据库 mysqldump -u user -p tcexam_db backup_before_upgrade.sql # 备份配置文件 cp -r /var/www/tcexam/shared/config /backup/config_backup下载新版本cd /var/www mv tcexam tcexam_old git clone https://gitcode.com/gh_mirrors/tc/tcexam恢复配置cp -r /backup/config_backup/* /var/www/tcexam/shared/config/ cp /var/www/tcexam_old/cache/lang/* /var/www/tcexam/cache/lang/ 2/dev/null || true更新依赖cd /var/www/tcexam composer install --no-dev --optimize-autoloader make fonts运行数据库升级脚本# 根据版本号执行相应升级脚本 mysql -u user -p tcexam_db install/upgrade/mysql/mysql_db_upgrade_*.sql测试验证检查所有功能是否正常验证数据完整性测试性能表现定期维护任务任务频率操作说明数据库优化每周OPTIMIZE TABLE主要表日志清理每月清理过期日志文件备份验证每月测试备份恢复流程安全扫描每季度漏洞扫描和修复性能评估每半年系统性能基准测试总结TCExam作为一款成熟的开源在线考试系统提供了完整的考试管理解决方案。通过本文的部署指南和配置说明您可以快速搭建一个稳定、安全、高性能的考试平台。关键要点回顾架构清晰分离的管理员和考生界面确保安全性部署灵活支持Docker快速部署和手动生产部署功能丰富支持多语言、无障碍访问、多种认证方式扩展性强可通过配置集成LaTeX、LDAP、CAS等高级功能维护方便提供完整的备份、监控和升级方案遵循本文的最佳实践您可以建立一个满足企业级需求的在线考试系统为教育机构、培训中心和企业提供可靠的考试服务。官方文档doc/INSTALL.md安装手册install/README.md升级指南doc/UPGRADE.md【免费下载链接】tcexamTCExam is a CBA (Computer-Based Assessment) system (e-exam, CBT - Computer Based Testing) for universities, schools and companies, that enables educators and trainers to author, schedule, deliver, and report on surveys, quizzes, tests and exams.项目地址: https://gitcode.com/gh_mirrors/tc/tcexam创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
TCExam在线考试系统:从零到一的企业级部署与配置指南
TCExam在线考试系统从零到一的企业级部署与配置指南【免费下载链接】tcexamTCExam is a CBA (Computer-Based Assessment) system (e-exam, CBT - Computer Based Testing) for universities, schools and companies, that enables educators and trainers to author, schedule, deliver, and report on surveys, quizzes, tests and exams.项目地址: https://gitcode.com/gh_mirrors/tc/tcexamTCExam是一款功能强大的开源计算机化考试系统专为教育机构、企业和培训中心提供完整的在线考试解决方案。作为一款基于PHP的Web应用程序TCExam支持MySQL、PostgreSQL和Oracle数据库具备高度可配置性和国际化的特点能够满足各种规模的考试需求。核心概念与架构设计TCExam采用分层架构设计将管理员后台、考生前端和共享资源分离确保了系统的安全性和可维护性。系统支持多语言、无障碍访问、多种认证方式以及丰富的报表功能。系统架构概览TCExam采用清晰的三层架构设计TCExam系统架构 ├── 管理员界面 (admin/) │ ├── 考试管理 │ ├── 用户管理 │ ├── 题库管理 │ └── 报表统计 ├── 考生界面 (public/) │ ├── 考试执行 │ ├── 成绩查询 │ └── 个人信息 └── 共享资源 (shared/) ├── 核心库文件 ├── 配置模板 └── 公共函数要点提示这种分离架构允许独立部署管理员和考生界面提高了系统的安全性。关键技术特性多数据库支持原生支持MySQL、PostgreSQL和Oracle国际化支持基于TMX标准的26种语言翻译无插件设计纯Web界面无需客户端安装额外软件无障碍访问遵循WCAG 2.1 AA标准支持屏幕阅读器多种认证方式支持LDAP、RADIUS、CAS单点登录环境准备与系统要求基础环境要求在部署TCExam之前请确保服务器满足以下最低要求组件最低版本推荐版本PHP8.28.4Web服务器Apache 2.4Apache 2.4数据库MySQL 5.7MySQL 8.0内存512MB2GB存储100MB1GBPHP扩展依赖TCExam需要以下PHP扩展才能正常运行# 必需扩展 mysqli 或 pgsql # 数据库连接 gd # 图像处理 intl # 国际化支持 bcmath # 高精度数学计算 mbstring # 多字节字符串处理 zip # 压缩解压 curl # 网络请求 xml # XML处理 openssl # 加密传输 posix # 进程控制 # Oracle数据库额外需要 oci8 # Oracle数据库连接最佳实践使用PHP 8.4或更高版本以获得更好的性能和安全性。推荐部署环境开发环境Docker Compose快速启动测试环境XAMPP / WAMP / MAMP生产环境Linux Apache/Nginx MySQL/MariaDB实战部署方案方案一Docker快速部署推荐用于评估对于快速评估和开发环境Docker是最佳选择# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/tc/tcexam # 进入项目目录 cd tcexam # 启动完整环境 make up # 或使用docker compose docker compose up --build图TCExam系统标识代表考试测试功能Docker部署会自动完成以下操作启动Apache PHP 8.4容器启动MariaDB数据库容器运行非交互式安装脚本生成PDF字体和翻译缓存创建默认管理员账户访问地址http://localhost:8080/默认登录admin/code/用户名admin密码1234安全提醒首次登录后立即修改默认密码方案二手动生产环境部署对于生产环境建议采用手动部署以获得更好的控制和优化步骤1环境准备# 安装PHP及相关扩展Ubuntu/Debian示例 sudo apt update sudo apt install php8.4 php8.4-mysql php8.4-gd php8.4-intl \ php8.4-bcmath php8.4-mbstring php8.4-zip \ php8.4-curl php8.4-xml php8.4-openssl \ php8.4-posix composer apache2 mysql-server步骤2项目部署# 克隆项目 git clone https://gitcode.com/gh_mirrors/tc/tcexam /var/www/tcexam # 设置目录权限 cd /var/www/tcexam sudo chown -R www-data:www-data . sudo chmod -R 755 . sudo chmod -R 777 cache install admin/backup # 配置目录可写权限 sudo chmod 777 admin/config public/config shared/config步骤3依赖安装# 安装PHP依赖 composer install --no-dev --optimize-autoloader # 生成PDF字体 make fonts # 预编译翻译缓存可选 make lang步骤4Web服务器配置创建Apache虚拟主机配置/etc/apache2/sites-available/tcexam.confVirtualHost *:80 ServerName tcexam.yourdomain.com DocumentRoot /var/www/tcexam Directory /var/www/tcexam Options -Indexes FollowSymLinks AllowOverride All Require all granted /Directory ErrorLog ${APACHE_LOG_DIR}/tcexam_error.log CustomLog ${APACHE_LOG_DIR}/tcexam_access.log combined /VirtualHost启用配置并重启Apachesudo a2ensite tcexam.conf sudo a2enmod rewrite sudo systemctl restart apache2核心配置指南数据库配置编辑shared/config/tce_db_config.php配置文件// 数据库类型MYSQL, POSTGRESQL, ORACLE define(K_DATABASE_TYPE, MYSQL); // 数据库连接信息 define(K_DATABASE_HOST, localhost); define(K_DATABASE_PORT, 3306); define(K_DATABASE_NAME, tcexam_db); define(K_DATABASE_USER_NAME, tcexam_user); define(K_DATABASE_USER_PASSWORD, secure_password_here); // 数据库字符集 define(K_DATABASE_CHARSET, utf8mb4);最佳实践为TCExam创建专用数据库用户并限制其权限。路径配置编辑shared/config/tce_paths.php文件// 系统URL路径 define(K_PATH_HOST, https://tcexam.yourdomain.com); define(K_PATH_MAIN, /var/www/tcexam/); define(K_PATH_URL, K_PATH_HOST . /); // 缓存和临时目录 define(K_PATH_CACHE, K_PATH_MAIN . cache/); define(K_PATH_TEMP, K_PATH_MAIN . tmp/);邮件系统配置配置shared/config/tce_email_config.php以启用邮件通知功能// 启用邮件功能 define(K_EMAIL_ENABLED, true); // SMTP服务器配置 define(K_SMTP_HOST, smtp.gmail.com); define(K_SMTP_PORT, 587); define(K_SMTP_AUTH, true); define(K_SMTP_SECURE, tls); define(K_SMTP_USER, your-emailgmail.com); define(K_SMTP_PASS, your-app-password); // 发件人信息 define(K_EMAIL_FROM_NAME, TCExam System); define(K_EMAIL_FROM_ADDRESS, noreplyyourdomain.com);高级功能配置LaTeX数学公式支持要启用LaTeX公式渲染需要安装相关依赖并配置shared/config/tce_latex.php# 安装LaTeX和相关工具Ubuntu/Debian sudo apt install texlive-latex-base texlive-latex-extra \ imagemagick ghostscript配置文件设置// 启用LaTeX支持 define(K_LATEX_ENABLED, true); // LaTeX二进制路径 define(K_LATEX_PATH, /usr/bin/latex); define(K_DVIPNG_PATH, /usr/bin/dvipng); define(K_CONVERT_PATH, /usr/bin/convert);单点登录集成CAS认证配置编辑shared/config/tce_cas.php// 启用CAS认证 define(K_CAS_ENABLED, true); // CAS服务器配置 define(K_CAS_HOST, cas.yourdomain.com); define(K_CAS_PORT, 443); define(K_CAS_CONTEXT, /cas); define(K_CAS_CA_CERT, /path/to/cas_cert.pem);LDAP集成配置配置shared/config/tce_ldap.php// 启用LDAP认证 define(K_LDAP_ENABLED, true); // LDAP服务器配置 define(K_LDAP_HOST, ldap.yourdomain.com); define(K_LDAP_PORT, 389); define(K_LDAP_BASE_DN, ouusers,dcyourdomain,dccom); define(K_LDAP_BIND_DN, cnadmin,dcyourdomain,dccom); define(K_LDAP_BIND_PASSWORD, ldap_password);OMR光学标记识别TCExam支持从纸质答题卡自动导入答案需要安装zbar工具# 安装zbarUbuntu/Debian sudo apt install zbar-tools配置OMR功能// OMR配置 define(K_OMR_ENABLED, true); define(K_OMR_ZBARIMG_PATH, /usr/bin/zbarimg);系统运维管理备份策略TCExam提供了完整的备份功能建议定期执行以下操作数据库备份# MySQL备份示例 mysqldump -u tcexam_user -p tcexam_db tcexam_backup_$(date %Y%m%d).sql # 使用系统内置备份功能 # 访问admin/code/tce_edit_backup.php文件备份# 备份配置文件和上传的文件 tar -czf tcexam_files_$(date %Y%m%d).tar.gz \ /var/www/tcexam/shared/config/ \ /var/www/tcexam/admin/backup/ \ /var/www/tcexam/cache/监控与日志启用系统日志编辑shared/config/tce_config.php// 启用详细日志 define(K_ENABLE_SYSLOG, true); define(K_SYSLOG_FACILITY, LOG_LOCAL0); define(K_LOG_LEVEL, DEBUG);关键监控指标数据库连接数监控MySQL连接池使用情况PHP内存使用确保memory_limit足够磁盘空间定期清理cache目录响应时间监控API响应时间性能优化PHP配置优化编辑/etc/php/8.4/apache2/php.ini; 内存限制 memory_limit 256M ; 执行时间限制 max_execution_time 300 ; 文件上传限制 upload_max_filesize 50M post_max_size 55M ; OPcache优化 opcache.enable1 opcache.memory_consumption128 opcache.interned_strings_buffer8 opcache.max_accelerated_files10000 opcache.revalidate_freq2数据库优化-- 为常用查询字段创建索引 CREATE INDEX idx_test_user_id ON tce_tests (test_user_id); CREATE INDEX idx_question_subject_id ON tce_questions (question_subject_id); CREATE INDEX idx_answer_question_id ON tce_answers (answer_question_id); -- 定期优化表 OPTIMIZE TABLE tce_tests, tce_questions, tce_answers;Web服务器优化# Apache配置优化 IfModule mod_expires.c ExpiresActive On ExpiresByType image/jpg access plus 1 year ExpiresByType image/png access plus 1 year ExpiresByType text/css access plus 1 month ExpiresByType application/javascript access plus 1 month /IfModule IfModule mod_deflate.c AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript /IfModule故障排除指南常见问题与解决方案问题1安装向导无法访问症状访问安装页面时出现404错误或空白页面解决方案检查Web服务器配置是否正确验证install/目录是否存在且可读检查PHP是否已正确安装并启用必要扩展查看Apache错误日志tail -f /var/log/apache2/error.log问题2数据库连接失败症状安装过程中出现数据库连接错误解决方案验证数据库服务是否运行systemctl status mysql检查数据库用户权限GRANT ALL PRIVILEGES ON tcexam_db.* TO tcexam_userlocalhost IDENTIFIED BY password; FLUSH PRIVILEGES;确认防火墙设置sudo ufw allow 3306问题3LaTeX公式无法显示症状数学公式显示为代码或空白解决方案检查LaTeX是否安装which latex验证ImageMagick和Ghostscriptconvert --version gs --version检查文件权限确保Web用户有权执行相关命令问题4邮件发送失败症状用户注册或密码重置邮件无法发送解决方案检查SMTP配置是否正确验证防火墙是否允许出站SMTP连接查看PHP错误日志tail -f /var/log/php8.4-fpm.log测试邮件功能// 在临时文件中测试 ?php require_once shared/code/tce_class_mailer.php; $mail new PHPMailer(true); // 配置和发送测试邮件日志分析TCExam系统日志位于以下位置# Apache访问日志 /var/log/apache2/tcexam_access.log # Apache错误日志 /var/log/apache2/tcexam_error.log # PHP错误日志 /var/log/php8.4-fpm.log # 系统日志 journalctl -u apache2 --since 1 hour ago安全加固指南基础安全措施删除安装目录rm -rf /var/www/tcexam/install/修改默认密码首次登录后立即修改admin用户密码创建新管理员创建新的level-10管理员账户删除默认admin账户文件权限设置# 设置正确权限 find /var/www/tcexam -type f -exec chmod 644 {} \; find /var/www/tcexam -type d -exec chmod 755 {} \; # 设置特殊目录权限 chmod 777 /var/www/tcexam/cache chmod 777 /var/www/tcexam/admin/backup网络安全配置HTTPS强制启用配置Apache强制使用HTTPSVirtualHost *:80 ServerName tcexam.yourdomain.com Redirect permanent / https://tcexam.yourdomain.com/ /VirtualHost VirtualHost *:443 ServerName tcexam.yourdomain.com # SSL配置 SSLEngine on SSLCertificateFile /etc/ssl/certs/tcexam.crt SSLCertificateKeyFile /etc/ssl/private/tcexam.key # 其他配置... /VirtualHost安全头设置在Apache配置中添加安全头Header always set X-Content-Type-Options nosniff Header always set X-Frame-Options SAMEORIGIN Header always set X-XSS-Protection 1; modeblock Header always set Referrer-Policy strict-origin-when-cross-origin Header always set Content-Security-Policy default-src self数据库安全使用专用数据库用户避免使用root账户限制数据库权限仅授予必要权限定期备份设置自动备份策略监控异常查询启用数据库审计日志定期安全检查清单每月执行以下安全检查更新系统补丁sudo apt update sudo apt upgrade检查文件权限find /var/www/tcexam -perm -ow -type f审查日志文件检查异常访问模式验证备份完整性测试恢复流程更新依赖composer update --no-dev性能调优最佳实践缓存策略优化TCExam使用文件缓存系统可通过以下方式优化启用OPcache显著提升PHP性能配置浏览器缓存减少静态资源请求使用CDN加速全球访问速度数据库查询缓存优化频繁查询并发处理优化对于高并发考试场景// 调整PHP-FPM配置 pm dynamic pm.max_children 50 pm.start_servers 5 pm.min_spare_servers 5 pm.max_spare_servers 35 // 调整MySQL连接数 max_connections 200 thread_cache_size 8监控指标建立监控仪表板关注以下关键指标响应时间API平均响应时间 500ms错误率HTTP错误率 0.1%并发用户数实时在线用户数量数据库负载连接数、查询速度系统资源CPU、内存、磁盘使用率升级与维护版本升级流程备份当前系统# 备份数据库 mysqldump -u user -p tcexam_db backup_before_upgrade.sql # 备份配置文件 cp -r /var/www/tcexam/shared/config /backup/config_backup下载新版本cd /var/www mv tcexam tcexam_old git clone https://gitcode.com/gh_mirrors/tc/tcexam恢复配置cp -r /backup/config_backup/* /var/www/tcexam/shared/config/ cp /var/www/tcexam_old/cache/lang/* /var/www/tcexam/cache/lang/ 2/dev/null || true更新依赖cd /var/www/tcexam composer install --no-dev --optimize-autoloader make fonts运行数据库升级脚本# 根据版本号执行相应升级脚本 mysql -u user -p tcexam_db install/upgrade/mysql/mysql_db_upgrade_*.sql测试验证检查所有功能是否正常验证数据完整性测试性能表现定期维护任务任务频率操作说明数据库优化每周OPTIMIZE TABLE主要表日志清理每月清理过期日志文件备份验证每月测试备份恢复流程安全扫描每季度漏洞扫描和修复性能评估每半年系统性能基准测试总结TCExam作为一款成熟的开源在线考试系统提供了完整的考试管理解决方案。通过本文的部署指南和配置说明您可以快速搭建一个稳定、安全、高性能的考试平台。关键要点回顾架构清晰分离的管理员和考生界面确保安全性部署灵活支持Docker快速部署和手动生产部署功能丰富支持多语言、无障碍访问、多种认证方式扩展性强可通过配置集成LaTeX、LDAP、CAS等高级功能维护方便提供完整的备份、监控和升级方案遵循本文的最佳实践您可以建立一个满足企业级需求的在线考试系统为教育机构、培训中心和企业提供可靠的考试服务。官方文档doc/INSTALL.md安装手册install/README.md升级指南doc/UPGRADE.md【免费下载链接】tcexamTCExam is a CBA (Computer-Based Assessment) system (e-exam, CBT - Computer Based Testing) for universities, schools and companies, that enables educators and trainers to author, schedule, deliver, and report on surveys, quizzes, tests and exams.项目地址: https://gitcode.com/gh_mirrors/tc/tcexam创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考