OpenEdx用户登录失败次数过多导致的账户锁定问题

       使用OpenEdx的过程中发现,当用户频繁登录失败会导致账号锁定。跟踪代码发现,相关的中文对应的英文如下:
This account has been temporarily locked due to excessive login failures
       根据英文提示,找到在dogwood中对应的代码位置如下(在新版本中已经不再这个文件了):

继续阅读OpenEdx用户登录失败次数过多导致的账户锁定问题

Tutor版本的OpenEdx的初始配置

       使用Tutor安装完成OpenEdx后即可通过域名方式进行访问,由于Tutor使用一个nginx的容器转发所有的网络流量,其利用域名分别处理对lms和cms的请求,但在内网中,这种方式反而麻烦。因此打算将其改成基于端口的模式,预期将lms和cms分别绑定在80和81端口。配置方式如下:

继续阅读Tutor版本的OpenEdx的初始配置

使用Tutor构建OpenEdx的ironwood版本镜像

      本次拟打算用比较新的tutor版本来构建镜像,当前最新的tag是v3.12.2。在使用前下载安装好docker-compose,这个docker-compose一定要直接下载二进制文件安装,ubuntu16.04自带的docker-compose版本太老,达不到tutor的要求,安装tutor使用命令如下:

继续阅读使用Tutor构建OpenEdx的ironwood版本镜像

试用Tutor构建OpenEdx的Docker镜像

一、环境准备
      本次打算使用”tutor”的 “release/hawthorn”的分支,在使用的过程中发现该分支需要使用”python3.6″的版本,因此先在Ubuntu16.04安装python3.6,安装过程不再描述。安装后使用virtualenv创建虚拟环境,创建并激活虚拟环境后用源码的方式安装”tutor”,下载并安装tutor的过程如下:

继续阅读试用Tutor构建OpenEdx的Docker镜像

用tutor启动docker版本的openedx

一、安装的过程:
     安装教程提到了简易的安装方式,即使用“tutor local quickstart”即可进行镜像下载和启动。该命令会在启动时提示用户输入网站域名等信息,这些信息会被保存在“~.local/share/tutor/env/local”目录中,其中有这个文件比较重要:
~.local/share/tutor/env/local/docker-compose.yml             #存放服务的启动文件
~.local/share/tutor/env/local/docker-compose.jobs.yml     #存放初始化的启动文件
~.local/share/tutor/env/apps/nginx/                                    #存放nginx的配置文件
~.local/share/tutor/env/apps/openedx/                               #存放lms,cms的配置文件

继续阅读用tutor启动docker版本的openedx

如何配置OpenEdx的Ecommerce

         ecommerce是openedx的商品购买模块,在新的openedx版本中,ecommerce已经取代了原来的shoppingcart模块。由于ecommerce模块较为复杂,其与edx-platform通过API接口进行通信。由于这种原因其配置和调试较为困难。为了方便文档的表述,将ecommerce的域名为http://ecommerce.site,将edx-platform中lms模块的域名为http://lms.site,配置过程如下(本操作基于ginkgo.2版本):

继续阅读如何配置OpenEdx的Ecommerce

如何在Ecommerce中加入支付宝模块

一、对于将Ecommerce加入支付宝模块,可以参考其内部PayPal模块的实现流程。PayPal的核心代码有三部分,描述如下(本工作在ginkgo.2版本上测试):
    1、通过JS和Python脚本生成支付链接,并跳转到PayPal网站。
    2、通过Python脚本和PayPal的SDK完成用户支付完成后的转跳和交易的处理。
    为了便于代码的跟踪和调试,将ecommerce和lms支付过程中的页面转跳和操作逻辑进行记录,以便于后期扩展支付功能。为了使得该记录在后续浏览时具有通用性和易读性,将lms的站点链接统一记录为”http://lms/“,将ecommerce的站点记录为”http://ecommerce/“。

继续阅读如何在Ecommerce中加入支付宝模块

Ecommerce的汉化

      当前ecommerce默认的组件为英文,看到“ecommerce/conf/locale/zh_CN/LC_MESSAGES”目录中有中文的翻译文件,但是翻译的内容比较少,估计还要做大量的工作。本工作在ginkgo.2版本上进行。
一、基础性配置
      由于对ecommerce翻译所需要执行的命令和修改的配置文件不清楚,因此先从configuration的playbook文件内容入手。如下为configuration文件的部分内容:

继续阅读Ecommerce的汉化

关于OpenEdx的Ecommerce的配置

OpenEdx项目中的ecommerce和edx-platform是两个独立的组件,两个组建部署后通过Web API接口相互调用和访问数据。ecommerce的目的是为了取代edx-platform中自带的购物车,这样使得课程购买和课程播放管理相互独立,程序更容易维护。

OpenEdx的官网有如何安装ecommerce组件的介绍,单这个仅仅适用于开发版本。在安装OpenEdx的时候ecommerce一般会直接安装上,但仍需要配置。所涉及到的配置文件有edx-platform的lms.env.json、lms.auth.json和ecommerce的ecommerce.yml(/edx/etc/ecommerce.yml)文件的配置。主体过就是配置两个组件的oauth2功能。

最近在网上找到一篇博客,详细记录了设置的过程:相关博文1