5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開志専門職大学情報学部Advent Calendar 2023

Day 25

オープンバッジ発行に向けて、LTS版のMoodle 4.1をPHP8.1でUbuntu 22.04にインストール

Posted at

オープンバッジ

ここ数年なにかと話題だった「ジョブ型」から、「スキルベース雇用」に人材管理や人材育成のトレンドが移りつつあり、スキルの証明方法の1つとして、デジタルバッジ(オープンバッジ)があります。デジタルバッジは、紙ではなくデジタルデータであり、1EdTech Consortium ( 旧IMS Global Learning Consortium )により規格化され、「Open Badges v2.0」および「Open Badges v3.0」として広く普及しています。単純にバッジと表現することがあります。

バッジとリカレント教育、リスキリング

リスキリング

「リスキリング」は、組織主導で新しい業務で必要になる知識や技能を習得するための学習を言います。従って、主体は組織にあります。組織に所属していない場合に、リスキリングと表現することは誤りで、その場合はリカレント教育を指します。

リカレント教育

本来は所属する企業や団体から離れて教育機関で学び直し、元の組織に戻って働くか、新たな組織で働き、再び必要に応じて組織を離れて学ぶ行動を「リカレント教育」と言います。従って、主体は労働者自身にあります。
日本の場合は、雇用上の慣習から、リカレント教育に働きながら学ぶことを含まれることがあります。

バッジは、学んだことや習得したスキルの証明

「リスキリング」や「リカレント教育」で学んだことを証明する手段として「バッジ」が普及しています。バッジを発行するプラットフォームとして、オープンソースソフトウェアであり、多数の大学や企業で実績のある「Moodle」を選び、オープンバッジ発行について検証環境を構築することにしました。

Moodle

Moodleには、「Open Badges v2.0」に準拠するオープンバッジを発行する機能があります。
Moodleは、LMS(学習管理システム)と呼ばれるシステムのなかで代表的なソフトウェアの1つであり、日本を含めた世界中の教育機関や企業で、2000年代から使われています。
https://moodle.org/?lang=ja
個人的には、2004年頃から数年間、e-Learningサービスを運営していた際にMoodleを活用したことがあります。それ以降も、度々Moodleでオンライン学習の仕組みを構築していたため、そこそこ縁のあるソフトウェアです。

この記事の目的

自分でオープンバッジを発行することを考えた際に、サービス全体の運用環境としてIBM CloudやAWS等をでUbuntu 22.04環境を使うことから、2023年12月現在のLTS(長期サポート)版の「Moodle 4.1」についてインストール手順を記した備忘録的なものになります。

バッジの発行例

動作確認のため「外部バックパック接続」をオフにした状態でバッジを発行すると、下図のようになりました。バッジの画像データは、生成AIを使って作っています。
なお、バッジ発行のために架空の「Cloud Sales 入門」という学習コースを作成しました。
image.png

Ubuntu 22.04 & PHP8.1環境へのMoodleインストール手順

この手順は、公式ドキュメント https://docs.moodle.org/403/en/Step-by-step_Installation_Guide_for_Ubuntu を参考に、Moodle4.1およびUbuntu22.04向けにアレンジしています。

Moodleを動かすために必要なソフトウェアのインストール

Ubuntu22.04環境を最新の状態にします。

sudo apt update -y
sudo apt upgrade -y

次のコマンドを実行し、Moodleを動かすために必要なソフトウェアをインストールします。

sudo apt install -y apache2 php8.1 mariadb-server git
sudo apt install -y php8.1-mysql php8.1-iconv php8.1-mbstring php8.1-curl php8.1-tokenizer php8.1-xmlrpc php8.1-soap php8.1-ctype php8.1-zip php8.1-gd php8.1-simplexml php8.1-xml php8.1-intl

パソコン上で仮想マシンを使っている場合は、avahi-daemonを入れて、mDNS対応にすると、Webブラウザでセットアップする際に、http://サーバー名.local で接続できるので便利です。avahi-daemonは必要に応じてインストールしてください

sudo apt install -y avahi-daemon
sudo systemctl start avahi-daemon.service
sudo systemctl enable avahi-daemon.service

Webサーバーの起動と自動起動設定

次のコマンドを実行し、Webサーバーとして、Apache2 を起動します。自動起動設定も行います。

sudo systemctl start apache2 
sudo systemctl enable apache2

MoodleのパッケージをGitから取得し、DocumentRootディレクトリに配置

次のコマンドを実行します。

cd /opt
sudo git clone git://git.moodle.org/moodle.git
cd moodle
sudo git branch -a

2023年12月現在のLTS(長期サポート)版のMoodle 4.1を示す「MOODLE_401_STABLE」が表示されることを確認します。
次のコマンドを実行し、Moodle 4.1をApche2のDocumentRootに配置します。

sudo git branch --track MOODLE_401_STABLE origin/MOODLE_401_STABLE
sudo git checkout MOODLE_401_STABLE
sudo cp -R /opt/moodle /var/www/html/
sudo mkdir /var/moodledata
sudo chown -R www-data /var/moodledata
sudo chmod -R 777 /var/moodledata
sudo chmod -R 0755 /var/www/html/moodle

PHPの設定変更「max_input_vars」

PHPの設定ファイルを変更する必要があるので、次のコマンドを実行します。

sudo nano /etc/php/8.1/apache2/php.ini

次のように変更します。
変更前

;max_input_vars=1000	

変更後

max_input_vars = 5000

nanoエディタを使っているので、Ctrl+xキーを押し、yキーを押して保存します。
Apache2をリロードします。

sudo systemctl reload apache2

Apache2のバーチャルホスト設定

Apcahe2では、バーチャルホストと呼ばれる設定を使うことで、1つのWebサーバーで複数運用しているように見せることができます。
次のコマンドを実行して、Moodle用のバーチャルホスト設定ファイルを作成します。

sudo nano /etc/apache2/sites-available/moodle.conf

記述内容は、以下です。

<VirtualHost *:80>
ServerName 例 www3.mydomain.com ( ServerNameで設定したサーバー名に、http接続でアクセスします。)
DocumentRoot /var/www/html/moodle

<Directory /var/www/html/moodle>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

上記ではポート番号80なので、http接続になります。設定を書くことでポート番号443を用いたhttps接続も可能です。
バーチャルホストの設定をファイルを読み込み、有効化します。

sudo a2ensite moodle
sudo systemctl reload apache2

データベースの作成

先ほどインストールした「mariadb-server」を用いて、Moodleのためのデータベース、データベース用のユーザー名、データベースユーザーのパスワードを設定します。

mariadb-serverの起動と自動起動設定

次のコマンドを実行します。

sudo systemctl start mariadb
sudo systemctl enable mariadb

Moodleのためのデータベース、データベース用のユーザー名、データベースユーザーのパスワードを登録します。

sudo mysql

入力がデータベースに切り替わります。

MariaDB [(none)]>

次のコマンドを実行し、データベースを作ります。

create database moodle_db;

次のコマンドを実行し、作ったデータベースに、データベース操作用のユーザー名やパスワードを設定します。

grant all privileges on moodle_db.* to moodle_user@localhost identified by '強度の高いパスワード文字列';

強度の高いパスワード文字列を、パスワードの文字列に置き換えてから実行してください。最低限、大文字小文字数字で10桁くらいは必要です。
次のコマンドを実行し、手動でデータベースの権限テーブルをリロードします。

flush privileges;

データベースでの作業から離脱するため、次のコマンドを実行します。

exit

Webブラウザを用いたセットアップ

Webブラウザを用いてセットアップするために、Moodle関連のファイルが格納されているディレクトリに書き込み権限を付与します。

sudo chmod -R 0777 /var/www/html/moodle

Webブラウザで、http://サーバー名 にアクセスします。サーバー名はバーチャルホストで設定したものと同じです。
セットアップ画面では、「Language」を日本語(ja)に変更することで日本語表示に切り替わります。以後、画面指示に従って設定を行います。
途中、次の値を求めらるので各自変更および入力します。

  • データディレクトリのパスを「/var/moodledata」に書き換えます。
  • データベースドライバを「MariaDB」に変更します。
  • データベースホスト: localhost
  • データベース名 : moodle_db
  • データベースユーザー:moodle_user
  • データベースパスワード : データベース作成の際に設定したパスワード

Moodleのセットアップを終えると、下記のようになります。例として、Digital Collegeという名称にしました。略称は、DCollegeです。
image.png

バッジを検証したいので、コースも作成しました。
image.png

画面上部の「サイト管理」から「一般」タブ」にて、コース作成やバッジの登録・管理等ができます。
image.png

バッジにおけるパックパックは、様々な学習サービスで発行したバッジを個別に保管および共有するサービスのことで、初期値では「Badgr」が登録されています。初期登録されているだけで、実際にはバッジ管理者として「Badgr」側の設定が必要になっています。

参考資料

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?