?

基于edX的北大慕課平臺搭建及與北大視頻資源庫的集成

2017-04-15 00:01楊公義
中國教育信息化·高教職教 2016年12期

楊公義

摘 要:edX開源慕課平臺有4種安裝方式,在服務器上的全新安裝,需要滿足一定的軟硬件和網絡要求,網絡條件好時可采用一步安裝法,北大采用手動安裝法,采用transifex-client和gettext對edX平臺進行了漢化。edX平臺的正常使用必須的配置和管理包括首頁修改、配置管理員Email、創建超級管理員、創建和刪除課程。在創建一門課的完整過程中,通過rtmp協議添加一講來自北大視頻資源庫中的視頻。北大校內edX慕課平臺主要作為師生的教學輔助平臺。

關鍵詞:edX安裝漢化;edX配置管理;edX課程建設;edX流媒體集成

中圖分類號:TP315 文獻標志碼:B 文章編號:1673-8454(2016)23-0046-05

一、引言

MOOC世界的三駕馬車Coursera、edX、Udacity中只有edX平臺是開源的。edX平臺是麻省理工學院和哈佛大學創立,由全球27所大學院校組成的xConsortium加以管理。edX平臺大部分功能基于Python實現,其中也包括一些Ruby和Node.js代碼。清華大學的學堂在線也是基于edX搭建的。安裝基于edX平臺時,按照官方提供的一步安裝法,會因為用戶的網絡條件等原因而安裝不成功。比如,在官方網站上沒有寫明需要手動安裝一個名為polib-1.0.3的軟件包,在國內就必須手動安裝該軟件包,因為該軟件包的官方網站國內不能直接訪問。edX的系統設計者是把教學視頻是放在第三方視頻網站youtube上的,而在國內該網站(http://www.youtube.com/)也無法訪問。北大基于edX開源系統搭建了北大慕課平臺,并實現了通過RTMP流直接調用“北大視頻資源庫”中的教學視頻的功能。

二、edX開源慕課平臺的安裝方式概述

針對不同的需求,edX開源慕課平臺有4種安裝方式[1]。①開發者包安裝:為了方便開發而簡化了很多配置,能讓開發者發現和修復問題[2];②完全包安裝:盡管這種類似產品的安裝,包括了很多edX服務,但并不推薦生成環境下采用這種方式[3];③亞馬遜機器映像安裝:通過預先安裝好的亞馬遜機器映像來調用亞馬遜的Web服務[4];④在Ubuntu 12.04 64-bit服務器上的全新安裝[5]。所有安裝方式都帶有的組件是:LMS(學習管理系統)、Studio(課程制作環境)、論壇、討論組、搜索。后三種安裝方式比第一種增加了演示課程組件和Xqueue(為自定義級別而采用RabbitMQ的隊列服務器)。本文采用最后一種安裝方式:在Ubuntu 12.04 64-bit服務器上全新安裝,在生產環境下推薦采用這種安裝方式。

三、edX開源慕課平臺安裝的軟硬件和網絡要求

1.硬件要求、服務器版本要求及連接國際網的要求

(1)硬件要求

內存推薦4G以上;CPU至少2G;硬盤50G以上。

(2)服務器版本要求

Ubuntu 12.04 amd64。

(3)連接國際網的要求

安裝edX之前必須保證服務器能上國際網,服務器上國際網的方法共4種:①直接上網,不需要任何配置;②通過PPPoE 進行ADSL撥號上網;③通過代理服務器上網;④通過VPN撥號上網。下面詳細說明Ubuntu服務器的后3種上網方法。北大采用的是第4種。

2.Ubuntu服務器通過PPPoE進行ADSL撥號上網的方法

首先啟用有線連接:sudo ifconfig eth0 up,然后執行pppoeconf命令:sudo pppoeconf,接下來一個基于文本菜單的程序會指導我們完成配置:

①確認以太網卡已被檢測到;②輸入PPPoE的用戶名;③輸入PPPoE的密碼;④如果已經配置了一個PPPoE的連接,會通知這個連接將會被修改;⑤彈出一個選項:詢問是否需要'noauth'和'defaultroute'選項和去掉'nodetach',選擇"Yes";⑥Use peer DNS,選擇 "Yes";⑦Limited MSS problem,選擇"Yes";⑧詢問是否在需要在進入系統的時候自動連接,選擇"Yes";⑨詢問是否馬上建立連接,選擇"Yes";至此,通過PPPoE成功撥號上網。需要手動斷開網絡時,可以在終端輸入:sudo poff;需要手動連網時,可以在終端中輸入:sudo pon dsl-provider。

3.Ubuntu服務器通過代理服務器上網的方法

在/etc/environment文件中增加代理服務器及端口信息,sudo vi /etc/environment,增加下列內容:

https_proxy=http://proxy.local.com:PORT,

ftp_proxy=http://proxy.local.com:PORT,

socks_proxy=http://proxy.local.com:PORT,

no_proxy=localhost,

JAVA_OPTS="-DproxyHost=proxy.local.com -DproxyPort=PORT"。

為了保證每次重啟電腦后代理的配置仍然可用。需要修改/ect/sudoers和/etc/apt/ap

t.conf兩個文件。在/ect/sudoers中的Defaults env_reset這一行下面增加一行:

Defaults env_keep += "http_proxy https_prox

y

ftp_proxy socks_proxy no_proxy JAVA_OPT

S"

在/etc/apt/apt.conf中增加兩行:

Acquire::http::proxy "http://proxy.local.com:P

ORT";

Acquire::https::proxy http://proxy.local.com:P

ORT。

4.Ubuntu服務器通過PPTP協議進行VPN撥號上網的方法

安裝pptp客戶端軟件sudo apt-get install pptp-linux,創建VPN連接通道:myvpn sudo pptpsetup --create myvpn --server xxx.xxx.xxx.xxx --username xx1--password xx2--encrypt –start。如果VPN服務器不需要加密,可不加--encrypt參數?,F在已經在/etc/ppp/peers目錄下面,生成一個叫myvpn的文件,用戶名和密碼會寫在/etc/ppp/chap-secrets中??赏ㄟ^跟蹤數據包到達網絡主機所經過的路由工具traceroute來測試VPN。安裝traceroute:sudo apt-get install traceroute,traceroute www.163.com,返回結果1 localhost (192.168.1.1)。查看結果發現第1跳localhost后面()中的IP不是VPN的服務器地址,所以需要修改默認路由。修改默認路由之前要通過ifconfig查看網絡連接配置,得到VPN連接的名稱,在ifconfig命令的返回結果中有一個名為ppp0的Point-to-Point協議的VPN連接,所以VPN連接的名稱為ppp0。修改默認路由的方法為sudo ip route del default,sudo ip route add default dev ppp0,再次通過traceroute追蹤路由:traceroute www.163.com,返回結果1 localhost (),返回的結果中的localhost()中的IP是VPN的服務器地址,至此VPN配置成功。重啟VPN連接的命令sudo pon myvpn,停止VPN連接的命令sudo poff myvpn。

5.在服務器能上網的情況下更新Ubuntu包的源

在終端依次執行下列命令sudo apt-get update-y,sudo apt-get upgrade-y,sudo reboot。

四、edX開源慕課平臺的安裝

edX可采用一步安裝法和手動安裝法。一步安裝法,一步安裝法即

wget https://raw.githubusercontent.com/edX/co

nfiguration/master/util/install/sandbox.sh -O-| bash

一步安裝法的缺點是:因為網絡問題,安裝的過程中會出現一些錯誤,解決辦法只能是,保證能連國際網的情況下,重新執行一步安裝法,已經執行的步驟還要重新執行一次,費時費力,對于網絡狀態非常好的用戶,才建議采用一步安裝法。

北大采用的手動安裝方法,詳細步驟如下:建議在安裝前把超級管理員的密碼改成簡單易記的,因為安裝時如果采用sudo su會導致一些安裝腳本失敗,安裝的過程中差不多要sudo二十幾次,每次都需要輸入密碼。安裝一個支持ruby的vim編輯器sudo apt-get install git vim-nox,修改/etc/apt/sources.list,去掉"partner" and "extras" 的資源庫的注釋:deb http://archive.canonical.com/ubuntu precise partner,deb-src http://archive.canonical.com/ubuntu precise partner,deb http://extras.ubuntu.com/ubuntu precise main,deb-src http://extras.ubuntu.com/ubuntu precise main。

再次更新Ubuntu包的源并重啟服務器:sudo apt-get update,sudo apt-get dist-upgrade,sudo reboot。重新配置shell為bash而不是dash:sudo dpkg-reconfigure dash在出現的對話框中Use dash as the default system shell(/bin/sh)選擇NO。創建并進入/home/mooc/edX_all目錄,執行git clone克隆一個edX-platform的本地版,cd /home/mooc/edX_all,git clone git://github.com/edX/edX-platform.git,cd edX-platform/,執行下列腳本:./scripts/create-dev-env.sh,因為會出現各種各樣的錯誤,所以該安裝腳本會被多次重復執行,如果出錯為:Looks like you're already in the "edX-platform" virtual env.Run `deactivate` and then re-run this script。解決辦法為執行deactivate,再次執行上述腳本。mooc@edX:~/edX_all/edX-platform$./scripts/create-dev-env.sh。如果出錯為:Import failed (cannot load such file -- sys/proctable),解決辦法為gem install sys-proctable,gem install colorize再次執行上述腳本。如果出錯為:wrong number of arguments (2 for 1),解決辦法為sudo apt-get install libopenssl-ruby1.9.1,gem install rake,rbenv rehash,然后再次執行上述腳本。如果出錯為:cannot load such file-launchy,解決辦法為gem install launchy,再次執行上述腳本。如果出錯為:Error timed out while getting http://bitbucket.org/izi/polib/downloads/polib-1.0.3.tar.gz (from https://pypi.python.org/simple/polib/),因為該官網國內無法訪問,解決辦法不能為gem install polib,也不能為pip install polib,只能為到其他網站搜索一個polib,例如,手動下載下列文件http://pkgs.fedoraproject.org/repo/pkgs/python-polib/polib-1.0.3.tar.gz/,并上傳到/home/mooc,然后手動安裝polib:$ tar xzfv polib-1.0.3.tar.gz,$ cd polib-1.0.3,$ python setup build,如果出錯為:python: can't open file 'setup': [Errno 2] No such file or directory,解決辦法為python setup.py build,然后執行$ sudo python setup.py install,如果出錯為:-bash: /home/mooc/.rvm/scripts/rvm: No such file or directory解決辦法為$ sudo apt-get install ruby-rvm,cd ~,source .bashrc,編輯/home/mooc/edX_all/edX-platform/requirements/edX/base.txt , 找到“polib = 1.0.3" ,把這一行注釋掉#polib==1.0.3;再次執行create-dev-env.sh腳本。編輯 scripts/create_dev_env.sh文件,找到"pip install -r $BASE/edX-platform/requirements/edX/pre.txt",在后面添加一行"pip install http://bitbucket.org/izi/polib/get/1.0.3.tar.gz",原因是:polib依賴項經過pypi的解析得到的下載地址是http://bitbucket.org/izi/polib/downloads/polib-1.0.3.tar.gz,但在我國內陸,這個地址上訪問不了,而polib是必須的依賴項,所以只能是使用變相的方式將其安裝上去。再次執行上述create_dev_env.sh腳本。終于成功了Fixing your git default settings Success??!

啟動edX:$ source /etc/bash_completion.d/virtualenvwrapper,cd ~/edX_all/edX-platform,$workon edX-platform,$ rake lms第一次執行rake lms可能會出錯: [sass --load-path ./common/static/sass --u...]。解決辦法為:$ gem install sass。(edX-platform)mooc@edX:~/edX_all/edX-platform$ rake lms[cms.dev,0.0.0.0:8000],^Z,$ bg,瀏覽器中可以訪問http://162.105.14.247:8000(本地址限校內訪問),(edX-platform)mooc@edX:~/edX_all/edX-platform$ rake cms[dev,0.0.0.0:9000],^Z,$ bg。

瀏覽器中可以訪問http://162.105.14.247:9000,上面^Z意思是ctrl+Z,$ bg表示讓程序后臺執行。

五、edX開源慕課平臺的漢化

1.加載環境

Transifex是一個基于Web的集成翻譯平臺,transifex-client是Transifex的命令行客戶端工具,gettext是GNU國際化與本地化(i18n)函數庫,為了對edX漢化,需要安裝transifex-client和gettext,方法如下:$cd ~/edX_all/edX-platform, $sudo apt-get install transifex-client,sudo apt-get install gettext。啟用python的虛擬環境$source /home/mooc/.virtualenvs/edX-platform/bin/activate。

2.新建文件

為了下載edX語言包,需要到transifex 官網(https://www.transifex.com/projects/p/edX-platform/)注冊一個帳戶。例如用戶名yanggy密碼ygy。新建文件vim ~/.transifexrc,并輸入如下內容:hostname = https://www.transifex.com,password = ygy,token =,username = yanggy。

3.在~/edX_all/edX-platform/conf/locale/config文件中加入中文語言

增加的內容為{"locales" : ["zh_CN","en"], "dummy-locale" : "eo"}

4.修改~/edX_all/edX-platform/中的lms/envs/common.py和ms/envs/common.py

關鍵內容為:USE_I18N = True,TIME_ZONE = 'Asia/Shanghai',LANGUAGE_CODE='zh_CN',LANGUAGES = ( ('zh-cn', u'中文(簡體)'), # Chinese (China),)。

5.執行幾個命令

獲取項目的翻譯包tx pull -l zh_CN, 執行翻譯rake i18n:generate。如果出錯為:找不到/django-partial.po、django.po、django-partial.mo、django.mo、djangojs.po,解決辦法為:用瀏覽器訪問https://www.transifex.com/projects/p/edX-platform/,依次單擊語言包djangojs.po、django-partial.po、django.po、messages.po、mako.po再單擊“下載以供使用”下載到本地以后,再上傳到/home/mooc/edX_all/edX-platform/conf/locale/en/LC_MESSAGES中,再次執行翻譯命令$ rake i18n:generate,重啟服務器完成漢化工作$ sudo reboot。完成漢化后的效果如圖1所示。如果用戶登錄之后的內部頁面沒有漢化,解決辦法為:在用戶注冊時在偏好的語言字段輸入zh-cn。

六、edX開源慕課平臺的配置和管理

1.首頁定制

首頁的源文件位置是:/home/mooc/edX_all/edX-platform/lms/templates/index.html,首頁banner位置是/home/mooc/edX_all/edX-platform/lms/static/images/homepage-bg.jpg。

2.配置管理員Email

為了讓edX平臺能給用戶發郵件,需要進行如下配置,修改~/edX_all/edX-platform/目錄下的cms/envs/common.py和lms/envs/common.py,關鍵代碼:郵件服務器主機EMAIL_HOST = '162.105.129.120',郵件服務器端口EMAIL_PORT = 25,是否使用安全傳輸層協議:EMAIL_USE_TLS = False,郵箱用戶名:EMAIL_HOST_USER = '00061*',郵箱密碼:EMAIL_HOST_PASSWORD = '*',默認發件人:DEFAULT_FROM_EMAIL = 'ygy@pku.edu.cn',默認反饋Email:DEFAULT_FEEDBACK_EMAIL = 'ygy@pku.edu.cn',服務器Email:SERVER_EMAIL = 'ygy@pku.edu.cn'。

3.創建超級管理員

cd /home/mooc/edX_all/edX-platform,$ rake django-admin["createsuperuser"],系統提示用戶輸入用戶名、郵箱、密碼、最后系統提示創建成功。超級管理員登錄下列后臺地址:http://162.105.14.247:9000/admin/,超級管理員可以創建教師帳戶,教師帳戶可以創建課程,學生帳戶可以在首頁進行注冊。

4.超級管理員刪除課程的方法

edX在前臺沒有刪除課程的功能,刪除課程只能通過后臺以下列命令進行。例如有一門課前臺瀏覽地址為:http://162.105.14.247:8000/courses/pku/001/2013/,刪除這門課程的方法為:cd /home/mooc/edX_all/edX-platform,$rake cms:delete_course LOC=pku/001/2013 COMMIT=commit。

七、在edX慕課平臺中創建一門課并添加一講來自北大視頻資源庫中的視頻

教師帳戶在圖1中登錄成功后,可在右上角單擊“新建課程”,輸入下列課程元數據:課程名稱、組織(學校的英文名稱,如PKU)、課程代碼(如ETC17)、課程運行(指學期,如2014),后面3個元數據是課程url的一部分,所以不能有空格和特殊字符,并且創建之后不能修改,成功創建一門課后直接進入了該課的課程大綱編輯頁面,然后單擊“添加新章節”,輸入章的名稱(如第1章 Flex概述),單擊保存,然后單擊“添加新的小節”,輸入小節名稱(如,1.1Flex簡介),單擊保存進入圖2,單擊小節名稱左側的向右箭頭使它向下,出現“New Unit”創建新組件按鈕。在圖2中單擊“New Unit”創建新組件按鈕進入圖3,新組件有四種類型:討論、內容、問題、視頻。對于一個通過http協議可訪問的視頻,如http://124.95.153.9/cm1/flvs/ca/QxtYM/uLf93xvlOf-10.mp4,可直接添加進edX,方法是在圖3中單擊Video進入圖4,把這個http地址輸入Video URL字段,單擊保存,在前臺LMS中瀏覽該視頻的效果如圖7所示。http協議可訪問的mp4視頻雖然可以很容易地加入edX課程中,但不利于保護視頻版權,因為前臺用戶可以通過查看源代碼的方式,獲取該視頻的地址,進而能下載該視頻。為保護視頻版權,北大基于Flash流媒體服務器搭建了北大視頻資源庫,北大視頻資源庫能方便地為第三方系統提供rtmp流協議的視頻服務,如圖5所示,登錄北大視頻資源庫瀏覽到所需要的一講視頻,單擊拷貝按鈕,就在用戶的剪貼板中放入了一講視頻的播放代碼:

。把這段代碼加入edX的方法如下,在圖3中單擊html輸入標題。然后單擊text,再單擊編輯,如圖6所示,在圖6中CTRL+V粘貼來自北大視頻資源庫中的視頻,單擊保存。在前臺LMS中瀏覽該視頻的效果如圖8所示,圖8中的播放控制條,可以快進、快退、全屏播放等。因為是rtmp協議的視頻播放,前臺用戶只能在線觀看不能下載,很好地保護了版權。

八、結語

北大成功地搭建、漢化和配置了基于edX的校內慕課平臺,并實現在edX系統中能通過RTMP流觀看視頻資源庫中的視頻,很好地保護了視頻的版權。校內edX慕課平臺主要作為北大校內師生的教學輔助平臺,實現翻轉課堂教學法,與傳統教學進行優勢互補,在校內使用的同時進行課程建設,如果教師及相關管理部門同意將某門課程向社會公開,就把該課程從校內edX平臺遷移進國際edX平臺(http://www.edX.org/school/pekingx)。建設北大校內慕課平臺為北大師生提高了平臺訪問速度,節省了國際流量。

參考文獻:

[1]edX/configuration[EB/OL].https://github.com/edX/configuration/wiki.

[2]edX Developer Stack[EB/OL].https://github.com/edX/configuration/wiki/edX-Developer-Stack.

[3]edX Full Stack[EB/OL].https://github.com/edX/configuration/wiki/edX-Full-Stack.

[4]Single AWS server installation using Amazon Machine Image[EB/OL].https://github.com/edX/configuration/wiki/Single-AWS-server-installation-using-Amazon-Machine-Image.

[5]edX Ubuntu 12.04 64 bit Installation[EB/OL].https://github.com/edX/configuration/wiki/edX-Ubuntu-12.04-64-bit-Installation.

(編輯:王曉明)

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合