如何快速部署Submitty?从安装到运行的完整教程
如何快速部署Submitty?从安装到运行的完整教程
【免费下载链接】SubmittyHomework Submission, Automated Grading, and TA grading system.项目地址: https://gitcode.com/gh_mirrors/su/Submitty
Submitty是一款功能强大的开源作业提交、自动评分和助教评分系统。无论您是教育机构的系统管理员还是课程教师,这篇完整指南将帮助您快速完成Submitty的部署。通过本教程,您将掌握从环境准备到系统运行的完整部署流程,让您的教学管理系统快速上线运行!🚀
📋 系统环境要求
在开始部署Submitty之前,请确保您的服务器满足以下基本要求:
- 操作系统:Ubuntu 22.04 LTS(推荐)或 Ubuntu 20.04 LTS
- 内存:至少 4GB RAM(生产环境建议8GB以上)
- 存储空间:至少 20GB 可用空间
- 网络:稳定的网络连接,能够访问外部资源
- 权限:需要root或sudo权限进行安装
🚀 一键快速安装方法
方法一:使用官方引导脚本(最简单)
对于大多数用户,我们推荐使用官方的一键安装脚本。这个脚本会自动处理所有依赖项的安装和配置:
# 下载并运行引导脚本 curl -sSL https://raw.githubusercontent.com/Submitty/Submitty/main/.setup/bootstrap.sh | sudo bash这个脚本会自动完成以下工作:
- 安装必要的系统依赖
- 克隆Submitty代码库
- 运行系统安装脚本
- 配置所有必要的服务和权限
方法二:手动分步安装
如果您希望更精细地控制安装过程,可以按照以下步骤手动安装:
步骤1:克隆代码库
首先,将Submitty代码库克隆到本地:
# 创建安装目录 sudo mkdir -p /usr/local/submitty/GIT_CHECKOUT cd /usr/local/submitty/GIT_CHECKOUT # 克隆Submitty项目 sudo git clone https://gitcode.com/gh_mirrors/su/Submitty步骤2:运行系统安装脚本
进入项目目录并运行系统安装脚本:
cd Submitty/.setup sudo bash install_system.sh这个脚本会:
- 安装所有系统依赖包(PHP、PostgreSQL、Python等)
- 配置必要的系统用户和组
- 设置数据库和Web服务
步骤3:配置Submitty
运行配置脚本来自定义您的安装:
cd /usr/local/submitty/GIT_CHECKOUT/Submitty/.setup sudo python3 CONFIGURE_SUBMITTY.py配置过程中,您需要提供以下信息:
- 安装目录(默认:
/usr/local/submitty) - 数据目录(默认:
/var/local/submitty) - WebSocket端口(默认:8443)
- 是否启用调试模式(生产环境不建议启用)
🔧 详细配置指南
数据库配置
Submitty使用PostgreSQL作为后端数据库。安装脚本会自动创建数据库和用户,但您可能需要根据实际情况调整配置:
# 查看数据库状态 sudo systemctl status postgresql # 如果需要手动创建数据库用户 sudo -u postgres createuser submitty sudo -u postgres createdb submittyWeb服务器配置
安装脚本会自动配置Apache或Nginx作为Web服务器。您可以在以下位置找到配置文件:
- Apache配置:
.setup/apache/submitty.conf - Nginx配置:
.setup/nginx/submitty.conf
用户和权限配置
Submitty创建了多个专用用户来确保系统安全:
- submitty_daemon:运行后台任务的守护进程用户
- submitty_php:运行PHP脚本的用户
- submitty_cgi:运行CGI脚本的用户
这些用户的权限在安装过程中自动配置,通常不需要手动调整。
🐳 使用Vagrant进行开发环境部署
如果您需要在本地开发或测试环境部署Submitty,可以使用Vagrant快速搭建环境:
步骤1:安装Vagrant和VirtualBox
# 在Ubuntu上安装Vagrant和VirtualBox sudo apt-get update sudo apt-get install -y virtualbox vagrant步骤2:配置Vagrant环境
在Submitty项目根目录中,已经包含了预配置的Vagrantfile:
# 启动Vagrant虚拟机 vagrant up # 如果需要更多资源,可以指定内存和CPU VM_MEMORY=4096 VM_CPUS=4 vagrant up步骤3:访问开发环境
Vagrant启动后,您可以通过以下方式访问Submitty:
- 在浏览器中访问
http://localhost:1511 - 使用默认管理员账户登录
🛠️ 常见问题与解决方案
问题1:安装过程中出现依赖错误
解决方案:确保系统已更新,然后重新运行安装脚本:
sudo apt-get update sudo apt-get upgrade sudo bash /usr/local/submitty/GIT_CHECKOUT/Submitty/.setup/install_system.sh问题2:Web服务无法启动
解决方案:检查Web服务器配置和权限:
# 检查Apache/Nginx状态 sudo systemctl status apache2 sudo systemctl status nginx # 查看错误日志 sudo tail -f /var/log/apache2/error.log sudo tail -f /var/log/nginx/error.log问题3:数据库连接失败
解决方案:验证PostgreSQL服务和连接配置:
# 重启PostgreSQL服务 sudo systemctl restart postgresql # 测试数据库连接 sudo -u postgres psql -d submitty📊 部署后的配置优化
性能调优建议
- 内存优化:根据学生数量和课程规模调整PHP内存限制
- 缓存配置:启用OPcache提升PHP性能
- 数据库优化:定期清理旧数据和优化索引
- 文件存储:确保
/var/local/submitty有足够的存储空间
安全配置建议
- SSL证书:为生产环境配置HTTPS
- 防火墙规则:限制对管理端口的访问
- 定期备份:设置数据库和文件的自动备份
- 日志监控:启用系统日志监控和告警
🎯 快速验证部署
部署完成后,运行以下命令验证安装是否成功:
# 验证系统服务状态 sudo systemctl status submitty_autograding_shipper sudo systemctl status submitty_daemon_jobs_handler # 访问Web界面 curl -I http://localhost如果一切正常,您应该能看到Submitty的登录页面。使用默认的管理员凭据登录后,您可以开始创建课程、添加学生和设置作业了!
🔄 系统维护与升级
定期维护任务
- 清理旧数据:定期清理过期的作业提交和日志文件
- 更新系统:定期运行系统更新和安全补丁
- 监控资源:监控磁盘空间、内存和CPU使用情况
升级Submitty版本
当有新版本发布时,可以使用以下步骤升级:
# 进入Submitty目录 cd /usr/local/submitty/GIT_CHECKOUT/Submitty # 拉取最新代码 sudo git pull origin main # 运行升级脚本 sudo bash .setup/update_system.sh📈 扩展功能配置
配置自动评分工作器
如果需要处理大量作业评分,可以配置额外的自动评分工作器:
# 在独立服务器上安装工作器 sudo bash .setup/install_worker.sh集成外部工具
Submitty支持与多种外部工具集成:
- 版本控制系统:Git、SVN
- 代码质量工具:静态分析、代码风格检查
- 测试框架:JUnit、pytest等
🎉 开始使用Submitty
恭喜!您已经成功部署了Submitty系统。现在您可以:
- 创建课程:在管理界面中添加新课程
- 添加用户:导入学生和教师账户
- 设置作业:创建作业并配置自动评分规则
- 管理评分:使用内置的助教评分工具
记住,Submitty是一个功能强大的教学管理系统,支持从简单作业提交到复杂自动评分的各种教学场景。如果您在部署或使用过程中遇到任何问题,可以参考项目文档或寻求社区支持。
提示:建议在生产环境部署前,先在测试环境中充分验证所有功能。祝您使用愉快!🎓
【免费下载链接】SubmittyHomework Submission, Automated Grading, and TA grading system.项目地址: https://gitcode.com/gh_mirrors/su/Submitty
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
