简明配置指南

 

虚拟机配置

  • 硬件
  • 修改虚拟硬件配置(RAM>4G disk>20G VCPU>2)
  • 磁盘是LVM格式,如果想扩展,请使用LVM
  • 网络
  • 如果你是DHCP,请确保你的vsphere中dhcp服务器不挂。如果本地,确保VMware的网络设置为NAT模式
  • 如果你是静态,请在漫长的等待之后进入虚拟机,编辑/etc/network/interfaces,例子如下:
iflab@ifLab:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 222.249.250.28
netmask 255.255.255.0
network 222.249.250.0
broadcast 222.249.250.255
gateway 222.249.250.1
dns-nameservers 114.114.114.114

iflab@ifLab:~$

本地虚拟域名配置

  • edX需要通过域名来实现某些功能。可以设置本地虚拟域名。修改本机HOST文件,例如
edx: x.xyz.com
studio: studio.xyz.com
preview: preview.xyz.com
insights:insights.xzy.com

 

目录结构

iflab@ifLab:/edx$ tree -d -L 2
/edx #几乎所有edX相关内容
├── app #代码目录
│ ├── aws
│ ├── demo
│ ├── devpi
│ ├── edx_ansible
│ ├── edxapp
│ ├── forum
│ └── supervisor
├── bin #可执行程序目录(包括升级,进程控制等)
├── etc #配置文件目录
│ ├── conf.d -> /edx/app/supervisor/conf.d
│ ├── elasticsearch
│ └── playbooks -> /edx/app/edx_ansible/edx_ansible/playbooks
└── var #数据库文件、日志文件目录
├── aws
├── devpi
├── edx_ansible
├── edxapp
├── elasticsearch
├── forum
├── log
├── mongo
└── supervisor

配置LMS/Studio SMTP

  • 涉及文档
/edx/app/edxapp/lms.env.json #|env文件 里包含一些功能开关
/edx/app/edxapp/cms.env.json #|
/edx/app/edxapp/lms.auth.json #|auth 文件包含一些密码 权限相关
/edx/app/edxapp/cms.auth.json #|
  • 切换至 edxapp 账户,并加载对应环境变量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/
  • 修改 (*)ms.env.json
"EMAIL_HOST": "smtp.iflab.org",
"EMAIL_PORT": 25,
"EMAIL_USE_TLS": true,

诸多原因,不推荐腾讯企业邮箱

  • 修改 (*)ms.auth.json
"EMAIL_HOST_USER": "*****",
"EMAIL_HOST_PASSWORD":"*****",
  • 然后重启 edxapp:
sudo /edx/bin/supervisorctl restart edxapp:

一般情况使用默认的本地 smtp 服务,绝对会被拦截

更换域名

  • 切换至 edxapp 账户,并加载对应环境变量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/
  • 修改 (*)ms.env.json
"CMS_BASE": "studio.edustack.net",
"PREVIEW_LMS_BASE": "lms.mnu.cn",
"LMS_BASE": "mooc.mnu.cn",
"SITE_NAME": "mooc.mnu.cn",

如果收到邮件为localhost,则是此处 SITE_NAME 参数未修改正确

  • 然后重启 edxapp:
sudo /edx/bin/supervisorctl restart edxapp:

更换网站名

  • 切换至 edxapp 账户,并加载对应环境变量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/
  • 修改 (*)ms.env.json
"PLATFORM_NAME": "eduX",

暂不建议中文名字。

i18n/汉化

  • 切换至 edxapp 账户,并加载对应环境变量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/
  • 修改 (*)ms.env.json
"LANGUAGE_CODE": "zh-cn",
  • 手动更新assets
sudo /edx/bin/edxapp-update-assets-lms
sudo /edx/bin/edxapp-update-assets-cms
  • 然后重启 edxapp:
sudo /edx/bin/supervisorctl restart edxapp:

此处只调用官方release 翻译包

加载主题

  • 切换至 edxapp 账户,并加载对应环境变量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/
  • 克隆主题至 /edx/app/edxapp/themes
cd /edx/app/edxapp/themes
git clone https://github.com/eduStack/eduStack-theme.git
  • 修改 (*)ms.env.json
"USE_CUSTOM_THEME": true
"THEME_NAME": "eduStack-theme",
  • 手动更新assets
sudo /edx/bin/edxapp-update-assets-lms
sudo /edx/bin/edxapp-update-assets-cms
  • 然后重启 edxapp:
sudo /edx/bin/supervisorctl restart edxapp:

修改证书下载地址

  • 切换至 certs 账户
sudo -u certs bash
cd /edx/app/certs
  • 修改 env.json
"CERT_DOWNLOAD_URL": "http://www.edustack.net:18090",
"CERT_URL": "http://www.edustack.net:18090",
"CERT_VERIFY_URL": "http://www.edustack.net:18090",

不要轻易更换端口。如若更换请记得更换 nginx 配置

  • 然后重启 certs
sudo /edx/bin/supervisorctl restart certs

一些管理命令

  • 列出所有 manage.py 命令参数(/edx/app/edxapp/edx-platform
sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp lms --settings aws
  • 建立一个超级账户
sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp lms --settings aws create_user -e iflab@bistu.edu.cn
sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp lms --settings aws changepassword iflab
sudo /edx/bin/edxapp-shell-lms aws
from django.contrib.auth.models import User
me = User.objects.get(username="iflab")
me.is_superuser - True
me.is_staff - True
me.save()
  • 删除一门课程
sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp cms --settings aws delete_course 组织名/课程代码/课程学期 commit
e.g:
sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp cms --settings aws delete_course bistu/M110/2014_T1 commit

也可通过具有 staff 权限的账号登陆 yourdomain/sysadmin 删除
如果删除失败,则数据库删除

删除课程代码为999的课程:

mongo
use edxapp
db.modulestore.find( { "_id.category" : "course" }, {'name':'1'} )
db.modulestore.remove({'_id.course': '999'})
  • 手动编译assets
sudo /edx/bin/edxapp-update-assets-lms
sudo /edx/bin/edxapp-update-assets-cms
  • 查看服务运行状态
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf status
  • 从github导入课程
cd /var/tmp
git clone https://github.com/edx/edx-demo-course.git
sudo -u www-data /edx/bin/python.edxapp /edx/bin/manage.edxapp cms --settings aws import /edx/var/edxapp/data /var/tmp/edx-demo-course
  • 数据库备份与恢复

备份

mongodump -d edxapp -o /var/tmp/
mongodump -d cs_comments_service_development -o /var/tmp/
mysqldump -uroot -p edxapp >/var/tmp/edxapp.sql
mysqldump -uroot -p ora >/var/tmp/ora.sql
mysqldump -uroot -p xqueue >/var/tmp/xqueue.sql
cd /var/tmp
tar cvf cs_comments_service_development.tar cs_comments_service_development/
tar cvf edxapp.tar edxapp/

恢复

cd /var/tmp
tar xvf *******.tar
mongorestore -d edxapp --directoryperdb /var/tmp/edxapp
mongorestore -d cs_comments_service_development --directoryperdb /var/tmp/cs_comments_service_development
mysql -u root -p
use edxapp;
source /var/tmp/edxapp.sql;
use ora;
source /var/tmp/ora.sql;
use xqueue;
source /var/tmp/xqueue.sql;

4 Comments

  1. Pingback: OPENEDX简明配置指南 - 数学黑板报

  2. Pingback: OPENEDX简明配置指南 - 数学黑板报

  3. 不知道怎么安装,能否发一份安装指南!我都装上了,但是就是点击“登录”或“注册”一片空白,什么也没有

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据