Moodleインストール

[Moodleのインストール情報](https://docs.moodle.org/39/en/Step-by-step_Installation_Guide_for_Ubuntu)を参考に、Moodleをインストールする。

# 必要なパッケージのインストール

最初からこのパッケージが必要、と分かっているわけではない。ブラウザでのインストール手順中、必要なPHPのパッケージチェックの結果として分かるものもある。

```shell
$ sudo apt install -y apache2 php libapache2-mod-php php-curl php-zip php-mysqli php-xml php-gd php-intl php-mbstring php-soap php-xmlrpc
   
$ sudo apt install -y graphviz aspell ghostscript clamav php-pspell php-mysql php-ldap 
```

# ソースコードの取得

```shell
$ cd /opt
$ sudo git clone git://git.moodle.org/moodle.git
Cloning into 'moodle'...
remote: Counting objects: 1174897, done.
remote: Compressing objects: 100% (3234/3234), done.
remote: Total 1174897 (delta 5459), reused 6984 (delta 5021)
Receiving objects: 100% (1174897/1174897), 399.60 MiB | 385.00 KiB/s, done.
Resolving deltas: 100% (874153/874153), done.
Checking out files: 100% (21227/21227), done.
$ cd moodle
$ sudo git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/MOODLE_13_STABLE
  remotes/origin/MOODLE_14_STABLE
  remotes/origin/MOODLE_15_STABLE
  remotes/origin/MOODLE_16_STABLE
  remotes/origin/MOODLE_17_STABLE
  remotes/origin/MOODLE_18_STABLE
  remotes/origin/MOODLE_19_STABLE
  remotes/origin/MOODLE_20_STABLE
  remotes/origin/MOODLE_21_STABLE
  remotes/origin/MOODLE_22_STABLE
  remotes/origin/MOODLE_23_STABLE
  remotes/origin/MOODLE_24_STABLE
  remotes/origin/MOODLE_25_STABLE
  remotes/origin/MOODLE_26_STABLE
  remotes/origin/MOODLE_27_STABLE
  remotes/origin/MOODLE_28_STABLE
  remotes/origin/MOODLE_29_STABLE
  remotes/origin/MOODLE_30_STABLE
  remotes/origin/MOODLE_310_STABLE
  remotes/origin/MOODLE_31_STABLE
  remotes/origin/MOODLE_32_STABLE
  remotes/origin/MOODLE_33_STABLE
  remotes/origin/MOODLE_34_STABLE
  remotes/origin/MOODLE_35_STABLE
  remotes/origin/MOODLE_36_STABLE
  remotes/origin/MOODLE_37_STABLE
  remotes/origin/MOODLE_38_STABLE
  remotes/origin/MOODLE_39_STABLE
  remotes/origin/master

$ sudo git branch --track MOODLE_39_STABLE origin/MOODLE_39_STABLE
Branch 'MOODLE_39_STABLE' set up to track remote branch 'MOODLE_39_STABLE' from 'origin'.

$ sudo git checkout MOODLE_39_STABLE
Switched to branch 'MOODLE_39_STABLE'
Your branch is up to date with 'origin/MOODLE_39_STABLE'.

$ sudo cp -R /opt/moodle /var/www/html/
$ sudo chown -R www-data /var/www/moodledata
$ sudo chmod -R 0755 /var/www/html/moodle
```

`/var/www/moodledata`は、後ほどブラウザからのインストールの際に指定することになるので、覚えておく。

# MySQLの設定

mysql.cnfに以下の3行を追記する。

```/etc/mysql/mysql.conf.d/mysqld.cnf
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
```

MySQLを再起動する。

```shell
$ sudo service mysql restart
```

MySQL上でデータベースの作成とユーザの作成を行う。

```shell
$ sudo mysql -u root -p
```

パスワードはなし。エンターキーで進める。

以下のSQLのうち、`username`と`password`は適切なものを設定する。

```shell
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
create user 'username'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'username'@'localhost';
quit;
```

ここまで出来たら、次はブラウザ上での操作となる。

# Moodle

ブラウザからMoodleにアクセス。

## Step1 言語の選択

![Moodle_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/dfb42ade-521b-7e5c-b778-2855ffc7ee3f.png)

## Step2 パスの確認

![Moodle_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/d8ad7576-83af-bd75-688b-3cb7da1244d5.png)

パスは、インストールした場所と合わせて確認する。

## Step3 データベースドライバの選択

![Moodle_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/a3069ee2-3e60-0eba-f355-10e743fc817e.png)

データベースドライバはmysqliを選択する。

## Step4 データベース設定

![Moodle_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/0453842b-eff1-3570-4a78-49504bc36a8c.png)

MySQLの設定にて設定した値を適用する。

## Step5 config.php

![Moodle_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/a2183156-48fb-140e-5da5-3299c8dc4cff.png)

この画面に表示されているPHPコードを、`/var/www/html/moodle/config.php`というファイルに記述する。

## Step6 著作権表示

![Moodle_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/21d066a3-950e-eac4-bcde-2471b86d8fe6.png)

著作権表示。そのまま続ける。

## Step7 PHPパッケージのチェック

以下の追加パッケージのうち`チェック`となっているものは、`sudo apt-get install`でのインストールを行ったのち、 *"Apache2の再起動をした上で"* もう一度この画面でチェックする。httpsは、今回はそのまま。

![Moodle_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/3436ca04-c5d3-03bb-a05b-696a49d22c3f.png)

![Moodle_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/d8692074-85a4-0dd1-d59f-0a631551e624.png)

## Step8 Moodleモジュールのインストール

それなりの時間がかかるので、状況を確認しながら待つ。

![Moodle_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/db62fa0b-931a-bdb5-12a0-f12aea23cb60.png)

![Moodle_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/65625960-8548-10a7-451e-72c1986b4d17.png)

## Step9 最高管理者アカウントの作成

![Moodle_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/cf8a45ad-2714-f357-3a7e-1a039ba73520.png)

![Moodle_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/2c9cc27a-5add-06e7-3b00-1f1bb931fe50.png)

## Step10 フロントページ設定など、基本設定

![Moodle_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/ed7fbf9a-3685-bcab-3f57-91b8d609fff3.png)

![Moodle_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/201c473c-17ea-3dab-13cf-0964e641401f.png)

![Moodle_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/0e29bc64-4d7e-6edf-8dd9-06967d796b1f.png)

`noreply@localhost`をそのままにしておいたら怒られた。適切なメールアドレスを設定する。

## Step11 終了

ダッシュボードが表示されて、インストール完了。

![Moodle_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2059/cf27ba3d-a179-5c8f-b225-34041204d952.png)

# 振り返り

1.  全部コマンドラインでインストールできるなら楽なのだが、そういうものは無い様子。
2.  依存PHPパッケージのチェックは事前にコマンドラインでやりたい・・・