0
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?

Moodleってどんなもの?Docker Desktopを使ってまずは手元で試してみよう(Windows編)

0
Posted at

Moodle(ムードル)を自分のパソコンで試してみたい。 そう思っても、「サーバーの準備が大変そう」「難しそう」と感じて二の足を踏んでいませんか?実は、Docker Desktopというツールを使えば、Windowsパソコン1台でMoodleの環境を比較的かんたんに用意できます。

この記事では、コマンドラインにほとんど触れたことがない方でも迷わないよう、Docker Desktopのインストールから、Moodle 4.5へ管理者でログインするところまで、ひとつひとつ丁寧に説明します。

「うちの学校や職場でも使えるかも?」と興味を持ったら、まずは自分のWindows PCで動かして試してみることをおすすめします。

Moodle公式ページではXAMPPと呼ばれるWindows用のMySQL, MariaDB, PHPとMoodleソースコードを含むインストールパッケージがダウンロードできますが、Moodle 4.1以降ではXAMPPに含まれてるデータベースが最低要件を満たさないため推奨されません。従ってここでは、XAMPPを使用せず、Docker Desktopを使って簡単にインストールする方法を紹介します。

この記事はあくまでお試し・デモ用の環境構築を目的としています。実際に生徒・社員に使ってもらう本番環境の構築は、別途サーバーの構築またはMoodleホスティングサービスとの契約をお勧めします。

必要なもの

  • Windows 10(64bit、バージョン1903以降)または Windows 11
  • メモリ:4GB以上(できれば8GB以上を推奨)
  • ストレージ空き容量:10GB以上
  • インターネット接続

Step 1 | WSL 2(Windows Subsystem for Linux)を有効にする

Docker DesktopはWindows上でLinuxの仕組みを使って動作します。そのため、まず WSL 2 という機能を有効にする必要があります。

手順

  1. スタートメニューを右クリックし、「Windows PowerShell (管理者)」または「ターミナル (管理者)」を開きます。

  1. 次のコマンドを入力して、Enterキーを押します。
wsl --install

インストールには数分かかります。途中で新しいユーザーを作成するよう尋ねられます。好みのユーザー名とパスワードを設定します。

インストールが完了したら、念の為パソコンを再起動しておいた方が良いでしょう。

Step 2 | Docker Desktop をインストールする

  1. 下記の公式サイトにアクセスします。

  1. 「Download Docker Desktop」 ボタンをクリックして、インストール先のパソコンのOSを選択します。ここでは 「Download for Windows - AMD64」 を選択します。

AMD64(= x64、x86_64とも呼ばれます)
IntelまたはAMDのCPUを搭載した一般的なPC。デスクトップPC・ノートPC・ゲーミングPCのほぼすべてがこちらです。「AMD64」という名前ですが、IntelのCPUでもこちらを選びます(AMD専用という意味ではありません)。

ARM64
ARMアーキテクチャのCPUを搭載したPC。Snapdragon搭載のWindows PCなど、一部の薄型・省電力モデルが該当します。スタートメニューを右クリックして「システム」を選択し、「デバイス仕様」の「システムの種類」を確認します。「x64ベースプロセッサ」と表示されていれば AMD64、「ARMベースプロセッサ」と表示されていれば ARM64 を選んでください。 

一般的なデスクトップPC・ノートPC・ゲーミングPCのほとんどは x64(AMD64)です。「AMD64」という名前ですが、IntelのCPUでもAMD64を選びます。AMD専用という意味ではありません。

  1. ダウンロードされた Docker Desktop Insteller.exe をダブルクリックしてインストールを実行します。

4 インストールの画面の指示に従って進めます。途中で 「Use WSL 2 Instead of Hyper-V」 というオプションが表示された場合は、チェックを入れたまま進めてください。

  1. インストールが完了したら、「Close 」ボタンを押してインストーラーを閉じてます。

  2. メニューバーに Docker Desktop が追加されていることを確認し、クリックして起動します。

  3. Docker Desktopが起動すると、Welcome画面が表示され、メールアドレスの登録が求められます。ここは Skip しても大丈夫です。

  4. 以上でDocker Desktop のインストールは完了です。

Step 3 | 作業フォルダを作成する

Moodleの設定ファイルを置くための専用フォルダを作ります。

  1. エクスプローラーを開きます。

  2. 好きな場所(例: C:¥Users¥あなたのユーザー名¥Documents など)に、moodle45 という名前のフォルダを作成します。

Step 4 | 設定ファイルを2つ作成する

今回は2つのファイルを作成します。

ファイル名 役割
Dockerfile MoodleとPHPの環境をまとめて構築する設計図
docker-compose.yml DockerにMoodleとデータベースの起動方法を伝える設定ファイル

ファイル作成の準備

Windowsでは、ファイルの拡張子(.txt など)が非表示になっている場合があります。まず表示設定を確認しましょう。

エクスプローラーを開き、上部メニューの 「表示」→「ファイル名拡張子」 にチェックを入れます。

Dockerfileを作成する

  1. moodle45 フォルダの中で 右クリック → 「新規作成」→「テキストドキュメント」 を選びます。

  2. ファイル名を Dockerfile (拡張子なし)に変更します。

Dockerfile.txt にならないよう注意してください。拡張子なしの Dockerfile という名前にします。

  1. Dockerfile をメモ帳やVS Codeで開き、以下の内容をそのまま貼り付けて保存します。
FROM php:8.3-apache

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        unzip git curl \
        libzip-dev libjpeg-dev libpng-dev \
        libfreetype6-dev libicu-dev libxml2-dev \
        libonig-dev && \
    docker-php-ext-configure gd --with-freetype --with-jpeg && \
    docker-php-ext-install \
        mysqli zip gd intl soap exif mbstring xml && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

RUN echo "max_input_vars = 5000" > /usr/local/etc/php/conf.d/moodle.ini && \
    echo "upload_max_filesize = 100M" >> /usr/local/etc/php/conf.d/moodle.ini && \
    echo "post_max_size = 110M" >> /usr/local/etc/php/conf.d/moodle.ini && \
    echo "memory_limit = 256M" >> /usr/local/etc/php/conf.d/moodle.ini

RUN git clone --depth=1 -b MOODLE_405_STABLE \
    https://github.com/moodle/moodle.git /var/www/html && \
    chown -R www-data:www-data /var/www/html

RUN mkdir -p /var/www/moodledata && \
    chown -R www-data:www-data /var/www/moodledata && \
    chmod 0777 /var/www/moodledata

RUN sed -i 's/AllowOverride None/AllowOverride All/g' \
    /etc/apache2/apache2.conf && \
    a2enmod rewrite

EXPOSE 80

このファイルがMoodleの「設計図」です。PHP・Apache・Moodle本体を自動でインストールしてくれます。初回ビルド時にMoodle本体をGitHubからダウンロードするため、インターネット接続が必要です。

docker-compose.yml を作成する

  1. 同じ moodle45 フォルダの中で再び 右クリック → 「新規作成」→「テキストドキュメント」 を選びます。

  2. ファイル名を docker-compose.yml に変更します。

docker-compose.yml.txt にならないよう注意してください。

  1. docker-compose.yml をメモ帳やVS Codeで開き、以下の内容をそのまま貼り付けて保存します。
services:
  moodle_db:
    image: mariadb:10.11
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: moodle
      MYSQL_USER: moodleuser
      MYSQL_PASSWORD: moodlepassword
      MYSQL_CHARACTER_SET_SERVER: utf8mb4
      MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
    volumes:
      - moodle_db_data:/var/lib/mysql

  moodle:
    build: .
    restart: unless-stopped
    ports:
      - "8045:80"
    depends_on:
      - moodle_db
    volumes:
      - moodle_data:/var/www/moodledata

volumes:
  moodle_db_data:
  moodle_data:

2つのファイルが作成できたら、フォルダの中身はこのようになっているはずです。

Step 5 | Moodleを起動する

いよいよMoodleを起動します。コマンドプロンプトを使います。

スタートメニューで「cmd」と検索し、「コマンドプロンプト」 を開きます。
コマンドプロンプトを起動

  1. 以下のコマンドを入力して、moodle45 フォルダに移動します。(パスはご自身の環境に合わせてください)
cd C:\Users\あなたのユーザー名\Documents\moodle45
  1. 次のコマンドを実行します。
docker compose up -d --build

4. 初回はMoodleのプログラム一式をダウンロード・構築するため、10〜20分程度かかります。 Docker Desktopの画面でダウンロード状況を確認できます。

初回のみ --build オプションが必要です。2回目以降の起動は docker compose up -d だけで大丈夫です。

5 こんな感じの画面が表示されたら完了です。
Moodleのインストール完了

Step 6 | ブラウザでMoodleの初期設定をする

  1. ブラウザ(Chrome や Edge など)を開き、アドレスバーに以下のURLを入力します。

http://localhost:8045

  1. Moodleのセットアップ画面が表示されます。以下の順番で設定を進めます。

6-1 言語の選択

「Japanese(ja)」を選んで「次へ」をクリックします。
言語の選択

6-2 パスの確認

以下の通り入力されていることを確認して「次へ」をクリックします。

項目
ウェブアドレス http://localhost:8045
Moodleディレクトリ /var/www/html
データディレクトリ /var/www/moodledata

パスの確認

6-3 データベースの設定

MariaDB」を選択して「次へ」をクリックします。続いて表示されるデータベース設定画面に以下を入力します。

項目
データベースの選択 MariaDB
データベースホスト moodle_db
データベース名 moodle
データベースユーザー moodleuser
データベースパスワード moodlepassword
テーブル接頭辞 mdl_(そのままでOK)

6-4 利用規約の確認

Moodleの利用規約が表示されます。内容を確認して「続ける」をクリックします。
利用規約の確認

6-5 サーバーチェック

サーバー環境のチェック結果が表示されます。すべて「OK」になっていれば「続ける」をクリックします。

警告(warning)が表示されても、赤いエラーでなければ基本的に進めて問題ありません。

サーバーチェック

6-6 インストールの実行

続ける」をクリックするとインストールが始まります。画面に進捗が表示されます。数分かかる場合がありますのでそのまま待ちましょう。完了したら一番下までスクロールし「続ける」をクリックします。

Step 7 | 管理者アカウントを設定してログインする

7-1 管理者アカウントの設定

インストール完了後、管理者アカウントの設定画面が表示されます。以下の項目を入力します(他の項目はあとで変更できます)。

項目
ユーザー名 admin(任意で変更可)
パスワード 任意(8文字以上、大文字・小文字・数字・記号を含む)
メールアドレス 任意
姓・名 任意

管理者アカウントの設定
入力が完了したら「プロファイルを更新する」をクリックします。

7-2 サイト名とロケーションの設定

続いてサイト名の設定画面が表示されます。サイトの名前(例:「Moodleテスト環境」)を入力して「変更を保存する」をクリックします。

以下の項目を入力します(他の項目はあとで変更できます)。

項目
長いサイト名 Moodleテスト環境(後で変更可)
短いサイト名 Moodletest(後で変更可)
デフォルトタイムゾーン アジア/東京(後で変更可)

サイト名とロケーションの設定

以上を設定したら「変更を保存する」をクリックします。こと後、管理者ダッシュボードが表示されたら、インストール完了です!

インストール完了後のダッシュボード画面

Moodleを停止・再起動するには

使い終わったらMoodleを停止しておきましょう。

停止する場合

docker compose down

次回また起動する場合(コマンドプロンプトでmoodle4.5フォルダに移動してから)

docker compose up -d

データはDockerのボリュームに保存されているため、停止してもコースや設定は消えません。

うまくいかない時の確認ポイント

現状 対応策
http://localhost:8045 にアクセスできない タスクバー右下に🐳アイコンがあるか確認。なければDocker Desktopを起動してから docker compose up -d を実行する。
PC再起動後にアクセスできない Docker Desktopが自動起動していない可能性あり。Docker Desktopを起動後、コマンドプロンプトで moodle45 フォルダに移動して docker compose up -d を実行する。
ビルド中にエラーが出る インターネット接続を確認。接続が不安定な場合は再度 docker compose up -d --build を実行する。|
データベース接続エラーになる docker-compose.yml のデータベース設定と、ブラウザの入力内容が一致しているか確認する。
画面が真っ白のまま コンテナの起動直後の可能性あり。1〜2分待ってからリロードする

まとめ

今回の手順をおさらいします。

  1. WSL 2 を有効にする
  2. Docker Desktop をインストールする(AMD64/ARM64 を確認して選ぶ)
  3. 作業フォルダ moodle45 に Dockerfile と docker-compose.yml を作成する
  4. docker compose up -d --build でビルド・起動する(初回は10〜20分)
  5. Moodleを起動する
  6. ブラウザでMoodleの初期設定をする
  7. 管理者アカウントを設定してログインする

DockerとMoodleの組み合わせは、環境を汚さずバージョン管理もしやすいという大きなメリットがあります。ぜひ学習・動作確認の環境として活用してみてください。


※ この記事は Zenn (rublix) にも投稿しています。

0
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
0
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?