canvas-LMSインストール日本語版

canvas-LMSインストール日本語版

赤字はキャレット合同会社 椎原のコメントです。

マーケットプレイス版、Git版ともに Free-for-Teachers version of Canvasの疑いがあり(コミュニティの回答待ち)、全機能が使えるわけではないようです(例えば「分析」機能は見当たりません)。念のため。まあ、Instructure, Inc.もボランティアでやっているわけでないので、カスタマイズされたフル機能版は契約してくださいよということなんでしょう。

今回、canvas-LMSをインストールしようとしましたが、ソースと説明のバージョンが古いところが散見され、インストールが上手くいかなかったのでこのバージョンは断念しました。

なお、この文書は下記のgithubの英文をDeepLという翻訳ソフトで日本語化したもので、意味が分かりにくいところがあるかと思います。不明な点は原文に当たってください。

では
---

https://github.com/instructure/canvas-lms/wiki/Production-Start

Webサイトの設定や管理、具体的にはApacheやRuby on Railsの一般的な設定について最低限の知識があることを前提としています。

Ubuntu 14.04と16.04 LTSを使って書かれ、テストされています。最後に、CanvasはRAMを好みます。小規模な構成でも動作しますが、特に1台のサーバーですべてを実行する場合は、少なくとも8GBのRAMを搭載したサーバーをお勧めします。

データベースによってホストされている1台または複数のサーバーでCanvasを実行することができます。キャンバスがホストされているサーバーと同じサーバーにデータベースをインストールすることもできますし、別々にインストールすることもできます。どのような方法を選択しても、すべての Canvas インスタンスがデータベースサーバーと通信できるようにする必要があります。

さらに、自動化されたジョブを実行するために、1つのCanvasアプリサーバーが必要です。ここでも、これはWebサーバーの1つであっても、専用ノードであっても構いません。自動ジョブデーモンをウェブサーバーと一緒に実行しても問題はありませんが、トラフィックが多い場合は、最高のパフォーマンスを得るためにジョブトラフィックとユーザートラフィックを別のノードに分割しておくことをお勧めします。

※AWSのOSがubuntuの場合、以下のコマンドのsysadminはubuntuに読み替えてください。

Database installation and configuration

Canvasが使用しているライブラリであるRailsは多くのデータベースアダプタをサポートしていますが、主にPostgresとSQLite(テスト用)を使用しています。このチュートリアルは本番環境を設定するためのものなので、Postgresをお勧めします。

Canvasを実行するのと同じサーバーでPostgresを実行することもできますし、そうでなくても構いません。それは本当に重要ではありません。ただ、Canvasを実行しているサーバがPostgresデータベースと通信できることを確認してください。

sysadmin@dbserver:~$ sudo apt-get install postgresql-9.5

別のサーバでPostgresを実行するCanvasが実行されるサーバとは異なるサーバでPostgresを実行している場合、Postgresが外国のクライアントからの接続をリッスンしていることを確認する必要があります。これは、Postgresのドキュメントに記載されているようにpostgresql.confとpg_hba.confを編集することで行うことができます。

Postgresの設定
Postgresの内部にCanvasユーザを設定したいと思います。以下のコマンドでは、CanvasがPostgresとは異なるサーバ上で動作している場合、localhostをCanvasが動作しているサーバのホスト名に置き換えることに注意してください。

# createuser will prompt you for a password for database user
sysadmin@dbserver:~$ sudo -u postgres createuser canvas --no-createdb \
--no-superuser --no-createrole --pwprompt
sysadmin@dbserver:~$ sudo -u postgres createdb canvas_production --owner=canvas

Getting the code

gitをインストール

sysadmin@appserver:~$ sudo apt-get install git-core

canvasを取得する

sysadmin@appserver:~$ git clone https://github.com/instructure/canvas-lms.git canvas
sysadmin@appserver:~$ cd canvas
sysadmin@appserver:~$ git checkout stable

Code installation

Canvasのコードを実行する場所に置く必要があります。Unixマシンでは、以下のようなものを選ぶと良いでしょう。

/var/canvas

tarballまたはチェックアウトして、canvasディレクトリ内のすべてのディレクトリ(app、config、db、doc、publicなど)が、選択したこの新しいディレクトリ内に存在するように、コンテンツを選択したこのディレクトリに移動させてください。

ここでは、/var/canvas(または選んだもの)をRailsアプリケーションのルートとして参照します。

sysadmin@appserver:~$ sudo mkdir -p /var/canvas
sysadmin@appserver:~$ sudo chown -R sysadmin /var/canvas
sysadmin@appserver:~$ cd canvas
sysadmin@appserver:~/canvas$ ls
app db Gemfile log Rakefile spec tmp
config doc lib public script test vendor
sysadmin@appserver:~/canvas$ cp -av . /var/canvas
sysadmin@appserver:~/canvas$ cd /var/canvas
sysadmin@appserver:/var/canvas$ ls
app db Gemfile log Rakefile spec tmp
config doc lib public script test vendor

Dependency Installation

Canvasは2017-04-22リリース時点でRuby 2.4.0が必要になりました。

ここで、Canvasが必要とするRubyライブラリとパッケージをインストールする必要があります。Debian/Ubuntuでは、インストールが必要なパッケージがいくつかあります。Ubuntuを実行している場合は、以下のコマンドを使用して、必要なRubyのバージョンを取得するためにPPAを追加する必要があります。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:brightbox/ruby-ng
$ sudo apt-get update

$ sudo apt-get install ruby2.4 ruby2.4-dev zlib1g-dev libxml2-dev \
libsqlite3-dev postgresql libpq-dev \
libxmlsec1-dev curl make g++

Node.jsのインストール。

$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install nodejs

Postgresをインストールした後、システムユーザ名をpostgresスーパーユーザに設定する必要があります。これは、以下のコマンドを実行することで行うことができます。

$ sudo -u postgres createuser $USER
$ sudo -u postgres psql -c "alter user $USER with superuser" postgres

Canvasの依存関係のほとんどはRuby Gemsです。Ruby GemsはRubyに特化したパッケージ管理システムで、オペレーティングシステムのパッケージ管理システムと直交的に動作します。

BundlerとCanvasの依存関係
Canvasは、バージョン管理された依存関係を管理するために、Ruby Gemsの上に追加のレイヤーとしてBundlerを使用しています。Bundlerは素晴らしいです。

sysadmin@appserver:/var/canvas$ sudo gem install bundler --version 1.13.6
sysadmin@appserver:/var/canvas$ bundle _1.13.6_ install --path vendor/bundle

Canvas は npm ではなく yarn を優先するようになりました。(注意:2018年9月15日現在、必要なyarnのバージョンは1.10.1で、具体的にはsudo apt-get update && sudo apt-get install yarn=1.10.1-1)

sysadmin@appserver:/var/canvas$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sysadmin@appserver:/var/canvas$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sysadmin@appserver:/var/canvas$ sudo apt-get update && sudo apt-get install yarn=1.10.1-1

また、python がインストールされていることを確認してください (contextify パッケージに必要です)。

続いてノードモジュールをインストールします。

sysadmin@appserver:/var/canvas$ yarn install

Canvas default configuration

データベースのすべてのテーブルを設定する前に、Railsのコードはいくつかの設定ファイルに依存しています。これらについては、もう少し詳しく見ていきましょう。Canvasツリーのルートから、以下のようにデフォルトの設定値を引き出します。

sysadmin@appserver:/var/canvas$ for config in amazon_s3 database \
delayed_jobs domain file_store outgoing_mail security external_migration; \
do cp config/$config.yml.example config/$config.yml; done

Dynamic settings configuration

このコンフィグファイルは、canvasでコンサルクラスタを実行したくない場合に便利です。DynamicSettingsクラスに見つけさせたいコンフィグデータを提供するだけで、Consulデータの呼び出しが発行されたときにいつでもそれを使用します。データは以下の例のような形をしていて、関連するデータセットのための1つのキーと、キーと値のペアのハッシュ(入れ子にしない)を指定します。

sysadmin@appserver:/var/canvas$ cp config/dynamic_settings.yml.example config/dynamic_settings.yml
sysadmin@appserver:/var/canvas$ nano config/dynamic_settings.yml

Database configuration(データーベースの設定)

※パスワードだけで良い?

ここでは、Postgresサーバと本番環境のデータベースを指すようにデータベースの設定を行う必要があります。config/database.ymlファイルを開き、本番環境セクションを見つけてください。このファイルは以下のようなエディタで開くことができます。

sysadmin@appserver:/var/canvas$ cp config/database.yml.example config/database.yml
sysadmin@appserver:/var/canvas$ nano config/database.yml

Postgresサーバの場所と認証情報を反映させるために、このセクションを更新してください。ここには、Postgresの設定手順で設定したパスワードとデータベース名を、他にも設定したものと一緒に入力します。

Outgoing mail configuration

Canvasが正常に動作するためには、送信SMTPメールサーバーが必要です。必要なのは、有効な発信SMTP設定を取得することだけです。config/outgoing_mail.ymlを開きます。

sysadmin@appserver:/var/canvas$ cp config/outgoing_mail.yml.example config/outgoing_mail.yml
sysadmin@appserver:/var/canvas$ nano config/outgoing_mail.yml

本番セクションを見つけ、SMTPプロバイダの設定に合わせて設定します。domainとoutgoing_addressフィールドはSMTP用ではなく、Canvas用であることに注意してください。 domainは必須で、送信メールの送信元となるドメイン名です。outgoing_addressはオプションで、指定した場合、Canvasが送信するメールのFromフィールドのアドレスとして表示されます。

認証を使用しない場合は、ユーザー名、パスワード、認証の行をコメントアウトしてください。

URL configuration

多くの通知メールや、Webリクエストによってトリガーされない他のイベントでは、Canvasはそれが表示されるURLを知る必要があります。今のところ、これらはすべてドメイン名に基づいて構築されています。config/domain.ymlのプロダクションセクションを、Canvasのインストールに適したドメイン名に編集してください。ドメインフィールドについては、これは http:// と次の / の間の部分になります。 Instructure は、canvas.instructure.com を使用しています。

sysadmin@appserver:/var/canvas$ cp config/domain.yml.example config/domain.yml
sysadmin@appserver:/var/canvas$ nano config/domain.yml

オプションの files_domain フィールドは、ユーザーがアップロードしたファイルをホストする予定で安全性を確保したい場合や、カスタムテーマでカスタム Javascript を許可したい場合に必要となります。files_domain は、同じ Apache サーバであっても、同じ IP アドレスであっても、ブラウザの観点からは異なるホスト名でなければなりません。

Security configuration

このファイルには、少なくとも20文字以上のランダム化された文字列を挿入する必要があります。

sysadmin@appserver:/var/canvas$ cp config/security.yml.example config/security.yml
sysadmin@appserver:/var/canvas$ nano config/security.yml

Generate Assets

Canvasが正常に動作するためには、いくつかのアセットを構築する必要があります。まず、生成されたファイルを保存するディレクトリを作成します。canvasuser に所有権を割り当てる予定で、そのユーザーがまだ存在していない場合に備えて、以下の Canvas の所有権のセクションを参照してください。

sysadmin@appserver:/var/canvas$ mkdir -p log tmp/pids public/assets app/stylesheets/brandable_css_brands
sysadmin@appserver:/var/canvas$ touch app/stylesheets/_brandable_variables_defaults_autogenerated.scss
sysadmin@appserver:/var/canvas$ touch Gemfile.lock
sysadmin@appserver:/var/canvas$ touch log/production.log
sysadmin@appserver:/var/canvas$ sudo chown -R canvasuser config/environment.rb log tmp public/assets \
app/stylesheets/_brandable_variables_defaults_autogenerated.scss \
app/stylesheets/brandable_css_brands Gemfile.lock config.ru
sysadmin@appserver:/var/canvas$ yarn install
sysadmin@appserver:/var/canvas$ RAILS_ENV=production bundle exec rake canvas:compile_assets
sysadmin@appserver:/var/canvas$ sudo chown -R canvasuser public/dist/brandable_css

その後の更新(初回のデプロイ時には不要

コードを更新する場合、データベース接続がない場所で canvas:compile_assets を実行した場合、既存のテーマをフルアップデートするために、コードが配置されていてアクティブな DB 接続が存在している場合は、次のように実行する必要があります。

sysadmin@appserver:/var/canvas$ RAILS_ENV=production bundle exec rake brand_configs:generate_and_upload_all

Database population

データベースが設定され、アセットがインストールされたら、実際にテーブルと初期データでデータベースを埋める必要があります。これは、アプリケーションのルートからレーキの移行と初期化タスクを実行することで行うことができます。

sysadmin@appserver:/var/canvas$ RAILS_ENV=production bundle exec rake db:initial_setup

この初期設定では、管理者アカウントの作成、デフォルトアカウントの名前、および Instructure に使用データを送信するかどうかを対話的にプロンプトが表示されることに注意してください。プロンプトは、次の環境変数を設定することで「事前に入力」することができます

Environment VariableValue(s) supported
CANVAS_LMS_ADMIN_EMAILE-mail address used for default administrator login
CANVAS_LMS_ADMIN_PASSWORDPassword for default administrator login
CANVAS_LMS_ACCOUNT_NAMEAccount name seen by users, usually your organization name
CANVAS_LMS_STATS_COLLECTIONopt_in, opt_out, or anonymized

Canvas ownership

Making sure Canvas can’t write to more things than it should.(Canvasが必要以上に書き込めないようにすること)

Canvas Railsアプリケーションを実行させたいユーザーを設定または選択します。これは、ウェブサーバ(Debian/Ubuntuの場合はwww-data)と同じユーザーでも、個人のユーザーアカウントでも、他のユーザーでも構いません。新しいユーザーを選択または作成したら、アプリケーションルート内のキーファイルの所有権をそのユーザーに変更する必要があります。

sysadmin@appserver:/var/canvas$ sudo adduser --disabled-password --gecos canvas canvasuser

Making sure other users can’t read private Canvas files(他のユーザーがプライベートなCanvasファイルを読めないようにする)

設定ディレクトリ (/var/canvas/config) には、パスワード、暗号化キー、その他のプライベートデータが含まれており、これが公開されると Canvas インストールのセキュリティが危うくなります。これらは config ディレクトリ内の .yml ファイルであり、canvasuser ユーザーのみが読めるようにしたいものです。

Making sure to use the “most restrictive” permissions(「最も制限的な」パーミッションを使用していることを確認する)

Passengerはconfig/environment.rbの所有権設定に基づいてアプリケーションを実行するユーザを選択します(所有権設定はls -lコマンドで見ることができます)。上記のパーミッションが設定されているファイル以外の他のすべてのファイルの所有権設定が制限されていることを確認し、canvasuserユーザアカウントのみが残りのファイルを読むことができるようにすることが賢明であることに注意してください。

Apache configuration

次にウェブサーバを設定する必要があります。Canvasのコンテンツを提供するためにApacheとPassengerを使用します。先に進む前に、 passenger パッケージを含む Phusion Passenger APT リポジトリを追加する必要があります。リポジトリをインストールしたら、apache と passenger パッケージをインストールする必要があります。Debian/Ubuntu を使用している場合は、次のように入力することで素早く行うことができます

sysadmin@appserver:/var/canvas$ sudo apt-get install passenger libapache2-mod-passenger apache2

mod_rewrite を使用するので、これを有効にしておきましょう。

sysadmin@appserver:/var/canvas$ sudo a2enmod rewrite

ApacheとPassengerをインストールしたら、ApacheとPassenger、そしてRailsアプリがすべてお互いを知るように設定する必要があります。ここでは簡単な概要を説明しますが、詳細については、Apacheを設定するためのPassengerのドキュメントを参照してください。

Configure Passenger with Apache

まず、Apache の設定で Passenger が有効になっていることを確認してください。Debian/Ubuntuでは、libapache2-mod-passengerパッケージが/etc/apache2/mods-enabled/の中に passenger.confと passenger.loadというシンボリックリンクを置いているはずです。それがない場合や、何らかの方法で無効化されている場合は、 passenger を実行することで passenger を有効にすることができます。

sysadmin@appserver:/var/canvas$ sudo a2enmod passenger

他の設定では、必要に応じてパスを適切な値に変更して、以下の行を Apache の設定に追加することを確認するだけです。

LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so
PassengerRoot /usr
PassengerRuby /usr/bin/ruby

※これはどこの設定? 上も下も、passenger.confを修正。httpd.confは空でいい。

パーミッションの問題でアプリケーションの起動に問題がある場合は、 passenger.conf、サイト設定ファイル、または httpd.conf にこの行を追加する必要があるかもしれません (ここで、canvasuser は Canvas が実行されるユーザーで、例えば Debian/Ubuntu システムでは www-data)。

PassengerDefaultUser canvasuser

Configure SSL with Apache

他のシステムでは、以下のようなものが設定にあることを確認する必要があります。

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/var/run/apache2/ssl_mutex
SSLCipherSuite HIGH:MEDIUM:!ADH
SSLProtocol all -SSLv2

※Apache2.4.x以降ではAllow from allが廃止されているため、以下のように変えること

 <Directory /var/canvas/public>
    Require all granted
#    Allow from all
    Options -MultiViews
  </Directory>

※Apache2.4.x SSLMutexが廃止されているので、以下のように変える http://hideaki-momose.blogspot.com/2014/04/apache_9.html

>versionアップ対応を頼まれてやってたらSSLMutexが下記のように弾かれたInvalid command ‘SSLMutex’, perhaps misspelled or defined by a module not included in the server configuration

下記のように修正し対応
#SSLMutex default
Mutex default ssl-cache

上記はACM使うのでそもそも不要の設定

Configure Canvas with Apache

ここで、特定のRailsアプリケーションについてPassengerに伝える必要があります。まず、実行したくないApache VirtualHostsを無効にします。Debian/Ubuntuでは、興味のない/etc/apache2/sites-enabledサブディレクトリにあるシンボリックリンクのいずれかのリンクを解除するだけです。他の設定では、不要な VirtualHost を削除したりコメントアウトしたりすることができます。

sysadmin@appserver:/var/canvas$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ここで、アプリ用の VirtualHost を作成する必要があります。Debian/Ubuntu では、/etc/apache2/sites-available/canvas という名前の新しいファイルを作成する必要があります。他の設定では、VirtualHosts の定義を置く場所を探します。このファイルは以下のように開くことができます。

sysadmin@appserver:/etc/apache2/sites-enabled$ sudo nano /etc/apache2/sites-available/canvas.conf

新しいファイル、または新しいスポットに、以下のスニペットを配置したいと思います。ServerName(2)、ServerAdmin(2)、DocumentRoot(2)、SetEnv(2)、Directory(2)と、後述の「SSL証明書についての注意点」で説明するSSLCertificateFile(1)とSSLCertificateKeyFile(1)を修正したいと思います。

Apacheのバージョン確認

$ apachectl -v

Apache 2.4 ユーザ: Apache 2.4 で <Directory /var/canvas/public> 内の allow/options の設定が変更されました。このような設定が必要になるでしょう。

※/etc/apache2/sites-available/canvas.confを書き換えるなお、ACM使う時はEC2にhttpsを使う必要が無いので(別にまた証明書を準備する必要がある)、コメントアウトする。

<Directory /var/canvas/public>
Options All
AllowOverride All
Require all granted
</Directory>

そして最後に、/etc/apache2/sites-availableの中に独自のファイルとして作成した場合、有効なサイトにする必要があります。

sysadmin@appserver:/etc/apache2/sites-enabled$ sudo a2ensite canvas

A Note about SSL Certificates

上記のCanvas設定ファイルでは、SSLCertificateFileとSSLCertificateKeyFileにディレクティブを提供していることにお気づきでしょう。指定されたファイルは、オペレーティングシステムに付属の自己署名証明書です。

ブラウザはデフォルトでは、自己署名証明書を文句を言わずに受け入れないように設定されています。これは、自己署名証明書を使用しているサーバは、中間者攻撃と呼ばれる危険性があるからです。

ユーザーのブラウザによって自動的に受け入れられるCanvasインストール用の証明書を取得したい場合は、証明書局に連絡して証明書を生成する必要があります。例として、Digicert (有料) と Let’s Encrypt (無料) Verisign が一般的に使用されている証明書局です

SSL で Apache を設定するための詳細な情報は、O’Reilly OnLamp.com の説明書、Apache の公式 SSL ドキュメント、または多くの証明書局のウェブサイトを参照してください。

Optimizing File Downloads

アップロードされたファイルを S3 ではなくローカルに保存している場合、X-Sendfile ヘッダ (nginx では X-Accel-Redirect) を使ってファイルのダウンロードを最適化することができます。まず、apache が mod_xsendfile をインストールして有効にしていることを確認してください。UBUNTUの場合は、以下のコマンドで行うことができます。

sysadmin@appserver:/var/canvas$ sudo apt-get install libapache2-mod-xsendfile

このコマンドはモジュールをインストールして有効にします。モジュールが正しく動作するようにするには、以下のコマンドを使用します。

sysadmin@appserver:/var/canvas$ sudo apachectl -M | sort

モジュール xsendfile_module (shared) はリストにあるはずです。

config/environments/production.rb に必要な config.action_dispatch.x_sendfile_header 行がありますが、コメントアウトされています。今後のマージの競合を避けるために、config/environments/production-local.rb ファイルを作成し、コメントアウトされていない行をそのファイルに追加することをお勧めします。

etc/apache2/sites-available/canvas.conf にある canvas のバーチャルホストで、以下の 2 つのディレクティブを追加します。

XSendFile On
XSendFilePath /var/canvas

※「S3でなければ」ということはデフォルトでS3を使うようになっているのだろうか? ×デフォは使わない設定。オプションでS3を使う。

Cache configuration

Canvasは、Memcacheとredisの2つの異なるキャッシュ方法をサポートしています。しかし、Canvasの機能の中にはOAuth2のようにredisを使用しなければならないものもあるので、物事をシンプルにするためにもredisをキャッシングに使用することをお勧めします。

以下はredisの設定方法です。

Redis

必要なバージョン: redis 2.6.x以上。

注意:Ubuntuはデフォルトで古いバージョンをインストールします。redis 2.6.x以上を手動でインストールする方法や、下記のPPAを使用する方法については、http://redis.io/download を参照してください。

Mac OS XでHomebrewを使用している場合は、コマンド: brew install redisを実行することでredisをインストールすることができます

Ubuntuの場合は、redis-serverパッケージを使用することができます。しかし、trustyでは、それは十分に新しいものではないので、それを提供するためにバックポートPPAを使用したいと思うでしょう: https://launchpad.net/~chris-lea/+archive/redis-server.

sysadmin@appserver:/var/canvas$ sudo add-apt-repository ppa:chris-lea/redis-server
sysadmin@appserver:/var/canvas$ sudo apt-get update
sysadmin@appserver:/var/canvas$ sudo apt-get install redis-server

redisをインストールしたら、サーバーを起動します。これには複数のオプションがあります。サーバが起動したときに自動的に実行されるように設定することもできますし、手動で実行することもできます。

Homebrew インストールから手動で実行するには、次のコマンドを実行してください:redis-server /usr/local/etc/redis.conf。

ここで、canvas-lmsディレクトリに戻り、設定を編集する必要があります。config フォルダの中に cache_store.yml.example をコピーして編集します。

sysadmin@appserver:/var/canvas$ cd /var/canvas/
sysadmin@appserver:/var/canvas$ sudo cp config/cache_store.yml.example config/cache_store.yml
sysadmin@appserver:/var/canvas$ sudo nano config/cache_store.yml
sysadmin@appserver:/var/canvas$ sudo chown canvasuser config/cache_store.yml
sysadmin@appserver:/var/canvas$ sudo chmod 400 config/cache_store.yml

このファイルは、すべてのキャッシング方法をコメントアウトした状態で始まっているかもしれません。あなたの設定ファイルを以下のエントリに一致させてください。

test:
cache_store: redis_storedevelopment:
cache_store: redis_storeproduction:
cache_store: redis_store

そして、redis.yml.exampleをコピーして編集することで、redis.ymlにredisのインスタンス情報を指定します。

sysadmin@appserver:/var/canvas$ cd /var/canvas/
sysadmin@appserver:/var/canvas$ sudo cp config/redis.yml.example config/redis.yml
sysadmin@appserver:/var/canvas$ sudo nano config/redis.yml
sysadmin@appserver:/var/canvas$ sudo chown canvasuser config/redis.yml
sysadmin@appserver:/var/canvas$ sudo chmod 400 config/redis.yml
production:
servers:
- redis://localhost

この例では、redisはCanvasと同じサーバー上で実行されています。Railsとredisはどちらもメモリを消費するので、本番環境では理想的ではありません。localhost」をredisインスタンスサーバーのアドレスに変更するだけです。

Canvasには、キャッシュ用とその他のデータ用に別のredisインスタンスを使用するオプションがあります。最もシンプルなオプションは、両方に同じ redis インスタンスを使用することです。分割したい場合は、データのredis用にredis.ymlの設定を維持したまま、cache_store.ymlに別のサーバーリストを追加して、どちらのインスタンスをキャッシュに使用するかを指定します。

ファイルを保存し、Canvasを再起動します。

※redisはAWSのものではない。インストールして使う。

QTIMigrationTool

クイズの内容をコピーまたはインポートできるようにするには、QTIMigrationToolをインストールする必要があります。手順は https://github.com/instructure/QTIMigrationTool/wiki にあります。インストール後、プラグインがサイト管理者でアクティブであることを確認してください -> プラグイン -> QTIコンバータ(それはQTIMigrationToolを検出し、自動アクティブにする必要があります)。

Automated jobs

Canvasには、メールレポートや統計情報の収集など、時折実行する必要がある自動化されたジョブがいくつかあります。自動化されたジョブがサポートされていないと、Canvasのインストールは正常に機能しません。

Canvasにはデーモンプロセスが付属しており、自動化されたジョブを監視・管理します。アプリケーションのルートが /var/canvas の場合、このデーモンプロセスマネージャは /var/canvas/script/canvas_init にあります。

これらのジョブ デーモンを少なくとも 1 台のサーバーで実行する必要があります。Canvas は、容量や冗長性のために複数のサーバーでバックグラウンドジョブを実行することもサポートしています。

Canvas には実行するジョブが非常に多いため、アプリサーバーの 1 つをジョブサーバーとして使用することをお勧めします。これは、アプリサーバーの1つでApacheのステップをスキップして、そのサーバーでのみ自動化されたジョブのセットアップ手順に従うことで行うことができます。

※実行にはEC2を複数台契約し、一つをジョブサーバーとした方が良い?

Installation

Debian/Ubuntu を使用している場合は、まず /var/canvas/script/canvas_init から /etc/init.d/canvas_init へのシンボリックリンクを作成し、このスクリプトが有効なランレベルで実行されるように設定します (近日中にアップスタートスクリプトを作成する予定です)。

sysadmin@appserver:/var/canvas$ sudo ln -s /var/canvas/script/canvas_init /etc/init.d/canvas_init
sysadmin@appserver:/var/canvas$ sudo update-rc.d canvas_init defaults
sysadmin@appserver:/var/canvas$ sudo /etc/init.d/canvas_init start

Rich Content Editor

Canvasには新しいリッチコンテンツエディタコンポーネントが含まれており、Canvasエコシステム内の複数のアプリケーション間で一貫したエディタ体験をサポートします。このコンポーネントを使用するには、サポートするAPIサーバーを実行する必要があります。サービスを実行し、それを利用するためにCanvasを設定する方法については、「Canvas RCE API ドキュメント」を参照してください。2018年7月14日から、canvas-lmsの安定ブランチでは、リッチコンテンツ編集機能をフルに使用するために、このサービスを実行して設定する必要があります。

Ready, set, go!

Apacheを再起動し(sudo /etc/init.d/apache2 restart)、ブラウザを新しいCanvasのインストール先に向けます。データベースの設定時に設定した管理者の資格情報でログインすれば、Canvasを使用する準備ができているはずです。

Troubleshooting

Canvasのインストールのトラブルシューティングについて、よくある質問をまとめたページがあります。トラブルシューティングのページをご覧ください。 https://github.com/instructure/canvas-lms/wiki/Troubleshooting

Common configuration options

あなたが設定できるようになったCanvasの他の多くの側面がありますが、実際に動作するプロダクション環境を持っています。詳しくは Canvas Integration をご覧ください。

※S3、redisの言及があるが、AWSマーケットプレイスのcanvas-LMSは両者を使っている形跡がない。redisはインスタンスにインストールして使っていてAWSのサービスとして使っている訳ではなく、S3も選択肢の一つという感じ。

※なぜpostgreSQLを選択したのかは、おそらくFDWで、redis使いたかったからと思われる。

お問い合わせ

記事の内容についてもっと詳しく知りたい方や キャレットへのお問い合わせ・資料請求はこちらからお気軽にご連絡ください。

Canvas-LMSカテゴリの最新記事