Moodle 3.11+ Installの要求環境:
Requires: PHP 7.2, MariaDB 10.2.29 or MySQL 5.7 or Postgres 9.6 or MSSQL 2012 or Oracle 11.2
今回はPHP7.4とMariaDB10.5を使ってみました

はじめにCentOS7 64bitを通常インストールします
Selinuxの無効化をします (無効化するとセキュリティーが低下するので、やる場合は各自の責任で行ってください)
# cd /etc/selinux
# vi config
SELINUX=enforcing
 ↓
SELINUX=disabled (無効化設定します)

OSモジュールのアップデートとリブートをします
# yum update
# reboot
旧バージョンのmaridbがインストールされているかチェックし、もし有ればアンインストールします
# rpm -qa | grep mariadb
# yum erase mariadb-libs
依存性関連でpostfixも削除されてしまうので、必要なら後でインストールします

旧バージョンのPHPがインストールされているかチェックし、もし有ればアンインストールします
# rpm -qa |grep php
# yum erase php

旧バージョンのApacheがインストールされているかチェックし、もし有ればアンインストールします
# rpm -qa |grep httpd
# yum erase httpd
epelリポジトリをインストールします
# yum install epel-release
通常はepelリポジトリを有効にしないように設定ファイルを修正します
# vi /etc/yum.repos.d/epel.repo
enabled=1

enabled=0

remiリポジトリをインストールします
# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
通常はremiリポジトリを有効にしない設定にします
# vi /etc/yum.repos.d/epel.repo
# vi /etc/yum.repos.d/remi.repo
# vi /etc/yum.repos.d/remi-safe.repo
enabled=1

enabled=0

php7.4をremiリポジトリで検索してインストールします
# yum search --enablerepo=remi,remi-php74  php74  httpd
php7.4をインストール
# yum install --enablerepo=epel,remi,remi-php74  gd-last httpd httpd-devel httpd-tools mod_ssl php74-php.x86_64   pcre-devel php php-cli php-common php-devel php-gd php-intl php-json php-mbstring php-opcache php-pdo php-pear php-pecl-apcu php-pecl-zip php-process php-soap php-xml php-xmlrpc php-fedora-autoloader php-sodium php-mysqlnd


MariaDBをmariadbリポジトリでインストールします
# vi /etc/yum.repos.d/mariadb.repo
↓はCentOS7用のMariaDB.repo ファイル例です(詳細は http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enable=1

ためしにMariaDB(10.5.8-1)をインストールしました。
# yum install MariaDB-client MariaDB-server MariaDB-common MariaDB-compat boost-program-options galera

 Fiewallの設定をしますfirewall-cmd --list-all-zones (開いているポートをチェック)
デフォルトではポート22/TCP(ssh)しか開いていないのでhttp,https,smtpなど必要なポートを追加します
# firewall-cmd --list-all-zones (開いているポートをチェック)
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --add-service=smtp --zone=public --permanent
# firewall-cmd --reload
# firewall-cmd --list-all-zones (開いているポートをチェック)

httpdを起動します
# systemctl restart httpd.service
httpdが自動起動するように設定します
# systemctl enable httpd.service

httpdの環境設定をします
Webサイトをのせるディレクトリを作ります
# mkdir /data
# mkdir /data/html

# cd /etc/httpd/conf
オリジナルの設定ファイルを保存しておきます
# cp httpd.conf httpd.conf.org

httpdの設定をします
# vi httpd.conf
DocumentRoot “/var/www/html”
 ↓
DocumentRoot “/data/html”    <--こちらに修正

<Directory “/var/www/html”>
 ↓
<Directory “/data/html”>     <--こちらに修正

DirectoryIndex index.html
 ↓
DirectoryIndex index.php index.html  <--こちらに修正

mime.typesの設定追加をします
# vi /etc/mime.types
application/x-httpd-php                php
application/x-httpd-php-source    phps

phpの設定をします
ログを記録するディレクトリを作ります
# mkdir /var/log/php
# chown apache:apache /var/log/php
# chmod 755 /var/log/php

オリジナルの設定ファイルを保存しておきます
# cp /etc/php.ini /etc/php.ini.org

phpの設定をします
# vi /etc/php.ini
;date.timezone =
 ↓
date.timezone = 'Asia/Tokyo'

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
 ↓
error_reporting = E_ALL & ~E_NOTICE

;error_log = php_errors.log
 ↓
error_log = "/var/log/php/php_errors.log" (さきほど作ったディレクトリにログを残すようにします)

memory_limit = 128M
 ↓
memory_limit = 256M (多めにすることを推奨)

post_max_size = 8M
 ↓
post_max_size = 51M (アップロードしそうなファイルの最大値)

upload_max_filesize = 2M
 ↓
upload_max_filesize = 51M  (アップロードしそうなファイルの最大値)

;mbstring.language = Japanese
 ↓
mbstring.language = Japanese

;mbstring.internal_encoding =
 ↓
mbstring.internal_encoding = UTF-8

;mbstring.http_input =
 ↓
mbstring.http_input = pass

;mbstring.http_output =
 ↓
mbstring.http_output = pass

;mbstring.encoding_translation = Off
 ↓
mbstring.encoding_translation = Off

;mbstring.detect_order = auto (そのまま)

;mbstring.substitute_character = none
 ↓
mbstring.substitute_character = none;

;mbstring.func_overload = 0
 ↓
mbstring.func_overload = 0

;mbstring.strict_detection = On
 ↓
mbstring.strict_detection = Off

;mbstring.http_output_conv_mimetype=  (そのまま)

;max_input_vars = 1000
    ↓
max_input_vars = 5000

テストページを作って動作確認します
# cd /data/html
# vi test.php
下記の3行を記入します。
<?php
phpinfo();
?>

phpの設定変更を反映させるためにhttpdをリスタートします
# systemctl restart httpd

ブラウザでこのサーバーにアクセスしてPHPテスト画面が出ればOKです。
http://( FQDN )/test.php
テストページは後で必ず削除してください。
# rm /data/html/test.php

MariaDBの追加設定をします
# cp -p /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.org
# vi /etc/my.cnf.d/server.cnf
# this is read by the standalone daemon and embedded servers
[server]
character-set-server=utf8  <--追加
max_allowed_packet=10MB  <--追加
connect_timeout=360  <--追加
net_read_timeout=360  <--追加

# vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set = utf8  <--追加
MariaDBの設定をします
# systemctl start mariadb (MariaDBを起動します)
# systemctl enable mariadb

# mysql_secure_installation (mariadbの初期設定をします)
Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:  (適当なパスワード)
Re-enter new password:(適当なパスワード)
Remove anonymous users? [Y/n]Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n]  Y
Reload privilege tables now? [Y/n] Y
Thanks for using MariaDB!

Moodle用のベータベースをMariaDBに作ります
# systemctl restart mariadb.service
# mysql -u root -p(パスワード) (-pとパスワードの間にスペースを入れない)
> select host,user,password from mysql.user;
> create database moodle character set utf8mb4 COLLATE utf8mb4_unicode_ci; 
> show databases;
> exit

ブラウザでmoodle.orgサイトにアクセスして、Moodle3.11+をダウンロードしてインストールします
URL  https://moodle.org/

# cd /usr/local/src (ダウンロード先が/usr/local/srcの場合)
# tar xvfz moodle-latest-311.tgz
# cp -r moodle /data/html/.

Moodle用のデータ搭載用ディレクトリを作ります
# mkdir /data/moodledata
# chown apache:apache /data/moodledata (httpdから書き込めるようにします)

ブラウザで http://[FQDN]/moodle にアクセスしてインストールを開始します。
インストール途中でブラウザに表示される内容を/data/html/moodle/config.phpに書込む必要があります。




インストール途中で要求環境のチェックがあります。この手順で同じバージョンのソフトをインストールしていれば不合格になることはおそらく無いと思います。


HTTPS接続にしていないと同じ要求環境チェックのページで怒られます。とりあえず無視してそのままインストールを続けることも可能です。


 インストールが完了した後のトップページの画面です。何もないとつまらないので「テストコース」という名称のコースを1個作ってみました。











忘れずにcronの設定をしてください。


Last modified: Friday, 13 October 2023, 10:42 AM