学習管理システムmoodleのインストール

2023年7月30日日曜日

moodle Ubuntu

t f B! P L
moodle4.2をローカル環境のUbuntu Server 22.04 LTSにインストールしたときの手順です。 当初、Redhat9にインストールする予定でしたが、MariaDBのバージョン10.6.7以上が必要というmoodle4.2の要件に合わなかったため、Ubuntuにインストールしました。

== Environment ==
!! database mariadb (10.5.16-MariaDB) !!
[System] version 10.6.7 is required and you are running 10.5.16 - 

環境

インストールした環境は次の通りです。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.2 LTS
Release:	22.04
Codename:	jammy

インストール手順

公式サイトの説明に従ってインストールを進めます。

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

次のパッケージをインストールします。

$sudo apt -y install apache2
$sudo apt -y install php
$sudo apt -y install  mariadb-server
$sudo apt -y install php-mysql
$sudo apt -y install php-xml
$sudo apt -y install php-mbstring
$sudo apt -y install php-curl
$sudo apt -y install php-zip
$sudo apt -y install php-gd
$sudo apt -y install php-intl
$sudo apt -y install php-soap

moodleのダウンロードと配置

moodleをダウンロードして、データを/var/www/html/moodleに展開します。

$cd /var/www/html
$sudo tar xvzf moodle-latest-402.tgz
データ用ディレクトリを作成します。

$cd /var/www
$sudo mkdir moodle_files
パーミッションとグループをwww-dataに変更します。

$chown -R www-data:www-data /var/www/html/moodle
$chown -R www-data:www-data /var/www/moodle_files

PHPの設定

php.iniファイルを変更して、max_input_vars = 5000とします。 PHPの設定ファイルは、/etc/php/8.1/apache2/php.iniです。

$sudo vi /etc/php/8.1/apache2/php.ini
;max_input_vars = 1000
max_input_vars = 5000

Apacheの設定

ドキュメントルートが/var/www/htmlになっていることを確認します。

$grep DocumentRoot /etc/apache2/sites-available/000-default.conf 
DocumentRoot /var/www/html
Apacheの実行ユーザーとグループを確認します。

$grep RUN /etc/apache2/envvars 
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
apache2をリスタートします。

$sudo systemctl restart apache2

MariaDBの設定

moodle用のデータベースとユーザーを作成し、権限を設定します。

$sudo mysql
mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'yourpassword';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

cronの設定

crontabで実行コマンドを設定します。

$sudo crontab -e 
* * * * *    /usr/bin/php /var/www/moodle/admin/cli/cron.php >/dev/null

Webブラウザからインストールを実行

Webブラウザでmoodleをアクセスします。インストール画面が表示されるので、データベースの設定やAdminユーザーの設定を行なって、インストールを完了します。

例)
http://192.168.0.120/moodle

うまくいかなかった箇所

コマンドラインからのインストール

最初、config-dist.phpをconfig.phpにコピーし、必要な設定を行なった上でコマンドラインからmoodle/admin/cli/install.phpを実行してインストールを行おうとしたのですが、Adminユーザーを作成することができませんでした。
コマンドラインからではなく、Webブラウザからmoodleをアクセスすると問題なくインストールが行えました。

PHP.iniの場所

ubuntuのターミナルでphp -iを実行すると、設定ファイルとして/etc/php/8.1/cli/php.iniが表示されるのですが、このファイルのmax_input_varsを変更しても、ウェブからのアクセスでは反映されません。/etc/php/8.1/cli/php.iniではなく、/etc/php/8.1/apache2/php.iniを修正する必要があります。

このブログを検索

QooQ