Canvas 安装 Rich Content Editor

Nodejs 版本:12.0 以上

Github Repository: https://github.com/instructure/canvas-rce-api

 

克隆代码

$ cd /data

$ git clone https://github.com/instructure/canvas-rce-api.git canvas-rce

安装 Node 依赖

$ cd canvas-rce

$ npm install --production

如提示权限问题,可尝试:

$ npm install --unsafe-perm=true --allow-root

 

安装 nodemon 

$ sudo npm install -g nodemon

 

RCE 配置文件

$ cp .env.example .env

编辑配置文件

$ nano .env

参考配置如下:

PORT=3000

NODE_ENV=production

STATSD_HOST=127.0.0.1

STATSD_PORT=8125

ECOSYSTEM_SECRET=astringthatisactually32byteslong

ECOSYSTEM_KEY=astringthatisactually32byteslong

#CIPHER_PASSWORD=TEMP_PASSWORD

#FLICKR_API_KEY=fake_key

#UNSPLASH_APP_NAME=canvas-rce-api-dev

#UNSPLASH_APP_ID=fake_app_id

#UNSPLASH_SECRET=fake_secret

#YOUTUBE_API_KEY=fake_key

其中 ECOSYSTEM_SECRET 等效于 canvas/config/dynamic_settings.yml 文件中的  signing-secret,而 ECOSYSTEM_KEY 等效于 encryption-secret,对照 Canvas 配置文件目录 config 下面的 dynamic_settings.yml 中设置的两串密钥,同时将 NODE_ENV 修改为 production

 

修改 Apache 虚拟主机配置文件

$ sudo nano /etc/apache2/sites-available/canvas.conf

80 和 443 节点末尾都添加:ProxyPass /rce/ http://127.0.0.1:3000/

注意端口号3000后面的 "/"

 

修改 Canvas 配置文件:

$ nano config/dynamic_settings.yml

将 app-host 修改为代理地址:

rich-content-service:

       app-host: "https://xxxxxxx.com/rce"

 

执行如下命令,启用 Apache 相关模块:

$ sudo a2enmod proxy

$ sudo a2enmod proxy_http

$ sudo a2enmod proxy_balancer

$ sudo a2enmod lbmethod_byrequests

 

如果后期 RCE 单独运行在另外一台独立服务器,可执行如下命令,禁用 Apache 相关模块(注意顺序):

$ sudo a2dismod lbmethod_byrequests

$ sudo a2dismod proxy_balancer

$ sudo a2dismod proxy_http

$ sudo a2dismod proxy

 

修改 apache.conf

$ sudo nano /etc/apache2/apache2.conf

修改:

ServerName localhost

 

重启 Apache 服务

$ sudo service apache2 restart

 

启动 Nodejs App

$ npm run start:dev

 

浏览器打开:https://xxxx.xxxxxx.com/rce/ (注意路径 rce 后面的 "/" 不可省略)页面返回: Hello, from RCE Service

 

开机自动启动

$ sudo npm install pm2@latest -g

 

Canvas LMS 开启 RCE 增强:

打开:https://canvas.xxxxxx.com/accounts/site_admin/settings

 

安装 PM2 随机启动

$ sudo npm i -g pm2

 

开启开机自启动,顺序不要错:

# 启动项目

$ pm2 start /data/rce/app.js

# 保存当前进程状态

$ pm2 save

# 生成开机自启动服务

$ pm2 startup

#开机服务

$systemctl enable pm2-root

#重启测试

$ sudo reboot

相关资讯

什么是 Canvas LMS 学习系统?

Canvas 是一个基于网络的学习管理系统或 LMS。学习机构、教育工作者和学生使用它来访问和管理在线课程学习材料,并就技能发展和学习成就进行交流。 Canvas 包括各种可定制的课程创建和管理工具、课程和用户分析和统计以及内部沟通工具。 机构可能会为用户提供一个 Canvas 帐户,或者个人用户可以通过注册自己的帐户来试用免费版本。详细了解世界各地的机构如何使用 Canvas来提高学生的参与度和成功率。

什么是 Canvas LMS 学习系统?