このクイックガイドでは、Debian GNU/Linuxを例として取り上げています。対象の環境を理解していれば、この手順は他のLinuxやUnixの種類にも簡単に置き換えることができます。IISにはあまり適していません。 このページは、ウェブサーバアプリケーションのインストール経験があり、すぐに稼働させたい管理者を対象としています。それ以外の場合は、Moodleのインストールをご覧ください。
要件
以下が動作している必要があります:
- ウェブサーバ(Apache、Nginx、Litespeed、IISなど)。
- データベースサーバ(例:PostgreSQL、MySQL、MariaDB、Aurora MySQL、Microsoft SQL Server)
- インストール済みのPHP
詳細については、リリースノートのサーバ要件をご覧ください。
上記に加えて、次のことが必要です:
- いくつかのPHP拡張モジュールおよびライブラリをインストールします。Moodleはインストールプロセスの早い段階でこれらを確認します。不足していると表示された場合は、1つずつインストールしてウェブサーバを再起動し、インストールスクリプトをもう一度実行できます。
- 必要に応じて、Moodleルータを設定します。
- サーバでEximやSendmailなどのメール転送エージェント(MTA)が動作していること、またはSMTPサーバにアクセスできることを確認します。
Moodleの入手
方法は2つあります:
- https://download.moodle.org/ からコードをアーカイブとしてダウンロードする……または
- Gitを使用して、コードをGitリポジトリとしてプルする(開発者に推奨され、更新やアップグレードも非常に簡単になります):
Moodleのコードをアーカイブとしてダウンロードする
- zipまたはtgzファイルをダウンロード済みの場合は、ウェブサーバから配信される場所でunzip/untarします(例:DebianベースのLinuxでは、/var/www/html/moodleに移動します)。
- パーミッションを確認し、Moodleのコードディレクトリ内のどのファイルについても、ウェブサーバに読み取りパーミッションがあり、書き込みパーミッションがないことを確認してください(ウェブサーバに書き込みパーミッションがあることは、サイトがハッキングされる非常に一般的な根本原因です)。
- Moodleサイトをpublic/ディレクトリから配信するようにウェブサーバを設定します。つまり、Moodleのソースが/var/www/html/moodleにある場合、ウェブルートは/var/www/html/moodle/publicである必要があります。
Gitリポジトリからコードをプルする
git clone -b MOODLE_503_STABLE git://git.moodle.org/moodle.git
...これにより、Moodleリポジトリの完全なコピーが取得され、5.3 Stableブランチに切り替わります。
Gitを使用したMoodleのコードのインストールの詳細については、管理者向けGitをご覧ください。
注:Moodleは、moodle.orgのいずれかのソースからのみダウンロードしてください。その他のバージョン(コントロールパネルベースのインストーラ、Linuxディストリビューションのリポジトリ、その他の「ワンクリック」インストーラなど)は、正しく動作すること、アップグレードできること、サポートを受けられることが保証されません。
Composerの依存関係のインストール
Moodleは、Composerを使用して一部のサードパーティライブラリをインストールできます。Moodle 5.3では、OAuth 2サーバなどの新機能を除き、Composerは任意です。Moodle 6.0からは必須になります。依存関係をインストールするには、Moodleのベースディレクトリで次のコマンドを実行します:
composer install --no-dev --classmap-authoritative
詳細については、「Moodleのインストール」ページのComposerの依存関係のインストールをご覧ください。
データベースおよびデータベースユーザの作成
- 選択したデータベースサーバを使用して、新しい空のデータベースを作成します。デフォルトのエンコーディングはUTF8である必要があります。たとえば、MySQLの場合:
mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CHARACTER SETとCOLLATEがデータベースサーバのデフォルトになっている場合は、指定する必要がないことがあります。
- データベースに対する適切なパーミッションを持つユーザ/パスワードの組み合わせを作成します。たとえば、同じくMySQLの場合:
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'yourpassword';
- MySQLでは、GRANT文でIDENTIFIED BYによりパスワードを指定する方法は、MySQLバージョン5.7.6以降、非推奨になっています。そのため、必要最小限のパーミッションを持つユーザ/パスワードを追加する上記の手順は、現在は次の3つのステップになります:
mysql> CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'yourpassword'; mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleuser'@'localhost';
注:
- GRANT .. ON moodle.* では、データベース名だけでなく「.*」も含めてください。
- GRANT ALL PRIVILEGES ON .. と指定すると、権限のリストを短くできます。
Moodleユーザに使用したこのパスワードは、後でインストール中に必要になるため、保存しておいてください。
データディレクトリの作成
- Moodleのファイルを保存するための空のディレクトリを作成します。このディレクトリは、ウェブサーバから配信される領域内に置いてはいけません。また、ウェブサーバのユーザが書き込めるパーミッションが必要です。それ以外は、どこに置いてもかまいません。通常は、ウェブサーバのユーザを所有者にするか、ウェブサーバに書き込みパーミッションを与えます。共有ドライブやNFSドライブ上にある場合は、キャッシングをお読みください。Moodleはデフォルトでこのディスク領域にキャッシュするため、共有が遅いとパフォーマンスがひどく低下します。
Moodleの設定
- Moodleのベースディレクトリ(この例では/var/www/html/moodle)にあるファイルconfig-dist.phpを見つけ、config.phpという名前の新しいファイルにコピーします(Moodleに作成させる予定がない場合。次のセクション「インストールスクリプトの実行」をご覧ください)。
- お好みのエディタでconfig.phpを編集し、サイト、ディレクトリ、データベースを指すように該当する設定を変更します。
- Moodle 5.1以降、config.phpファイルおよびその他の機密ファイルは、ウェブルートであるpublic/ディレクトリの上位にあるベースディレクトリに保存されます。ウェブサーバがこのpublic/ディレクトリからのみ配信するように設定されていることを確認してください。{{Note| public/にもconfig.phpがあります。ベースディレクトリ(1つ上の階層)にある有効なconfig.phpと混同しないでください。詳細については、「アップグレード」ページのコードディレクトリの再構成セクションをご覧ください。
インストールスクリプトの実行
ウェブGUIの場合
- ブラウザでMoodleサイトのURLにアクセスします(インストールは自動的に完了します)。
CLIの場合
/usr/bin/php /path/to/moodle/admin/cli/install.php --help
- Moodleのインストールスクリプトは、GUIでもCLIでも、config.phpが存在せず、サーバにMoodleのベースディレクトリへの書き込みパーミッションがある場合は、config.phpを作成します。
- インストールの完了後、Moodleのプログラムファイル(ウェブサーバが書き込めない)とMoodleのデータファイル(ウェブサーバが書き込める)のファイルパーミッションが正しいことを確認してください。
おめでとうございます!これで独自のMoodleサーバができました。ユーザとの運用を始める前に、インストール後のセットアップが2つあります。
インストール後のセットアップ
cronの設定
Moodleでは、admin/cli/cron.phpスクリプトを定期的に実行する必要があります。毎分実行することをお勧めします。一般的なUnixのcrontabエントリは次のようになります:
* * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php >/dev/null
このスクリプトを定期的に実行しないと、サイトは正しく動作しません。この手順を省略しないことが重要です。
詳細については、cronをご覧ください。
送信メール設定
Moodleは、メールでユーザとやり取りします。そのためにはSMTPサービスが必要です。サーバでEximやSendmailなどのメール転送エージェント(MTA)が動作していること、またはMoodleが外部のSMTPサーバにアクセスできることを確認してください。詳細については、メール設定をご覧ください。
これで、Moodleサイトを使用する準備ができました!
関連項目
- Moodleのインストール:詳しい説明
- 質問がある場合は、インストールFAQをご覧ください。
- 問題が発生した場合は、Installation helpフォーラムをご確認ください。