e-LearningプラットフォームのMoodleをインストールする手順を記載します。
Table of Contents
1 Moodleをインストールする
- この記事ではhttpsの為にデフォルトのSSL/TLS証明書を使っています。別にSSL/TLS証明書を用意している場合はそちらをお使いください。
- httpではなくhttpを使用する場合は、/etc/apache2/sites-available/moodle.confにて、443を80にしてSSLXXXのディレクティブを削除してください。
- MOODLE_FQDNはお使いの環境のFQDNに変更してください。
- MOODLE_PASSWDはMySQLで使うmoodleユーザのパスワードです。
#!/bin/sh set -e [ -z "${MOODLE_FQDN}" ] && \ MOODLE_FQDN=moodle.hiroom2.com [ -z "${MOODLE_PASSWD}" ] && \ MOODLE_PASSWD=moodle mysql_install() { sudo apt install -y mariadb-server sudo systemctl enable mariadb sudo systemctl restart mariadb # utf8mb4 does not work. cat<<EOF | sudo mysql -uroot CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; GRANT ALL PRIVILEGES ON moodle.* TO moodle@localhost IDENTIFIED BY '${MOODLE_PASSWD}'; exit EOF } moodle_install() { # The moodle needs the following php extensions. # curl iconv mbstring openssl tokenizer xmlrpc soap ctype zip zlib # gd simplexml spl pcre dom xml xmlreader intl json hash fileinfo. sudo apt install -y php php-mysql php-curl php-xmlrpc php-soap \ php-gd php-intl php-json php-xml php-mbstring php-zip sudo apt install -y git sudo mkdir -p /var/lib/moodle cd /usr/share sudo git clone https://github.com/moodle/moodle cd moodle sudo git checkout v3.3.0 -b v3.3.0 cat <<EOF | sudo tee config.php <?php unset(\$CFG); global \$CFG; \$CFG = new stdClass(); \$CFG->dbtype = 'mariadb'; \$CFG->dbhost = 'localhost'; \$CFG->dbname = 'moodle'; \$CFG->dbuser = 'moodle'; \$CFG->dbpass = '${MOODLE_PASSWD}'; \$CFG->prefix = 'mdl_'; \$CFG->wwwroot = 'https://${MOODLE_FQDN}/moodle'; \$CFG->dirroot = '/usr/share/moodle'; \$CFG->dataroot = '/var/lib/moodle'; \$CFG->directorypermissions = 0750; \$CFG->admin = 'admin'; \$CFG->pathtodu = '/usr/bin/du'; \$CFG->unzip = '/usr/bin/unzip'; \$CFG->zip = '/usr/bin/zip'; \$CFG->respectsessionsettings = true; \$CFG->disableupdatenotifications = true; \$CFG->enablehtmlpurifier = true; if (file_exists("\$CFG->dirroot/lib/setup.php")) { include_once("\$CFG->dirroot/lib/setup.php"); } else { if (\$CFG->dirroot == dirname(__FILE__)) { echo "<p>Could not find this file: \$CFG->dirroot/lib/setup.php</p>"; echo "<p>Are you sure all your files have been uploaded?</p>"; } else { echo "<p>Error detected in config.php</p>"; echo "<p>Error in: \\\$CFG->dirroot = '\$CFG->dirroot';</p>"; echo "<p>Try this: \\\$CFG->dirroot = '".dirname(__FILE__)."';</p>"; } die; } EOF } apache_install() { sudo apt install -y apache2 libapache2-mod-php sudo chown -R www-data:root /var/lib/moodle cat <<EOF | sudo tee /etc/apache2/sites-available/moodle.conf <VirtualHost _default_:443> SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key Alias /moodle /usr/share/moodle <Directory /usr/share/moodle> Options FollowSymLinks MultiViews AllowOverride None Require all granted php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off php_flag file_uploads On php_flag session.auto_start Off php_flag session.bug_compat_warn Off php_value upload_max_filesize 2M php_value post_max_size 2M </Directory> </VirtualHost> EOF sudo a2enmod ssl sudo a2enmod php7.0 sudo a2ensite moodle sudo systemctl enable apache2 sudo systemctl restart apache2 } moodle_main() { mysql_install moodle_install apache_install } moodle_main
2 Moodleへアクセスする
以下のURLにアクセスしてMoodleをセットアップします。ブラウザでこのページの証明書を許可してください。
https://<server>/moodle