脱サラのすすめ

ダムとバイクとSEの記録


【Ubuntu18.04】簡単Moodleサーバ構築 for さくらVPS【LAMP構成】

f:id:shibatty:20210225172431p:plain

2021.2.27 

コロナ禍e-Learningの需要が増えてきている・・・と思われます。

私の会社でもその流れになり、注目したツールがMoodle(詳細はリンク参照)

オープンソースなので誰でも利用可能なのですが、

その分自力で構築しなければなりません。

なので、これからMoodlee-Learning環境を作ろうと考えている人に向け、ベーシックな構築手順を展開しようという趣旨です。

ここでは、LAMP構成*1での構築手順について触れていきます。

この構成は、Moodleの推奨構成でもあり、WindowsOSでも同様です。

(全行程の所要時間:1~2時間程度)

さくらVPS以外の方でも、手順2またはからは同手順となります。

(例えば、AWSWindowsAzure等でも構築手順は基本的に同じで、AWSは個人的に構築実績があります。)

 

 

 

 

目次

 

0.構築環境

・さくらVPNメモリ:1GB、CPU:2コア、SSD:100GB)

 ※有料契約

 ※ハードがどのような環境でも構築手順は大きく変わりません

 

LinuxOS:Ubuntu18.04

 ※最新は20.04ですが、何故かSSL化がうまくいかなかったので、

  個人的に実績がある18.04を選定しました

 

Apache:2.4

MySQL:5.7

PHP:7.2

 

Moodle:3.8

 ※当Verの必須環境は、Apache2以上、MySQL5.6以上、PHP7.1以上

 ※執筆時の最新Verは3.9ですが、リリース間もないということもあり

  安定性という意味でひとつ前の3.8を導入しました

 

 

 

 

1.さくらVPSにLinuxOSをインストール

さくらVPSを契約の際、「for Windows」を選択しなかった場合は、

自動的にCentOSがインストールされた状態になっています。

個人的にUbuntuOSのほうが操作の慣れやコマンドの覚えがあるため、

OSを再インストールします。

※契約範囲で選択できるOSであれば、何度でもインストール可能

 

①さくらVPSの管理コンソールにログイン 

 

②右上タブより、[各種設定]→[OSインストール]を選択

f:id:shibatty:20210225183002p:plain



③[標準OS]→[Ubuntu18.04]

f:id:shibatty:20210225184038p:plain

 

④パケットフィルタで、[20](メール)、[80](Web)、[443](SSL)番ポートを解放

 ※ここで解放設定にしないと、OS側で解放しても通信できません

f:id:shibatty:20210225184840p:plain

 

⑤[設定内容を確認する]→[インストール実行]

 ※インストール実行にしばらく時間がかかります

 

⑥インストール完了後、次手順へ
 

 

 

2.GUIツール導入

さくらVPSでは、初めから「コンソール」というターミナルウィンドウが用意されており、SSHで繋がなくとも良いメリットがあります。

ただし、コマンドだけだと操作性に欠けるため、GUI操作できるツールを導入していきます。

 

①画面上部の[コンソール]より、ターミナルウィンドウを起動

f:id:shibatty:20210225185940j:plain

 

②下図がその起動画面

 ※起動時に、コンソール上で「ユーザ名」と「パスワード」を聞かれます

 ※UbuntuOSの場合、ユーザ名は「ubuntu」となり、パスワードは初回起動時は任意、次回はそのパスワードを使用しログインします

f:id:shibatty:20210225190058j:plain

 

③コンソールに下記コマンド投入

・「apt」「apt-get」のアップデート

sudo apt update
sudo apt-get update

 

GUIツールのインストール

sudo apt-get install -y xubuntu-desktop

 

GUI機能インストール後、再起動

reboot

これで起動すると下図のような画面が開くようになります。

(コンソール起動でいつでも画面が開くようになります。)

f:id:shibatty:20210226165643j:plain

 

このままログインするとUbuntuのデスクトップ画面が表示されます。

執筆時の最新版が20.04なので、「アップグレードしろ」言われますが、

[Don't Upgrade]で拒否します。

f:id:shibatty:20210226165810j:plain

 

ちなみに、コンソール(ターミナル)画面は、

デスクトップ上を右クリック→[Open Terminal Here]で起動できます。

f:id:shibatty:20210226165930j:plain


ここまででLAMP構成Lまで完了しました。

次手順からWebアプリケーションの動作環境を構築していきます。

 

 

 

 

3.ファイアウォール導入

Webアプリケーション環境構築前に、まずはファイアウォールを導入しておきます。

コンソール画面を開き、コマンドを投入していきます。

 

ファイアウォールツールのインストール

sudo apt install ufw

 

ファイアウォール有効化

sudo ufw enable

 

③ポート解放

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow https

 

④22、80、443番ポートが解放されていることを確認

 確認が取れれば次手順へ

sudo ufw status 

f:id:shibatty:20210226173340j:plain

 

 

4.MySQL導入

データベースツールであるMySQLを導入していきます。

コンソール画面でコマンドを投入していきます。

 

MySQLインストール

sudo apt install mysql-server
sudo mysql_secure_installation

 

②接続確認

 ※2行目以降はMySQL上でのSQLコマンドとなります

sudo mysql -u root -p
mysql> SELECT user,host FROM mysql.user;

f:id:shibatty:20210226185636j:plain

 

Moodle用のユーザ登録(仮に「moodleuser」とします)

mysql> CREATE USER 'moodleuser'@'localhost' indentified by 'パスワード';

※「パスワード」部には自分で設定したいパスワードを入力

 

④念のためユーザを確認

mysql> SELECT user,host FROM mysql.user;

f:id:shibatty:20210226190423j:plain
 

Moodle用データベースの作成(仮に「moodle」とします)

mysql> CREATE DATABASE moodle default character set utf8;

※ここでは文字コードを「utf8」にしていますが、Moodleの推奨は「utf8mb4」です

※「utf8mb4」は絵文字への対応のようです

f:id:shibatty:20210226191101j:plain

 

⑤データベースの権限変更

mysql> GRANT ALL ON *.* to 'moodleuser'@'localhost' identified by 'パスワード';

f:id:shibatty:20210226191314j:plain 

 

MySQLクライアントツールのインストール

mysql> sudo apt-get install mysql-client;

 

ここまででLAMP構成LMが完成しました。

次手順でApacheを導入していきます。

※「quit;」コマンドを入力し、MySQLから抜けておきます

 

 

 

 

5.Apache2導入

WebサーバソフトウェアのApache2を導入していきます。

コンソール画面でコマンドを投入していきます。

 

①Apache2のインストール

sudo apt install apache2
sudo apt-get install curl

 

②起動確認

sudo curl localhost && echo success || echo failed

f:id:shibatty:20210227123807j:plain
最終行で「success」が出ればOK

 

ここまででLAMP構成LAMが完成しました。

次手順で残りのPHPを導入していきます。

 

 

6.PHP導入

Web開発向けプログラム言語であるPHPを導入していきます。

コンソール画面でコマンドを投入していきます。

 

PHP本体のインストール

sudo apt-get install php

 

PHP本体のバージョン確認

PHP -version

 

Moodle稼働に必要なPHP付帯のアプリケーション一式をインストール

 ※Moode3.8では、「zip」「mbstring」「xml」「xmlrpc」「curl」「soap」「intl」「gd」「mysql」「opcache」が必須または推奨

sudo apt-get install php-zip php-mbstring php-xml php-curl php-soap php-xmlrpc php-intl php-gd php-mysql php-opcache

 

Apacheの再起動

sudo systemctl restart apache2

f:id:shibatty:20210227174526j:plain

 

PHPの動作確認

php -r 'print "Hello, World!\n";'

f:id:shibatty:20210227174644j:plain

「Hello, world !」が表示されればOKです。

 

ここまででLAMP構成が完成しました。

次手順でMoodleを導入していきます。

 

 

 

 

 

7.Moodle導入

Moodle本体を導入していきます。

コンソール画面でコマンドを投入していきます。

 

①Gitのインストール

sudo apt-get install git git-core git-doc

 

ディレクトリを移動

 ※Webアプリケーション参照ディレクトリのデフォルトの位置

 ※ディレクトリ位置はApache2の設定ファイルの編集で変更可

  (この記事上では省略します)

cd /var/www/html

 

Moodleデータ一覧のダウンロード

sudo git clone git://git.moodle.org/moodle.git

 

④ダウンロードデータよりインストール対象のバージョンを確認

sudo git branch -a

f:id:shibatty:20210227182648j:plain

 

⑤インストール対象のバージョンを選択

sudo git branch --track MOODLE_38_STABLE origin/MOODLE_38_STABLE

 

⑥対象バージョンのMoodleをダウンロード

sudo git checkout MOODLE_38_STABLE

 

ディレクトリ移動

 ※Webアプリケーション参照ディレクトリの1つ上

cd /var/www

 

Moodleのデータディレクトリ作成

 ※1階層上にデータディレクトリを作成することで、第三者からのデータアクセスを防ぐ

sudo mkdir moodledata

 

Moodleディレクトリ、Moodleデータディレクトリの権限変更

 ※インストール用に一時的に権限を全開放

sudo chmod 0777 /var/www/html/moodle
sudo chmod 0777 /var/www/moodledata

 

⑩Web画面より、Moodleのインストール画面を開く

 ※FireFoxを起動し、URL欄に「http://localhost/moodle」と入れると、下図インストール画面が開く

firefox

f:id:shibatty:20210227183258j:plain

後は画面に従い、インストール設定をしていきます。

・ウェブアドレス→白抜き部の初期値はLocalHostですが、ドメインを取得している場合はドメイン名に変更します

(後からでも変更ができます、手順は別記事で記載します。)

 

Moodleディレクトリ、データディレクトり確認し、間違いがなければ「次へ」

 

f:id:shibatty:20210227183716j:plain

MySQL」を選択し、「次へ」

 

f:id:shibatty:20210227183920j:plain

データベース名、データベースユーザ、データベースパスワードに、MySQL導入時に設定した値をそれぞれ入力、「次へ」

 

f:id:shibatty:20210227184110j:plain

「続ける」

 

f:id:shibatty:20210227184140j:plain

f:id:shibatty:20210227184204j:plain

サーバチェックが入ります。

NG」がなければ問題ありません。

上部画面では以下2点注意が出ています。

https化SSL化)されてないためセキュリティ的問題点がある

 ⇒別記事でSSL化の方法を記載します。

 

・データベース文字コードが「utf8mb4」ではないため、対応していない文字を入れるとエラーが出る

 ⇒絵文字を入れられたくないので、敢えて「utf8」のままにしています

 

他問題点がなければ「次へ」

※不足モジュールが見つかった場合は、「sudo apt-get install php-モジュール名」でインストールできます

 

f:id:shibatty:20210227184616j:plain

Moodleのテーブル作成が始まります。

何も問題がなければこの画面まで辿り着きます。

「続ける」

 

f:id:shibatty:20210227184726j:plain

f:id:shibatty:20210227184914j:plain

Moodleの管理者設定です。

必要事項を入力し、「プロファイルを更新する」

※くれぐれもユーザ名とパスワードは忘れないでください、ログインできなくなります・・・

(どうしても忘れてしまった場合は、別記事で復活手順を参照してください)

 

f:id:shibatty:20210227185120j:plain

f:id:shibatty:20210227185430j:plain

フロントページの編集画面です。

ここは後でも変更できるので、適当に入力していきます。

「変更を保存する」

Moodle内の各種設定変更手順については別記事で紹介しています)

 

f:id:shibatty:20210227185637j:plain

ここまでくれば完成です。

後は目的に合わせて設定していってください。

※サイトの登録は自由です(私はパスしました)

FireFoxを閉じます。

 

Moodleディレクトリの権限変更

 ※権限を戻し忘れると重大なセキュリティ事故につながるので注意

sudo chmod 0755 /var/www/html/moodle

 

 

8.最後に

この記事ではMoodleのインストールのみを取り扱いました。

SSLサイトの改造方法についても別記事でまとめてあるので、

気になる方は参照ください。

SSLHTTPS)化の手順

datsusara-susume.hatenablog.com

 

★サイト改造方法

datsusara-susume.hatenablog.com

 

 

ドメインは、下記バナーのお名前ドットコムで契約するか、さくらVPS利用であればそのままさくらインターネットよりドメインを契約するのが手っ取り早いです。

個人的に、お名前ドットコムが安いのでオススメです。

 

以上。 

(不明点あればコメント頂ければ、可能な限りお答えします。)

 

 

 

 

*1:Webアプリケーションが動作するベース環境の、LinuxOS、Apache、MySQL、PHP(Python、Perl)の頭文字を取ってつけた呼称。WindowsOSならWAMPとなる。