AmazonLinux2にMoodleをインストール

ハマりポイントと簡単にインストールの解説

通常のAmazonLinuxは今後サポートされていかなくなるため2の方を積極的に使いたいところですが、そのままではMoodleがすんなり入りませんでしたのでこの記事を参考にインストールしてみてください。

https://aws.amazon.com/jp/blogs/news/amazon-linux-2-release/

簡単に言うとAamazonLinux2で提供されているPHPのモジュールでzipが入っていなかったため自分でコンパイルする必要がありました。(2018-05-07)
新しいパッケージが提供されれば解消される可能性がありますので、moodleインストール中にphp-zipのライブラリがないよ警告されて先に進まない人はお試しください。

インスタンスを立ち上げてSSHでログイン

SSHでログインしたところから始めます。

タイムゾーンを日本として設定

$ sudo timedatectl set-timezone Asia/Tokyo

OSのパッケージ各種アップデート

$ sudo yum update -y

PHP7を利用するための環境をインストール

通常のインストールではPHP5.4がインストールされますが、AWSの方で外部のパッケージとして用意されています。

$ sudo amazon-linux-extras list
  0  ansible2                 available  [ =2.4.2 ]
  1  emacs                    available  [ =25.3 ]
  2  memcached1.5             available  [ =1.5.1 ]
  3  nginx1.12                available  [ =1.12.2 ]
  4  postgresql9.6            available  [ =9.6.6 ]
  5  python3                  available  [ =3.6.2 ]
  6  redis4.0                 available  [ =4.0.5 ]
  7  R3.4                     available  [ =3.4.3 ]
  8  rust1                    available  [ =1.22.1 ]
  9  vim                      available  [ =8.0 ]
 10  golang1.9                available  [ =1.9.2 ]
 11  ruby2.4                  available  [ =2.4.2 ]
 12  nano                     available  [ =2.9.1 ]
 13  php7.2                   available  [ =7.2.0 ]
 14  lamp-mariadb10.2-php7.2  available  [ =10.2.10_7.2.0 ]

PHP7とlamp環境をインストール

$ sudo amazon-linux-extras install 13 14

各種ソフトウェアインストール

WebサーバとDBサーバと関連するパッケージをインストールします。

$ sudo yum -y install httpd-deve
$ sudo yum -y install php php-devel php-pdo php-mysqlnd php-mbstring php-gd php-zip php-soap php-intl php-xmlrpcl php-opcache mod_ssl zlib-devel php-pear 
$ sudo yum -y install mariadb-devel mariadb-server
$ sudo yum install libzip libzip-devel

phpでzipを扱うライブラリがパッケージにないためコンパイルしてインストール

php-zipがパッケージとして用意されていませんでしたので、php-zipのライブラリをコンパイルします。
バージョンの指定をしないとAmazonLinux2に入っているlibzipではバージョンが低くてコンパイルすることができませんでした。

$ sudo pecl install zip-1.13.5

/etc/php.ini の下の方へこれを追記する

extension=zip.so

php.ini

php.ini でいつも設定するもの

expose_php = Off
max_execution_time = 180
memory_limit = 256M
max_input_time = 180
post_max_size = 128M
upload_max_filesize = 128M
date.timezone = "Asia/Tokyo"

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none

MariaDB設定

$ sudo vi /etc/my.cnf.d/mariadb-server.cnf

下記の部分を追記と編集 扱う文字コードをUTF8にする

[mysqld]
skip-character-set-client-handshake
character-set-server=utf8

DBサーバの再起動と再起動時に自動起動を行う設定をする

$ systemctl restart mariadb
$ systemctl enable mariadb

初期設定で進めます、必ず他のサイトを参考にしてパスワードを設定してください。

https://weblabo.oscasierra.net/mysql-57-init-setup/

mariadbにログイン後データベース作成

$ mysql -u xxxx -p
xxxxxxx(password)
> create database moodle;
> exit;

Moodleダウンロード & 設置

$ wget https://download.moodle.org/download.php/direct/stable34/moodle-latest-34.tgz
$ tar zxfh moodle-latest-34.tgz
$ sudo mv moodle/* /var/www/html/
$ sudo chown -R apache:apache /var/www/html/

$ sudo mkdir moodledata
$ sudo chown apache:apache moodledata/

アクセス

AWSのコントロールパネルでみれるDNSへアクセスするとインストールが始まります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です