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アドレスである必要があります。
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 Webサイトの場所とMoodleデータディレクトリの場所を設定します。
$CFG->wwwroot = 'http://learning.testprojects.me'; $CFG->dataroot = '/var/moodledata';
保存してファイルを閉じます。次に、次のセクションで説明するように、 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
WebインストーラーによるMoodleインストールの完了
10. Webブラウザを開き、サブドメイン、たとえばlearning.testprojects.me
を使用して移動し、 Moodle Webインストーラにアクセスします 。
http://learning.testprojects.me
ウェルカムページが読み込まれたら、メッセージを読み、[ 続行 ]をクリックします。
11.次に、インストーラーはシステムが要件を満たしているかどうかを確認し、問題がなければ、下にスクロールして[ 続行 ]をクリックし、ファイルの実際のインストールとデータベーススキーマの設定を開始します。
インストーラーがHTTPSで実行されていないサイトに関する警告を表示することに注意してください。今のところ警告は無視してください。前のセクションでは、無料のLet’s Encrypt証明書を使用してMoodleで HTTPSを有効にする方法について説明します 。
インストールが完了したら、[ 続行 ]をクリックします。
12.次に、アカウントのユーザー名、パスワード、姓名、メールアドレスを作成して、Moodleサイトの管理者アカウントを設定します。次に、下にスクロールして[ アカウントの更新]をクリックします 。
13.次に、以下のスクリーンショットに示すように、 Moodleサイトのフロントページ設定を構成します 。次に、下にスクロールして[ 更新 ]をクリックします 。
14.ウェブインストーラーは自動的に新しい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
16.次に、証明書を取得し、自動的に新しい証明書を設定するには、Certbot編集あなたのnginxの設定を持って、次のコマンドを発行します。
$ sudo certbot --nginx
17.次に、 Moodleサイト構成ファイルに戻ります。
$ sudo vim /var/www/html/moodle/config.php
次のスクリーンショットに示すように、URLをHTTPからHTTPSに変更します。
$CFG->wwwroot = 'https://learning.testprojects.me';
18.最後に、ブラウザでMoodleサイトがHTTPSで実行されていることを確認します 。
https://learning.testprojects.me
それは今のところすべてです!詳細、設定オプション、および使用ガイドについては、 Moodle 3.9のドキュメントをご覧ください。