はじめにRedHat EL7 64bitを通常インストールし、サブスクリプション登録しておきます。
ただしhttpd,php,MariaDBは標準装備の物よりも新しいバージョンを使いたいのでインストールはしません。
独自にphp7.4とMariaDB10.5環境を構築します。

Selinuxの無効化をします (無効化するとセキュリティーが低下するので、もしもやる場合は各自の責任で行ってください)
# cd /etc/selinux
# vi config
 SELINUX=enforcing
  ↓
 SELINUX=disabled (無効化設定します)

OSモジュールのアップデートとリブートをします。
但し、サブスクリプション登録を完了していないとアップデートができません。
# yum  update
# reboot

epelリポジトリを追加します
# cd /usr/local/src
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

通常はepelリポジトリを有効にしないように設定ファイルを修正します
# vi /etc/yum.repos.d/epel.repo
 enabled=1
 ↓
 enabled=0

# yum repolist epel
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
リポジトリー ID  リポジトリー名                               状態
epel/x86_64  Extra Packages for Enterprise Linux 7 - x86_64   無効
repolist: 0

remiリポジトリを追加します
# yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

通常はremiリポジトリを有効にしない設定にします
# vi /etc/yum.repos.d/remi.repo
# vi /etc/yum.repos.d/remi-safe.repo
 enabled=1
 ↓
 enabled=0

# yum repolist remi
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
リポジトリー ID    リポジトリー名                                            状態
remi               Remi's RPM repository for Enterprise Linux 7 - x86_64     無効
repolist: 0

PHP のパッケージ情報を確認します
# yum info php74 --enablerepo=remi
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
利用可能なパッケージ
名前                : php74
アーキテクチャー    : x86_64
バージョン          : 1.0
リリース            : 3.el7.remi
容量                : 2.6 k
リポジトリー        : remi
要約                : Package that installs PHP 7.4
ライセンス          : GPLv2+
説明                : This is the main package for php74 Software Collection,
                      : that install PHP 7.4 language.

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

PHP のパッケージ情報を確認します
# yum info php74 --enablerepo=remi

php7.4をremiリポジトリからインストールします
# yum  install --enablerepo=epel,remi --skip-broken httpd httpd-devel httpd-tools mod_ssl  php74-php.x86_64 php74 php74-php-cli php74-php-common php74-php-devel php74-php-gd php74-php-intl php74-php-json php74-php-mbstring php74-php-opcache php74-php-pdo php74-php-pear php74-php-pecl-apcu php74-php-pecl-zip php74-php-process php74-php-soap php74-php-xml php74-php-xmlrpc  php74-php-mysqlnd php74-php-devel php74-php-fpm

php74-php-fpmをインストールし忘れるとWebサイトが全く動かないので注意します

毎回のように php74 コマンドを使用するのは不便なので、alternatives の機能を利用して「php」で呼び出せるように設定します。
# which php74
 /usr/bin/php74

# update-alternatives  --display php
php -ステータスは自動です。
リンクは現在 /usr/bin/php73 を指しています。
/usr/bin/php73 - 優先度 1
/usr/bin/php74 - 優先度 1
現在の「最適」バージョンは /usr/bin/php73 です。

# update-alternatives --remove php /usr/bin/php73
# update-alternatives --install  /usr/bin/php php   /usr/bin/php74 1

# update-alternatives --display php
php -ステータスは自動です。
リンクは現在 /usr/bin/php74 を指しています。
/usr/bin/php74 - 優先度 1
現在の「最適」バージョンは /usr/bin/php74 です。

php 単体で実行できるようになりました。
# php  --version
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

今回のphp.iniの場所はいつもの/etcではありません
# php  -r  "echo phpinfo();"  |  grep  "php.ini"
Configuration File (php.ini) Path => /etc/opt/remi/php74
Loaded Configuration File => /etc/opt/remi/php74/php.ini

旧バージョンのmaridbをチェックしてもし有ればアンインストールします
# rpm -qa | grep MariaDB
MariaDB-compat-10.2.41-1.el7.centos.x86_64
MariaDB-server-10.2.41-1.el7.centos.x86_64
MariaDB-client-10.2.41-1.el7.centos.x86_64
MariaDB-common-10.2.41-1.el7.centos.x86_64

# yum  erase  MariaDB*

MariaDB 10.5をインストールします
以前のリポジトリデータが有る場合は削除します。
# ls  /var/cache/yum
# \rm  -r  /var/cache/yum/x86_64/7Server/mariadb
(環境によっては  /var/cache/yum/x86_64/7/mariadb になっているかもしれません)
# yum  clean  all
# rm  /etc/yum.repos.d/mariadb.repo (もし有る場合は削除します)

下記URLのMariaDBサイトを参照します
https://mariadb.org/download/?t=repo-config
MariaDB Site










出てきたページでMariaDB Repositoriesタブを選択します。
OS Distributionを選択します。Red Hat EL 7 (x86_64)
MariaDB Server versionを選択します。 10.5
Mirrorは自動的に山形大学になっていると思います。

MariaDB リポジトリデータが表示されるので、コピーして/etc/yum.repos.d ディレクトリ下にMariaDB.repoとして保存します。
MariaDB Repo Data
# vi /etc/yum.repos.d/mariadb.repo
下記のデータを書き込みます。
# MariaDB 10.5 RedHat repository list - created 2022-12-20 04:17 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/10.5/rhel7-amd64
gpgkey=https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

# yum update

# yum install MariaDB-client MariaDB-server MariaDB-common MariaDB-compat boost-program-options galera

mariadbデータベースを起動します。
# systemctl restart mariadb

mariadbが自動起動するように設定します。
# systemctl enable mariadb

httpdのドキュメントルートディレクトリがあるか確認します。
もしも無い場合は下記のように作ります。
# mkdir /data
# mkdir /data/html

httpdの環境設定をチェックします。
# cd /etc/httpd/conf
# vi httpd.conf
下記の設定になっていればOKです。 もしもなっていなければ、追加設定します。
DocumentRoot "/data/html"
<Directory "/data/html">
DirectoryIndex index.php index.html

ドキュメントルートは例として/data/htmlにしましたが、各自の設定にあわせて読み替えてください。

httpdを起動します
# systemctl restart httpd.service
# systemctl restart php74-php-fpm

httpdが自動起動するように設定します
# systemctl enable httpd.service
# systemctl enable php74-php-fpm

phpの設定をするので、一応、オリジナルの設定ファイルを保存しておきます
# cp  /etc/opt/remi/php74/php.ini  /etc/opt/remi/php74/php.ini.org

phpの設定をします
# vi /etc/opt/remi/php74/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 = 50M (アップロードしそうなファイルの最大値)

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

;max_input_vars = 1000
  ↓
max_input_vars = 5000 (有効化しないとMoodleインストール時にワーニングが出ます)


;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=  (そのまま)

テストページを作って動作確認します
# cd /data/html

# vi test.php
下記の3行を記入します。
<?php
phpinfo();
?>
PHP TEST

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

ブラウザでこのサーバーにアクセスしてPHPテスト画面が出ればOKです。
http://( FQDN )/test.php

テストページは後で必ず削除してください。
# rm /data/html/test.php

MariaDBの追加設定をします
# 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 restart mariadb

MariaDBが自動起動するように設定します
# systemctl enable mariadb

mariadbの初期設定をします
# mysql_secure_installation
 Enter current password for root (enter for none): (最初はパスワードが無いから何も無しでenter)
 Switch to unix_socket authentication [Y/n] n
 Change the root password? [Y/n] Y
 New password: (何か適当なパスワードを入力)
 Re-enter new password: (パスワードを再入力)
 Password updated successfully!
 Reloading privilege tables..
 ... Success!
 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とMahara用のベータベースを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; (moodle用データベースを作ります)
> show databases; (できたか確認します)
> exit

-----

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

URL  https://moodle.org/
(Moodle3.11のインストール条件は Requires: PHP 7.3, MariaDB 10.2.29 )
# cd /usr/local/src (ダウンロード先が/usr/local/srcの場合)
# tar xvfz moodle-3.11.11.tgz
# cp -r moodle /data/html/.

Moodle用のデータ搭載用ディレクトリを作ります
# mkdir /data/moodledata

httpdから書き込めるようにします
# chown apache:apache /data/moodledata

開いているポートをチェックしてFiewallの設定をします
デフォルトではポート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 (開いているポートを再チェック)

ブラウザで http://[FQDN]/moodle にアクセスしてインストールを開始します。
Moodle Install









インストール途中でブラウザに表示される内容を/data/html/moodle/config.phpに書込む必要があります。

インストール中に管理ユーザー名、パスワード、メイルアドレス、都道府県、長いサイト名、サイト省略名などを設定する必要があります。

インストール後に、忘れずにcronの設定をします。
# crontab -e
*/5 * * * * php -q  /path to Moodle/admin/cli/cron.php  1> /dev/null  2> /dev/null

インストール後に、必要ならばMoodleプラグインを追加します。

インストール後に、必要ならばLibreOfficeとunoconvをインストールします。

-----

スタンダードビルド(例:mahara-21.10.5.tar.gz)をMaharaサイトから直接ダウンロードします。
(mahara-21.10.5のインストール条件は Requires: PHP 7.3, MariaDB 10.2.29 )

展開します。
# tar xvfz mahara-21.10.5.tar.gz
# cd mahara-21.10.5
# ls
COPYING  ChangeLog  README.md  append_composer.php  htdocs  package-lock.json

htdocs以下がMaharaの本体です。
# cp  -r  htdocs  /data/html/mahara

ユーザーデータを載せるディレクトリを作ります。
# mkdir /data/maharadata
# chown apache:apache /data/maharadata

Mahara用のベータベースmaharaをMariaDBに作ります
# mysql -u root -p(パスワード) (-pとパスワードの間にスペースを入れない)
> show databases;
> create database mahara character set utf8mb4 COLLATE utf8mb4_unicode_ci; 
> show databases;
> exit

設定ファイルを編集します。
# cd  /data/html/mahara
# cp  config-dist.php   config.php

# vi  config.php
// database connection details
// valid values for dbtype are 'postgres8' and 'mysql5'
$cfg->dbtype   = 'postgres';  ==> mysql
$cfg->dbhost   = 'localhost';
$cfg->dbport   = null;
$cfg->dbname   = '';  --> mahara
$cfg->dbuser   = '';  --> root
$cfg->dbpass   = '';  --> データベースのパスワード
// $cfg->wwwroot = 'https://myhost.com/mahara/'; --> $cfg->wwwroot = 'https://myhost.com/mahara/';
// $cfg->urlsecret = 'mysupersecret';  --> $cfg->urlsecret = null;
$cfg->dbprefix = '';  --> mh_
$cfg->dataroot = '/path/to/uploaddir'; --> /data/maharadata
// $cfg->passwordsaltmain = 'some long random string here with lots of characters'; --> $cfg->passwordsaltmain = '適当な文字数字列';

言語パックをMaharaサイト(https://langpacks.mahara.org/)からダウンロードします。
ダウンロードした言語パックを展開します。
# tar xvfz ja-21.10.tar.gz

展開した言語パックのファイルをMahara本体へ上書きします。
# cp -R ja.utf8/* /data/html/mahara/

ブラウザでサイトへ管理者としてログインして初期設定を行います。
Mahara Page












インストール中に管理ユーザーパスワード、メイルアドレスなどを設定する必要があります。

以上


最終更新日時: 2023年 10月 13日(金曜日) 10:52