Moodleインストール · 2 min read · Sep 08, 2025

Debian 12サーバーにMoodle LMSをインストールする方法

Moodleは、学習管理システム(LMS)のためのオープンソリューションです。オンラインコースの作成、オンライン学校の管理、コンテンツの管理、協働学習の提供など、教育目的のためのプラットフォームです。Moodleは主にPHPで記述されており、データベースにはMySQL/MariaDBを使用し、任意のオペレーティングシステムで実行できます。Moodleのインストールには、ApacheまたはNginxのいずれかを選択します。

このガイドでは、Debian 12サーバーにMoodle学習管理システムをインストールする方法を学びます。LAMPスタック(Linux、Apache、MariaDB、PHP)でMoodleを実行し、UFW(Uncomplicated Firewall)でDebianサーバーを保護し、その後、CertbotとLetsencryptを使用してHTTP経由でMoodleを保護します。

前提条件

始める前に、以下のものを用意してください:

  • Debian 12サーバー
  • 管理者権限を持つ非rootユーザー
  • サーバーIPアドレスにポイントされたドメイン名

依存関係のインストール

Moodle LMSはPHPとMySQLで記述されているため、これらのパッケージをシステムにインストールする必要があります。この例では、LAMPスタック(Linux、Apache、MariaDB、PHP)でMoodleを実行します。したがって、今はDebianサーバーにLAMPをインストールします。

パッケージをインストールする前に、以下のコマンドを実行してDebianパッケージインデックスを更新します。

sudo apt update

update repo

次に、以下のコマンドを使用してLAMPスタック(Linux、Apache、MariaDB、PHP)の依存関係をインストールします。インストールを続行するには「Y」と入力します。

sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath libapache2-mod-php

install lamp

インストールが完了したら、「apache2」サービスを確認して、サービスが実行中であることを確認します。

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

以下のように、Apacheウェブサーバーが実行中で有効になっていることがわかります。

check apache2

次に、以下のコマンドを実行して「mariadb」サービスを確認します。

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

以下の出力から、MariaDBサーバーが実行中であることがわかります。

check mariadb

最後に、以下のコマンドを使用してPHPのバージョンを確認し、有効なモジュールをリストします。

php -v  
php -m

PHP 8.2がインストールされており、「curl」、「exif」、「date」などのいくつかのデフォルトモジュールが有効になっていることがわかります。

check php

UFW(Uncomplicated Firewall)のインストール

LAMPスタックをインストールした後、サーバーを保護するためにUFW(Uncomplicated Firewall)をインストールしましょう。そして、SSH、HTTP、HTTPSプロトコルのポートを開きます。最後に、UFWを開始して有効にします。

UFWをインストールするには、以下の「apt」コマンドを実行します。

sudo apt install ufw

install ufw

UFWがインストールされたら、以下の「ufw」コマンドを実行してOpenSSH、HTTP(80)、HTTPS(443)のポートを開きます。「ルールが更新されました」という出力が表示されます。

sudo ufw allow OpenSSH  
sudo ufw allow 80/tcp  
sudo ufw allow 443/tcp

次に、以下のコマンドを実行してDebianマシンでUFWを開始して有効にします。プロンプトが表示されたら、「y」と入力して確認し、続行します。「ファイアウォールはアクティブで、システム起動時に有効になっています」という出力が表示されます。

sudo ufw enable

最後に、以下のコマンドを使用してUFWのステータスを確認します。「UFWはアクティブ」で、OpenSSHとポート「80」と「443」が「 許可されています 」であることがわかります。

sudo ufw status

check status

MariaDBサーバーの設定

Moodleをインストールする前に、デフォルトのストレージエンジンを「innodb」に変更し、「Barracuda」をデフォルトフォーマットとして設定する必要があります。その後、MariaDBサーバーを保護し、「mariadb-secure-installation」ユーティリティを使用して「root」パスワードを設定する必要があります。

デフォルトのMariaDBサーバー設定「/etc/mysql/mariadb.conf.d/50-server.cnf」を「nano」エディタで開きます。

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

以下の設定を挿入して「Barracuda」フォーマットを有効にし、デフォルトのストレージエンジンを「InnoDB」に設定します。

innodb_file_format = Barracuda   
default_storage_engine = innodb  
innodb_large_prefix = 1  
innodb_file_per_table = 1

ファイルを保存してエディタを終了します。

次に、以下の「systemctl」コマンドを実行してMariaDBサーバーを再起動し、変更を適用します。

sudo systemctl restart mariadb

その後、以下の「mariadb-secure-installation」コマンドを実行してMariaDBサーバーのインストールを保護します。

sudo mariadb-secure-installation

これにより、MariaDBサーバーの設定について質問されます:

  • ルートパスワードについて尋ねられたらENTERを押します(後で設定します)
  • 「unix_socket」認証に切り替えるように求められたら「n」と入力します
  • MariaDBのrootパスワードを設定するように求められたら「Y」と入力し、新しいパスワードを入力して繰り返します
  • MariaDBから匿名ユーザーを削除するように求められたら「Y」と入力します
  • rootユーザーのリモートログインを無効にするように求められたら「Y」と入力します
  • デフォルトデータベース「test」とその権限を削除するように求められたら「Y」と入力します
  • テーブルの権限を再読み込みして変更を適用するように求められたら「Y」と入力します

完了したら、次のステップに進んで新しいデータベースとユーザーを作成します。

Moodle用のデータベースとユーザーの作成

MariaDBサーバーが設定されたので、Moodleで使用される新しいデータベースとユーザーを作成しましょう。MariaDBにログインして新しいデータベースとユーザーを作成するために「mariadb」クライアントを使用します。

以下の「mariadb」コマンドを使用してMariaDBサーバーにログインします。プロンプトが表示されたらMariaDBのrootパスワードを入力します。

sudo mariadb -u root -p

以下のクエリを実行して、新しいデータベース「moodle」とパスワード「MoodlePassw0rd」を持つユーザーを作成します。以下のデータベース資格情報を自分の情報に変更してください。

CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
GRANT ALL ON moodle.* TO 'moodle'@'localhost' IDENTIFIED BY "MoodlePassw0rd";  
FLUSH PRIVILEGES;

create database and user

次に、以下のクエリを実行してユーザー「moodle」を確認します。ユーザー「moodle」がデータベース「moodle」にアクセスできることを確認します。

SHOW GRANTS FOR moodle@localhost;

最後に、「QUIT」と入力してMariaDBサーバーから退出します。

show database privileges

PHPの設定

MariaDBサーバーを設定し、新しいデータベースユーザーを作成したので、「php.ini」ファイルを設定し、Moodleに必要なデフォルト設定を変更しましょう。

「php.ini」ファイルを「nano」エディタで開きます。

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

以下のようにデフォルトのPHP設定を変更します。「memory_limit」はサーバーのメモリに応じて変更できます。

memory_limit = 256M  
upload_max_filesize = 60M  
max_execution_time = 300  
date.timezone = Europe/Amsterdam  
max_input_vars = 5000

完了したら、ファイルを保存してエディタを終了します。

最後に、以下の「systemctl」コマンドを実行して「apache2」ウェブサーバーを再起動し、新しいPHP設定を適用します。

sudo systemctl restart apache2

Moodleソースコードのダウンロード

PHPの設定が完了したら、Moodleのソースコードをダウンロードし、Moodleのインストールディレクトリと「data」ディレクトリを設定する準備が整いました。この例では、Moodleのインストールディレクトリを「/var/www/moodle」に、データディレクトリを「/var/www/moodledata」に設定します。

「/var/www」ディレクトリに移動し、以下の「wget」コマンドを使用してMoodleのソースコードをダウンロードします。

cd /var/www  
sudo wget https://download.moodle.org/download.php/direct/stable405/moodle-latest-405.tgz

ダウンロードが完了したら、以下の「tar」コマンドを実行してMoodleのソースコードを抽出し、抽出されたディレクトリの名前を「moodle」に変更します。これにより、Moodleのインストールは「/var/www/moodle」ディレクトリに配置されます。

tar -xf moodle-latest-405.tgz

次に、新しいディレクトリ「/var/www/moodledata」を作成します。これはMoodleのインストール用のデータディレクトリとして使用されます。

mkdir -p /var/www/moodledata

最後に、以下のコマンドを実行して「/var/www/moodle」と「/var/www/moodledata」ディレクトリの所有権を「www-data」ユーザーに変更します。そして、「www-data」ユーザーがこれらのディレクトリ内のファイルを読み取り、書き込み、実行できることを確認します。

sudo chown -R www-data:www-data /var/www/moodle /var/www/moodledata  
sudo chmod u+rwx /var/www/moodle /var/www/moodledata

setup moodle directory

Apache仮想ホストの設定

Moodleをダウンロードしたので、次のステップはMoodle用の新しいApache仮想ホストファイルを作成することです。サーバーIPアドレスに解決された/ポイントされたドメイン名があることを確認してください。

新しい仮想ホスト設定「/etc/apache2/sites-available/moodle.conf」を「nano」エディタで作成します。

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

以下の設定を挿入してMoodle用の仮想ホストファイルを設定します。「ServerName」パラメータを自分のドメイン名に変更してください。

  
DocumentRoot /var/www/moodle/  
ServerName moodle.howtoforge.local  
ServerAdmin [email protected]  
  
  
Options +FollowSymlinks  
AllowOverride All  
Require all granted  
  
  
ErrorLog /var/log/apache2/moodle_error.log  
CustomLog /var/log/apache2/moodle_access.log combined  

完了したら、ファイルを保存してエディタを終了します。

次に、以下の「a2enmod」コマンドを実行して「rewrite」モジュールを有効にし、以下の「a2ensite」コマンドを実行して「moodle.conf」仮想ホストを有効にします。

sudo a2enmod rewrite  
sudo a2ensite moodle.conf

次に、以下の「apachectl」コマンドを実行してApache設定を確認します。適切なApache設定がある場合、「構文はOKです」という出力が表示されます。

sudo apachectl configtest

setup apache

最後に、以下の「systemctl」コマンドを実行してApacheウェブサーバーを再起動し、変更を適用します。

sudo systemctl restart apache2

HTTPSでMoodleを保護する

この時点で、Moodleのインストールは準備完了です。続行する前に、CertbotとLetsencryptを使用してMoodleをHTTPSで保護します。これは、Moodleをパブリックサーバーにインストールする際に行います。ローカル開発中であれば、スキップするか、自己署名証明書を使用してHTTPSを実装できます。

以下の「apt」コマンドを使用して「certbot」と「python3-certbot-apache」プラグインをインストールします。インストールを確認するには「Y」と入力します。

sudo apt install certbot python3-certbot-apache

インストールが完了したら、以下の「certbot」コマンドを実行してMoodleのSSL証明書を生成します。以下のドメイン名とメールアドレスを自分のドメインに変更してください。

sudo certbot --apache --agree-tos --no-eff-email -m [email protected] -d moodle.howtoforge.local

完了すると、SSL証明書は「/etc/letsencrypt/live/domain.com」ディレクトリに保存され、MoodleのインストールはHTTPSで実行されます。

Moodleのインストール

ウェブブラウザを開き、Moodleのインストールドメイン名(例: https://moodle.howtoforge.local/)にアクセスすると、Moodleインストールウィザードが表示されます。

Moodleのデフォルト言語を選択し、「 次へ 」をクリックします。

select language

ドメイン名とMoodleデータディレクトリを「 /var/www/moodledata 」に入力します。

select domain and data directory

デフォルトのデータベースとして「 MariaDB 」を選択します。

mariadb database driver

MariaDBデータベースの詳細(dbname、dbuser、パスワード)を入力します。

mariadb configuration

著作権通知で「 続行 」をクリックします。

copyright

「サーバーチェック」セクション内で、DebianサーバーがMoodleの要件を満たしていることを確認します。すべての項目のステータスは「 OK 」である必要があります。

system checks

次に、以下のようなMoodleのインストール画面が表示されます。

moodle instalaltion

インストールが完了したら、管理者の詳細(ユーザー名、メール、パスワード)を入力します。

admin user

次に、Moodleサイト情報を入力します。

moodle site info

最後に、以下のMoodle管理ダッシュボードが表示されます。

dashboard

結論

おめでとうございます!Debian 12サーバーにMoodle学習管理システム(LMS)のインストールが完了しました。LAMPスタック(Linux、Apache、MariaDB、PHP)でMoodleを実行し、UFW(Uncomplicated Firewall)とCertbotおよびLetsencryptを使用してHTTPSで保護しました。ここから、Moodleの新しいテーマを適用したり、機能を拡張するための新しいアドオンをインストールしたり、Moodleインストールを管理するためのMoodleユーザーガイドを学んだりできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。