
Open edX 平台部署与验证从最小可用环境到上线检查【免费下载链接】openedx-platformThe Open edX LMS Studio, powering education sites around the world!项目地址: https://gitcode.com/GitHub_Trending/ed/openedx-platformOpen edX 平台openedx-platform 仓库是一套开源在线教育系统包含 LMS面向学习者的学习服务和 CMS/Studio面向教师的课程制作后台两个核心服务以 Django 为主要技术栈。本文面向首次接触该项目的开发者和运维人员说明它适合什么场景、如何跑通一个最小可用环境、启动后如何验证以及上线前需要重点检查的配置项。项目能力与适用场景它能做什么CMSStudio负责课程内容的创建、编辑与管理LMS 负责向学习者提供课程、作业、证书等学习体验两者共用同一份代码仓库通过lms/与cms/两套环境配置envs区分运行。适合谁需要自建、定制在线学习平台的机构需要修改前端/后端行为并扩展 XBlock 的学习组件的开发者。不适合谁只想几分钟内开通一个学习站点的团队。官方 README 明确提示生产级自建较复杂更推荐直接使用托管服务或基于社区 Docker 发行版 Tutor 部署本仓库文档中的裸机部署方式bare metal主要面向愿意自行承担配置复杂度的高级用户。部署前检查清单启动前建议逐项确认以下前置条件版本要求以当前仓库 README 和官方文档为准类别需要确认的内容操作系统Ubuntu 24.04README 裸机部署要求更早期版本请以官方文档为准解释器/工具Python 3.12Node 版本见仓库根目录.nvmrc数据库MySQL 8.0、MongoDB 7.x缓存服务Memcached多节点时建议共享缓存数据库准备创建两个 MySQL 库LMS、CMS 各一及具备写权限的账号并更新 DjangoDATABASES设置端口开发默认LMS18000、CMS18010MFE 前端2000Learning、2001Authoring、1996Learner Home等⚠️ 提示仓库中lms/envs/下按用途提供了多套配置devstack.py、development.py、production.py等manage.py未显式指定时默认加载 devstack 配置可用--settings切换。选错配置是部署失败的高频原因之一。最小可用部署路径以下步骤只覆盖把两个服务跑起来所必需的环节不含生产化细节。1. 获取源码git clone https://gitcode.com/GitHub_Trending/ed/openedx-platform cd openedx-platform2. 安装后端依赖项目使用 uv 管理 Python 环境见requirements/与根目录pyproject.toml。生产运行uv sync --no-default-groups --group bundled部分 Python 包需要系统级依赖如mysqlclient可先安装sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config3. 初始化数据库先确认 MySQL、Mongo、Memcached 已在运行然后执行迁移./manage.py lms migrate ./manage.py lms migrate --databasestudent_module_history ./manage.py cms migrate4. 构建前端静态资源npm clean-install npm run build5. 启动两个服务./manage.py lms runserver 18000 ./manage.py cms runserver 18010需要注意本仓库启动的是后端平台 传统页面。当前 Open edX 的多数现代界面由独立部署的微前端MFE如 Authoring、Learning、Learner Home承载只启动本仓库时你得到的是一个功能受限、偏 headless 的环境。如需完整界面还要按官方文档分别安装并运行相应 MFE。启动后验证方法服务是否可用建议按入口可访问 → 数据库可连通 → 日志无异常三步确认访问http://localhost:18000LMS与http://localhost:18010CMS/Studio确认返回页面而非连接错误开发配置下两者的LMS_BASE/CMS_BASE即为这两个地址。通过 Django shell 快速验证数据库连通性./manage.py lms dbshell查看日志devstack 配置下日志会直接输出到启动终端正式环境请在lms/envs/对应配置中确认日志目录再查看对应文件。确认静态资源可加载若页面样式完全缺失优先执行./manage.py lms collectstatic与./manage.py cms collectstatic开发站点可跳过翻译收集。关键配置建议以下方向建议在上正式环境前落实具体写法以lms/envs/中对应配置模块和官方文档为准共享缓存多节点部署时将CACHES[default]指向共享的 Redis 或 Memcached不要使用进程内缓存LocMemCache。部分功能如 LTI Provider 的 nonce 防重放依赖跨节点共享缓存才能正常工作。HTTPS 与 Cookie启用 HTTPS 后配合SESSION_COOKIE_SECURE True涉及 Studio 单点登录的跨站流程要求会话 Cookie 以SameSiteNone发送加载lms/envs/production.py时会自动设置裁剪过的自定义配置需自行设置。数据库连接为 LMS、CMS 分库并独立账号避免共用单库带来的升级与故障风险。静态资源加速静态文件统一经collectstatic收集后由 Web 服务器或 CDN 分发应用进程不承担静态文件压力。CMS 访问认证Studio 通过 OAuth 应用与 LMS 建立 SSO开发环境可按 README 用manage_user与create_dot_application命令建立内部通道生产环境切勿沿用 README 中的固定密钥示例。常见问题处理现象检查位置处理方向端口被占用 / 服务无响应lms/envs/devstack.py中的LMS_BASE、CMS_BASE系统端口占用情况更换端口或释放端口保持配置与实际监听一致数据库连接失败DATABASES设置MySQL、Mongo 服务状态确认服务已启动、账号权限覆盖两个库、连接参数正确页面打开但样式/脚本 404静态资源目录是否收集完成重新执行npm run build与collectstatic界面空白或大量功能缺失MFELearning/Authoring 等是否在对应端口运行这是只跑了本仓库的正常现象按需部署 MFE 或改用 Tutor 完整方案Studio 登录反复跳转、无法进入OAuth 应用配置与 SSO 相关设置核对客户端 ID/密钥配置确认跨站 Cookie 策略符合 SSO 要求启动报 Python 依赖缺失后端虚拟环境是否用 uv 同步过按 README 重新执行uv sync对应命令结语建议你先在本机按上面的最小路径跑通 LMS 与 CMS 两个服务并完成三项验证入口可访问、数据库可连通、日志无报错再考虑多节点、HTTPS 与 MFE 等生产化事项涉及版本、命令与配置项时请以官方文档和当前仓库版本为准。【免费下载链接】openedx-platformThe Open edX LMS Studio, powering education sites around the world!项目地址: https://gitcode.com/GitHub_Trending/ed/openedx-platform创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考