
5 步跑通 Open edX从克隆到可上线的最小部署教程【免费下载链接】openedx-platformThe Open edX LMS Studio, powering education sites around the world!项目地址: https://gitcode.com/GitHub_Trending/ed/openedx-platform你接了个给机构开在线课的需求Open edX 部署听着吓人其实就是把仓库里 lms/ 和 cms/ 两个 Django 服务跑起来。这篇教程走一遍从克隆到启动的最小路径每步都有核对点。Open edX 是 edX 开源的在线教育系统Python 加 Django 写成核心只提供两个服务LMS学员用的学习系统和 CMSStudio教师端录课后台。把这两个服务跑起来平台就算立住了。✅ 开工前硬件、软件、权限三栏核对表版本不对齐是 Open edX 部署卡住的第一大原因Python 低一个小版本、Node 差一个大版本装依赖就开始报错。克隆之前先对照下面三栏过一遍类别要求为什么硬件内存 4GB 起、推荐 8GB磁盘 50GB双核 CPU前端构建和静态资源收集都很吃内存软件Ubuntu 24.04、Python 3.12、Node 24以仓库 .nvmrc 为准、MySQL 8.0、MongoDB 7.x、Memcached全部来自 README 的 bare-metal 清单差一个都会让依赖装不上或运行时报错权限有 sudo 的用户、能建库建表的数据库账号mysqlclient 这类包装系统依赖要 sudoLMS、CMS 各需要一个专用库用户跑迁移⚡ 最简部署路径跟着敲就行整条最小路径就 5 步每步之后跟一句它在干什么。第一步拉源码得到 LMS 和 CMS 两个共用 manage.py 入口的 Django 工程git clone https://gitcode.com/GitHub_Trending/ed/openedx-platform cd openedx-platform第二步装依赖。第一条装 Python 运行时依赖第二条装前端构建工具链要改代码调试就换 make dev-requirementsmake base-requirements npm clean-install第三步建库建表。先在 MySQL 建两个库在 lms/envs/ 和 cms/envs/ 里把 DATABASES 分别指过去再执行迁移。这步把两套服务的表结构灌进数据库漏了它服务一启动就报表不存在./manage.py lms migrate ./manage.py lms migrate --databasestudent_module_history ./manage.py cms migrate第四步构建并收集静态资源编译前端产物、汇总静态文件纯本地开发可以跳过 collectstatic 两条npm run build ./manage.py lms collectstatic ./manage.py cms collectstatic第五步启动双服务浏览器分别打开 18000 和 18010页面能出来就算部署成功./manage.py lms runserver 18000 ./manage.py cms runserver 18010浏览器能打开 18000 不等于就能用数据库里还没有任何账号登录页是进不去的。用下面这条命令建第一个超级管理员命令会引导你输用户名和密码建完从管理后台开始建课./manage.py lms createsuperuser LMS 与 CMS一张表讲清两个服务项LMSCMSStudio角色学员端上课、交作业、看成绩制作端教师建课、管理内容默认端口1800018010启动命令./manage.py lms runserver 18000./manage.py cms runserver 18010配置入口lms/envs/开发默认 devstackcms/envs/开发默认 devstack只起这两个服务页面是半裸的。大部分前端已拆成 MFEMicro-Frontend独立部署的 React 前端应用Authoring默认 2001 端口、Learning2000、Learner Dashboard1996要单独跑起来 UI 才完整。开发机上也可以试试 lms/envs/development.py 提供的实验性裸机开发模式它直接构建在 common.py 之上、走 local.openedx.io 域名只是还不是官方推荐的默认方式。两个服务与 MFE 的整体架构长这样 上线前值得调的 3 个配置缓存指向共享后端openedx/envs/common.py 里 CACHES 的 default 项默认用 Memcached。多节点部署务必确认它指向共享的 Redis 或 Memcached而不是每进程一份的本地内存缓存否则 LTI 防重放这类安全特性会直接失效。静态资源走 CDN把 collectstatic 的产物托管到对象存储再挂 CDN首屏加载明显变快本地开发不用管。数据库连接池LMS 和 CMS 各连独立 MySQL 库连接上限要按并发学员数调student_module_history 这个附属库要单独 migrate 一次是上线前最容易漏的一条。 服务挂了按 3 步查故障看日志生产环境日志目录由 LOG_DIR 决定默认 /edx/var/log/edx开发环境直接盯 runserver 终端输出先翻最后一段里的 ERROR。验依赖服务MySQL、Mongo、Memcached 三个进程是否都活着再跑一次 ./manage.py lms check 排除配置错误。对端口18000 和 18010 是否被占用或被防火墙拦用 ss -lntp 看监听状态多数网络类故障 5 分钟内能定位。如果页面能打开但课程列表、作业区是空的多半是忘了起 MFE——先看 2000、2001 端口有没有在监听比查数据库快。✅ 让它更好用三个可选方向XBlock可插拔的课件组件xmodule/ 下就是内置组件照 XBlock 规范写一个新组件注册进平台学员端就能直接渲染。主题定制拷一份 themes/ 目录结构用 SCSS 覆盖默认样式不碰核心代码就能换肤。API 对接LMS 自带 OpenAPI 描述文件 docs/lms-openapi.yaml选课、查成绩等接口可直接给外部系统调用。⚡ 收尾先跑通再调优缓存、CDN、连接池每次只动一个动完跑一次 ./manage.py lms check再把选课流程完整走一遍验证比一次性全开稳妥得多。另外记得把 student_module_history 的迁移单独再跑一遍确认三个库都迁移完了才算真的准备好上线。【免费下载链接】openedx-platformThe Open edX LMS Studio, powering education sites around the world!项目地址: https://gitcode.com/GitHub_Trending/ed/openedx-platform创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考