(63) RedHat EL7にMoodle3.11とMahara21.10をインストール
はじめに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 Repositoriesタブを選択します。
OS Distributionを選択します。Red Hat EL 7 (x86_64)
MariaDB Server versionを選択します。 10.5
Mirrorは自動的に山形大学になっていると思います。
MariaDB リポジトリデータが表示されるので、コピーして/etc/yum.repos.d ディレクトリ下にMariaDB.repoとして保存します。
# 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の設定変更を反映させるために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 にアクセスしてインストールを開始します。
インストール途中でブラウザに表示される内容を/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/
ブラウザでサイトへ管理者としてログインして初期設定を行います。
インストール中に管理ユーザーパスワード、メイルアドレスなどを設定する必要があります。
以上