(2021.2.27 記)
(2024.12.29 追記)
コロナ禍でe-Learningの需要が増えてきている・・・と思われます。
私の会社でもその流れになり、注目したツールがMoodle。(詳細はリンク参照)
オープンソースなので誰でも利用可能なのですが、その分自力で構築しなければなりません。
なので、これからMoodleでe-Learning環境を作ろうと考えている人に向け、ベーシックな構築手順を展開しようという趣旨です。
ここでは、LAMP構成での構築手順について触れていきます。
この構成は、Moodleの推奨構成でもあり、WindowsOSでも同様です。
(全行程の所要時間:1~2時間程度)
さくらVPS以外の方でも、手順2または3からは同手順となります。
(例えば、AWS、WindowsAzure等でも構築手順は基本的に同じで、AWSは個人的に構築実績があります。)
0.構築環境
・さくらVPS(メモリ:1GB、CPU:2コア、SSD:100GB)→ (メモリ:2GB、CPU:3コア、SSD:200GB)(24.12.28)
※有料契約
※ハードがどのような環境でも構築手順は大きく変わりません
※24.12.29追記:Ubuntu22.04LST以上はメモリが2GB以上ないと動きません
・LinuxOS:Ubuntu18.04LTS → 20.04LTS(24.9.1) → 22.04LTS(24.12.28)
※最新は20.04ですが、何故かSSL化がうまくいかなかったので、個人的に実績がある18.04を選定しました
※24.12.29時点でUIが大きく変わっています。また18.04LTSのサポート期限が切れているので、今は20.24LTS~24.04LTSしか選択できません。
・Apache:2.4
・MySQL:5.7
・PHP:7.2
・Moodle:3.8
※当Verの必須環境は、Apache2以上、MySQL5.6以上、PHP7.1以上
※執筆時の最新Verは3.9ですが、リリース間もないということもあり
安定性という意味でひとつ前の3.8を導入しました
1.さくらVPSにLinuxOSをインストール
※24.12.29時点でUIが大きく変わっています。また18.04LTSのサポート期限が切れているので、今は20.24LTS~24.04LTSしか選択できません。画像は最新に変えていますので、OSやソフトのバージョンは最新のモノと読み替えてください。
さくらVPSを契約の際、「for Windows」を選択しなかった場合は、自動的にCentOSがインストールされた状態になっています。
個人的にUbuntuOSのほうが操作の慣れやコマンドの覚えがあるため、
OSを再インストールします。
※契約範囲で選択できるOSであれば、何度でもインストール可能
①さくらVPSの管理コンソールにログイン
②画面中央[OSインストール]を選択

③[標準OS]→[Ubuntu18.04]

④パケットフィルタで、[20](メール)、[80](Web)、[443](SSL)番ポートを解放
※ここで解放設定にしないと、OS側で解放しても通信できません

⑤[内容確認]→[インストール実行]
※インストール実行にしばらく時間がかかります
⑥インストール完了後、次手順へ
2.GUIツール導入
さくらVPSでは、初めから「コンソール」というターミナルウィンドウが用意されており、SSHで繋がなくとも良いメリットがあります。
ただし、コマンドだけだと操作性に欠けるため、GUI操作できるツールを導入していきます。
①画面上部の[コンソール]より、[VCNコンソール]を起動

②下図がその起動画面
※起動時に、コンソール上で「ユーザ名」と「パスワード」を聞かれます
※UbuntuOSの場合、ユーザ名は「ubuntu」となり、パスワードは初回起動時は任意、次回はそのパスワードを使用しログインします

③コンソールに下記コマンド投入
・「apt」「apt-get」のアップデート
sudo apt update
sudo apt-get update
・GUIツールのインストール
sudo apt-get install -y xubuntu-desktop
※途中、どっちのツールをインストールする?と聞かれるので、下の方を選択する(スクショ忘れた。確かLから始まる単語のやつ。)。
・GUI機能インストール後、再起動
reboot
これで起動すると下図のような画面が開くようになります。
(コンソール起動でいつでも画面が開くようになります。)

このままログインするとUbuntuのデスクトップ画面が表示されます。
執筆時の最新版が20.04なので、「アップグレードしろ」言われますが、
[Don’t Upgrade]で拒否します。

ちなみに、コンソール(ターミナル)画面は、
デスクトップ上を右クリック→[Open Terminal Here]で起動できます。

ここまででLAMP構成のLまで完了しました。
次手順からWebアプリケーションの動作環境を構築していきます。
3.ファイアウォール導入
Webアプリケーション環境構築前に、まずはファイアウォールを導入しておきます。
コンソール画面を開き、コマンドを投入していきます。
①ファイアウォールツールのインストール
sudo apt install ufw
②ファイアウォール有効化
sudo ufw enable
③ポート解放
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow https
④22、80、443番ポートが解放されていることを確認
確認が取れれば次手順へ
sudo ufw status

4.MySQL導入
データベースツールであるMySQLを導入していきます。
コンソール画面でコマンドを投入していきます。
① MySQLインストール
sudo apt install mysql-server
sudo mysql_secure_installation
②接続確認
※2行目以降はMySQL上でのSQLコマンドとなります
sudo mysql -u root -p mysql> SELECT user,host FROM mysql.user;

③Moodle用のユーザ登録(仮に「moodleuser」とします)
mysql> CREATE USER 'moodleuser'@'localhost' indentified by 'パスワード';
※「パスワード」部には自分で設定したいパスワードを入力
④念のためユーザを確認
mysql> SELECT user,host FROM mysql.user;

⑤Moodle用データベースの作成(仮に「moodle」とします)
mysql> CREATE DATABASE moodle default character set utf8;
※ここでは文字コードを「utf8」にしていますが、Moodleの推奨は「utf8mb4」です
※「utf8mb4」は絵文字への対応のようです

⑥データベースの権限変更
mysql> GRANT ALL ON *.* to 'moodleuser'@'localhost' identified by 'パスワード';

⑦MySQLクライアントツールのインストール
mysql> sudo apt-get install mysql-client;
ここまででLAMP構成のLとMが完成しました。
次手順でApacheを導入していきます。
※「quit;」コマンドを入力し、MySQLから抜けておきます
5.Apache2導入
WebサーバソフトウェアのApache2を導入していきます。
コンソール画面でコマンドを投入していきます。
①Apache2のインストール
sudo apt install apache2
sudo apt-get install curl
②起動確認
sudo curl localhost && echo success || echo failed
最終行で「success」が出ればOK
ここまででLAMP構成のL、A、Mが完成しました。
次手順で残りのPHPを導入していきます。
6.PHP導入
Web開発向けプログラム言語であるPHPを導入していきます。
コンソール画面でコマンドを投入していきます。
①PHP本体のインストール
sudo apt-get install php
②PHP本体のバージョン確認
PHP -version
③Moodle稼働に必要なPHP付帯のアプリケーション一式をインストール
※Moode3.8では、「zip」「mbstring」「xml」「xmlrpc」「curl」「soap」「intl」「gd」「mysql」「opcache」が必須または推奨
sudo apt-get install php-zip php-mbstring php-xml php-curl php-soap php-xmlrpc php-intl php-gd php-mysql php-opcache
④Apacheの再起動
sudo systemctl restart apache2

⑤PHPの動作確認
php -r 'print "Hello, World!\n";'

「Hello, world !」が表示されればOKです。
ここまででLAMP構成が完成しました。
次手順でMoodleを導入していきます。
※Moodle以外のアプリケーションを構築の際はここまでで作業は完了です!
サイトのSSL化については別記事で紹介していますので、是非ご覧ください。
7.Moodle導入
Moodle本体を導入していきます。
コンソール画面でコマンドを投入していきます。
①Gitのインストール
sudo apt-get install git git-core git-doc
②ディレクトリを移動
※Webアプリケーション参照ディレクトリのデフォルトの位置
※ディレクトリ位置はApache2の設定ファイルの編集で変更可
(この記事上では省略します)
cd /var/www/html
③Moodleデータ一覧のダウンロード
sudo git clone git://git.moodle.org/moodle.git
④ダウンロードデータよりインストール対象のバージョンを確認
sudo git branch -a

⑤インストール対象のバージョンを選択
※下記は当時の最新バージョンなので、現在の最新バージョンに読み替えて利用ください。
sudo git branch --track MOODLE_38_STABLE origin/MOODLE_38_STABLE
⑥対象バージョンのMoodleをダウンロード
sudo git checkout MOODLE_38_STABLE
⑦ディレクトリ移動
※Webアプリケーション参照ディレクトリの1つ上
cd /var/www
⑧Moodleのデータディレクトリ作成
※1階層上にデータディレクトリを作成することで、第三者からのデータアクセスを防ぐ
sudo mkdir moodledata
⑨Moodleディレクトリ、Moodleデータディレクトリの権限変更
※インストール用に一時的に権限を全開放
sudo chmod 0777 /var/www/html/moodle
sudo chmod 0777 /var/www/moodledata
⑩Web画面より、Moodleのインストール画面を開く
※FireFoxを起動し、URL欄に「http://localhost/moodle」と入れると、下図インストール画面が開く
firefox

後は画面に従い、インストール設定をしていきます。
・ウェブアドレス→白抜き部の初期値はLocalHostですが、ドメインを取得している場合はドメイン名に変更します
(後からでも変更ができます、手順は別記事で記載します。)
・Moodleディレクトリ、データディレクトり確認し、間違いがなければ「次へ」

「MySQL」を選択し、「次へ」

データベース名、データベースユーザ、データベースパスワードに、MySQL導入時に設定した値をそれぞれ入力、「次へ」

「続ける」


サーバチェックが入ります。
「NG」がなければ問題ありません。
上部画面では以下2点注意が出ています。
・https化(SSL化)されてないためセキュリティ的問題点がある
⇒別記事でSSL化の方法を記載します。
・データベース文字コードが「utf8mb4」ではないため、対応していない文字を入れるとエラーが出る
⇒絵文字を入れられたくないので、敢えて「utf8」のままにしています
他問題点がなければ「次へ」
※不足モジュールが見つかった場合は、「sudo apt-get install php-モジュール名」でインストールできます

Moodleのテーブル作成が始まります。
何も問題がなければこの画面まで辿り着きます。
「続ける」


Moodleの管理者設定です。
必要事項を入力し、「プロファイルを更新する」
※くれぐれもユーザ名とパスワードは忘れないでください、ログインできなくなります・・・
(どうしても忘れてしまった場合は、別記事で復活手順を参照してください)


フロントページの編集画面です。
ここは後でも変更できるので、適当に入力していきます。
「変更を保存する」
(Moodle内の各種設定変更手順については別記事で紹介しています)

ここまでくれば完成です。
後は目的に合わせて設定していってください。
※サイトの登録は自由です(私はパスしました)
FireFoxを閉じます。
⑪Moodleディレクトリの権限変更
※権限を戻し忘れると重大なセキュリティ事故につながるので注意
sudo chmod 0755 /var/www/html/moodle
8.最後に
この記事ではMoodleのインストールのみを取り扱いました。
SSL化やサイトの改造方法についても別記事でまとめてあるので、
気になる方は参照ください。
★SSL(HTTPS)化の手順
以上。
(不明点あればコメント頂ければ、可能な限りお答えします。)

コメント