Ubuntu 20.04にMoodleラーニングプラットフォームをインストールする方法

Moodleは、ウェブとモバイル向けに構築された、世界で最も人気があり、堅牢で無料のオープンソースのオンライン学習(eラーニング)管理プラットフォームです。学校、大学、および関連機関がコースやカリキュラムを中断することなく、いつでもどこでも柔軟な学習プラットフォームを学生に提供できるようにする幅広いアクティビティと教育ツールを提供します。

一般的な機能には、モダンで使いやすいインターフェース、パーソナライズされたダッシュボード、コラボレーションツールとアクティビティ、オールインワンカレンダー、便利なファイル管理、 シンプルで直感的なテキストエディター 、通知、進捗状況の追跡などがあります。

重要なことに、 Moodleは、追加のアクティビティ、ブロック、テーマなどをサポートする1000以上のプラグインを使用して、非常に拡張可能です。

この記事では、 Ubuntu 20.04以前のバージョンにNGINXとMySQL / MariaDBデータベースを備えたMoodleラーニングプラットフォームの最新バージョンをインストールする方法を学びます。

Moodleアプリケーション用のDNSレコードのセットアップ

1.ユーザーがMoodleインスタンスにアクセスするには、そのサブドメインを作成する必要があります。したがって、これを実現するには、DNS Aレコードを作成する必要があります。このガイドでは、テストドメインはtestprojects.meであるため、たとえばlearning.testprojects.meなどのサブドメインを作成する必要があります。

したがって、ドメインレジストラーのWebコンソールにログインし、ドメインの詳細設定にアクセスし、タイプA [ Add New Record ] クリックします。ホストはlearning (または任意の単語)必要があり、値はUbuntuサーバーのパブリックIPアドレスである必要があります。

MoodleアプリケーションのDNS Aレコードを作成します
MoodleアプリケーションのDNS Aレコードを作成します

UbuntuサーバーにMoodleをインストールする

2.次に、図に示すように、 aptパッケージマネージャーを使用して、 Moodleで必要なPHP拡張機能とライブラリをインストールする必要があります。

$ sudo apt update
$ sudo apt install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3.次に、 Moodleシステム用のデータベースを作成します。 MySQLデータベース管理シェルにログインし、次のようにデータベースを作成します。

$ sudo mysql

MariaDB [(none)]> CREATE DATABASE moodle;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'Secur3P@zzwd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4.前述のように、このガイドでは、最新バージョンのMoodle (執筆時点ではバージョン3.9)をダウンロードしてインストールします。次のwgetコマンドを実行してMoodleパッケージを取得し、 tarコマンドを使用してそれぞれを抽出します。次に、 lsコマンドを使用して、moodleディレクトリが/ var / www / html /の下にあることを確認します。

$ wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
$ sudo tar -zvxf moodle-latest-39.tgz -C /var/www/html/
$ ls /var/www/html/

5.次に、以下のコマンドを実行して、 Moodleディレクトリに適切な権限を設定します。

$ sudo chown www-data:www-data -R /var/www/html/moodle
$ sudo chmod 775 -R /var/www/html/moodle

6.次に、 Moodleがアップロードされたファイルを保存し、図に示すように権限を設定できる場所であるMoodle データディレクトリを作成します。

$ sudo mkdir -p /var/moodledata
$ sudo chmod 775 -R /var/moodledata
$ sudo chown www-data:www-data -R  /var/moodledata

7.次に、パッケージに付属のサンプル構成ファイルからMoodleメイン構成ファイルを作成し、それを開きます。

$ cd /var/www/html/moodle/
$ sudo cp config-dist.php config.php
$ sudo vim config.php

次のスクリーンショットに示すように、データベース構成セクションを探して 、すべてのMoodleデータが保存されるデータベースを構成します:

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodle';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'Secur3P@zzwd';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names
Moodleデータベース設定を構成します
Moodleデータベース設定を構成します

また、図に示すように、Moodle Webサイトの場所とMoodleデータディレクトリの場所を設定します。

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/moodledata';
Moodle Webサイトを構成する
Moodle Webサイトを構成する

保存してファイルを閉じます。次に、次のセクションで説明するように、 Moodleサイトを提供するようにNGINXを構成します。

Moodleアプリケーションを提供するためのNGINXの設定

8. NGINXがMoodleサイトを管理するには、 NGINX構成の下のディレクトリ/etc/nginx/conf.d/に新しいサーバーブロック構成を作成する必要があります。

 $ sudo vim /etc/nginx/conf.d/moodle.conf

以下の設定をコピーして貼り付け、 learning.testprojects.meをサブドメインに置き換えます。また、 fastcgi_passディレクティブは、PHP-FPMがFastCGIリクエストを受け入れるアドレスを指す必要があります(詳細については、 / etc / php / 7.4 / fpm / pool.d / www.confファイルを確認してください)。

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass           unix:/run/php/php7.4-fpm.sock;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

ファイルを保存して閉じます。

9.次に、上記の変更を行った後、 NGINXの構成に問題がないことを確認し、NGINXサービスを適切に再起動します。

 $ sudo nginx -t
$ sudo systemctl reload nginx
Nginxの構成を確認する
Nginxの構成を確認する

WebインストーラーによるMoodleインストールの完了

10. Webブラウザを開き、サブドメイン、たとえばlearning.testprojects.meを使用して移動し、 Moodle Webインストーラにアクセスします

 http://learning.testprojects.me

ウェルカムページが読み込まれたら、メッセージを読み、[ 続行 ]をクリックします。

Moodle Webインストーラ
Moodle Webインストーラ

11.次に、インストーラーはシステムが要件を満たしているかどうかを確認し、問題がなければ、下にスクロールして[ 続行 ]をクリックし、ファイルの実際のインストールとデータベーススキーマの設定を開始します。

インストーラーがHTTPSで実行されていないサイトに関する警告を表示することに注意してください。今のところ警告は無視してください。前のセクションでは、無料のLet’s Encrypt証明書を使用してMoodleで HTTPSを有効にする方法について説明します

Moodleシステム要件チェック
Moodleシステム要件チェック

インストールが完了したら、[ 続行 ]をクリックします。

Moodle Webインストール完了
Moodle Webインストール完了

12.次に、アカウントのユーザー名、パスワード、姓名、メールアドレスを作成して、Moodleサイトの管理者アカウントを設定します。次に、下にスクロールして[ アカウントの更新]をクリックします

Moodle管理者アカウントを作成します
Moodle管理者アカウントを作成します

13.次に、以下のスクリーンショットに示すように、 Moodleサイトのフロントページ設定を構成します 。次に、下にスクロールして[ 更新 ]をクリックします

Moodleフロントページを構成する
Moodleフロントページを構成する

14.ウェブインストーラーは自動的に新しいMoodleサイトにログインします。画面の指示に従って、サイト登録を完了できます。

Moodleサイト登録
Moodleサイト登録

Let’s Encryptを使用してMoodleアプリケーションにHTTPSを設定する

15. Moodleサイトを保護するには、 HTTPSを有効にする必要があります 。このガイドでは、 Let’s Encryptの無料で信頼できるSSL / TLS証明書を使用します。 Let’s Encryptを使用するもう1つの利点は、自動化されることです。

ターミナルに戻り、次のコマンドを実行してcertbotをUbuntuにインストールします (Let’s Encrypt証明書を自動的に使用して手動で管理されたサイトでHTTPSを有効にする無料のオープンソースツール)。

 $ sudo snap install --classic certbot
UbuntuにCertbotをインストールする
UbuntuにCertbotをインストールする

16.次に、証明書を取得し、自動的に新しい証明書を設定するには、Certbot編集あなたのnginxの設定を持って、次のコマンドを発行します。

 $ sudo certbot --nginx
MoodleにSSL証明書をインストールします
MoodleにSSL証明書をインストールします

17.次に、 Moodleサイト構成ファイルに戻ります。

$ sudo vim /var/www/html/moodle/config.php

次のスクリーンショットに示すように、URLをHTTPからHTTPSに変更します。

$CFG->wwwroot   = 'https://learning.testprojects.me';
Moodle構成でHTTPSを設定します
Moodle構成でHTTPSを設定します

18.最後に、ブラウザでMoodleサイトがHTTPSで実行されていることを確認します

 https://learning.testprojects.me
MoodleでHTTPSを確認します
MoodleでHTTPSを確認します

それは今のところすべてです!詳細、設定オプション、および使用ガイドについては、 Moodle 3.9のドキュメントをご覧ください。

Source