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
次に、以下のコマンドを使用して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
インストールが完了したら、「apache2」サービスを確認して、サービスが実行中であることを確認します。
sudo systemctl is-enabled apache2
sudo systemctl status apache2以下のように、Apacheウェブサーバーが実行中で有効になっていることがわかります。

次に、以下のコマンドを実行して「mariadb」サービスを確認します。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb以下の出力から、MariaDBサーバーが実行中であることがわかります。

最後に、以下のコマンドを使用してPHPのバージョンを確認し、有効なモジュールをリストします。
php -v
php -mPHP 8.2がインストールされており、「curl」、「exif」、「date」などのいくつかのデフォルトモジュールが有効になっていることがわかります。

UFW(Uncomplicated Firewall)のインストール
LAMPスタックをインストールした後、サーバーを保護するためにUFW(Uncomplicated Firewall)をインストールしましょう。そして、SSH、HTTP、HTTPSプロトコルのポートを開きます。最後に、UFWを開始して有効にします。
UFWをインストールするには、以下の「apt」コマンドを実行します。
sudo apt 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
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;
次に、以下のクエリを実行してユーザー「moodle」を確認します。ユーザー「moodle」がデータベース「moodle」にアクセスできることを確認します。
SHOW GRANTS FOR moodle@localhost;最後に、「QUIT」と入力してMariaDBサーバーから退出します。

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 apache2Moodleソースコードのダウンロード
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
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
最後に、以下の「systemctl」コマンドを実行してApacheウェブサーバーを再起動し、変更を適用します。
sudo systemctl restart apache2HTTPSで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のデフォルト言語を選択し、「 次へ 」をクリックします。

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

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

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

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

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

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

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

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

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

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