AWSのEC2にLAMP・Moodleを構築する方法各方法のメリット・デメリット。構築時手順と注意点

LAMPのMoodle構築メリットデメリット

AWSのEC2を使ってLAMP環境とMoodleを構築してみました。そのときに出たエラーの内容と回避策です。

AWSのEC2にMoodle環境を作る方法

AWSのEC2にMoodle環境を作る方法は、3つあります。

  1. AWSのMarketPlaceを使う
  2. LightSailを使う
  3. EC2にLAMPを作ってMoodleを入れる

AWSのMarketPlace、LightSailを使ってMoodleを構築する方法

稼働中の人

1、2の方法もそれぞれ試してブログにしています。以下のサイトを見てみてください。

メリット

  • 必要なプロダクトをダウンロードしなくていい
  • DBサーバー、PHPモジュール、Webサーバー、Moodleを入れてくれる

デメリット

AWS MaketPlaceの場合

自分が想定しているプロダクトを使っていないことがある。例えば、OSはAmazon Linuxを使いたいな、と思っていてもOSがCentOSしかなかったり、Moodle.orgから出ているMoodleが良いのに、Bitnamiから出ているものしかなかったり・・・。

自分の想定しているプロダクトでがっつり構成しているものがAmazon MarketPlace上に存在しません。

LightSailの場合

会社とかで使う場合、理解されないw簡易版とわかるや否や、皆が懐疑的になるところです。機能は変わらないのに、簡易版というだけで認められません。価格面を全面に押し出して推すしかありません。

AWSのEC2に自分でMoodleを構築する方法

AWSのEC2に自分でMoodleを構築する方法は面倒くさいです。デメリットは面倒くさいこと。メリットは特にありません。自分で苦労して作った達成感くらいが味わえる、くらいですかね。

手順

ざっくりとした手順です。

  • EC2を作る
  • 必要なプロダクトをインストールする
  • DBを構成する
  • phpMyAdminを入れる
  • Moodleを入れる

必要なプロダクトをインストールする

yumを使ってWebサーバー(httpd)PHP、DB(MySQL)を入れます。この時注意することは何を入れるか、どのバージョンのものを入れるかです。

Moodleのシステム要件 2021年3月現在

PHP 7.2, MariaDB 10.2.29 or MySQL 5.7 or Postgres 9.6 or MSSQL 2012 or Oracle 11.2

Moodleサーバーを構築する際、MySQLの設定が一番面倒です。

1、mariaDBの削除

Amazon Linux 2 にデフォルトでインストールされている MariaDB をアンインストールします。
$ sudo yum list installed | grep mariadb
$ sudo yum remove mariadb-libs

2、バージョンアップとPHP、Webサーバー、DB全部入れる

$sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd

Moodleが必要とするもの

yum install httpd yum install mysql-server yum install git yum install php yum install php-gd yum install php-pear yum install php-mbstring yum install memcached yum install php-mcrypt yum install php-xmlrpc yum install php-soap yum install php-intl yum install php-zip yum install php-zts yum install php-xml ※Moodle公式ドキュメントより

ここでちゃんと入れておかないと、Moodleのインストール画面がうまく進んでくれません。

3、MySQL公式のyumリポジトリを追加
$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
MySQLはバージョン8.0と5.7が一緒のリポジトリに入っています。

4、MySQL8.0無効化とMySQL5.7有効化
$ sudo yum-config-manager -–disable mysql80-community
$ sudo yum-config-manager -–enable mysql57-community

5、MySQL のインストール
$ sudo yum install mysql-community-server
そのあと、下記コマンドでMySQLのバージョンを確認
$ mysqld –version

6、MySQLのrootパスワードを変える

MySQLをインストールしたログファイルにrootのパスワードが記載されています。

/var/log/mysqld.log

[Note] A temporary password is generated for root@localhost: Xg/g;#B/f6Y;

みたいな感じで。

このパスワードを「mysql_secure_installation 」を使って変更します。

# mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root: 初期パスワードを入力する。ここでは「Xg/g;#B/f6Y;

The existing password for the user account root has expired. Please set a new password.

New password: 新しいパスワードを入力する

Re-enter new password: 再度同じ新しいパスワードを入力する

パスワードを忘れないようにメモしながら入力すると良いです。その他、DB管理に関することもいくつか聞かれます。セキュリティも考えて、すべて「y」にしています。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.・・・・・

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.・・・・・

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y Success.・・・・・

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

という感じ。

7.Moodleを入れるための設定

moodledataディレクトリを作る

/var/www/html以下にmoodledataフォルダを作成します。書き込み権限を与えます。

mkdir moodledata

moodleをダウンロード

続いて、/var/wwwディレクリでmoodleをgitします。

注意!!!そのままgitしてしまうと最新版も最新版、不安定かもしれません、と自分で言い切ってしまうMoodle4.0が入ってしまうので、ちゃんとSTABLEの最新版を使いましょう。

$ git clone -b MOODLE_310_STABLE git://git.moodle.org/moodle.git

同じようにmoodleフォルダも書き込み権限を適度に与えます。インストール時に設定ファイルを作ろうとしますので、インストールを走らせる前にフォルダに書き込み権限を与えます。

8、moodleのインストール画面でインストール

後は「http://ホストアドレス/moodle」にアクセスし、Moodleのインストールを実行するだけです。この時エラーが出ます。

・config.phpdファイルを先に作らないで、Moodleに作らせましょう。moodleディレクトリに書き込み権限を与えておいて、インストールしていきます。

・MySQLのドライバーがちゃんと入っているか確認しましょう。

まとめ・とりあえずインストール出来た

とりあえずインストールできました。土台はなんとかなりますが、問題はコンテンツですね。コンテンツはコンテンツ組に任せましょうw