はじめにRedHat EL9 64bitを通常インストールします。
固定IP Addressを設定しDNSで名前の正引きができるようにネットワーク環境を整えます。
RedHatのサブスクリプション登録をして、インターネット経由でOSモジュールのアップデートができるようにしておきます。

Redhat Linux EL9のSElinuxを無効化します。
無効化の方法は下記のページに載っています。
https://www.totsusangyo.com/moodle/mod/page/view.php?id=102
SElinuxがインストール作業に影響すると困るので無効化しますが、セキュリティーに影響を与えます。
もしも無効化する場合は皆様の判断で実行してください。

Moodleのコミュニティーサイトにアクセスして利用したいMoodleバージョン(Moodle 4.0.3)の必要環境を調べておきます。
https://download.moodle.org/releases/latest/
Requires: PHP 7.3, MariaDB 10.2.29 or MySQL 5.7 or Postgres 10 or MSSQL 2017 or Oracle 11.2

今回はEL9の標準であるPHP8.0とMariaDB10.5をそのままインストールしてみます。
OSモジュールのアップデートとリブートをします。
# dnf  update
# reboot

PHP のパッケージ情報を確認します
# dnf info php
利用可能なパッケージ
名前         : php
バージョン   : 8.0.13
リリース     : 2.el9_0
Arch         : x86_64
サイズ       : 13 k
ソース       : php-8.0.13-2.el9_0.src.rpm
リポジトリー : rhel-9-for-x86_64-appstream-rpms
概要         : PHP scripting language for creating dynamic web sites
URL          : http://www.php.net/
ライセンス   : PHP and Zend and BSD and MIT and ASL 1.0 and NCSA
説明         : PHP is an HTML-embedded scripting language. PHP attempts to make it
             : easy for developers to write dynamically generated web pages. PHP also
             : offers built-in database integration for several commercial and
             : non-commercial database management systems, so writing a
             : database-enabled webpage with PHP is fairly simple. The most common
             : use of PHP coding is probably as a replacement for CGI scripts.

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

Webサーバーとphp8.0をインストールします
# dnf install httpd httpd-devel httpd-tools mod_ssl php php-cli php-common php-devel php-enchant php-ffi php-fpm php-gd php-gmp php-intl php-mbstring php-mysqlnd php-odbc php-opcache php-pdo php-pear php-pecl-apcu php-pecl-apcu-devel php-pecl-rrd php-pecl-xdebug3 php-pecl-zip php-process php-soap php-xml

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

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

MariaDBをインストールします。
# dnf  install  mariadb mariadb-common mariadb-server mariadb-connector-c mariadb-connector-c-config mariadb-errmsg mysql-selinux perl-DBD-MariaDB mariadb-backup mariadb-gssapi-server mariadb-server-utils

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

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

httpdの環境設定をします
Webサイトをのせるディレクトリをたとえば下記のように作ります
# mkdir  /data
# mkdir  /data/html

# cd /etc/httpd/conf
一応、オリジナルの設定ファイルを保存しておきます
# cp httpd.conf httpd.conf.org
htpdの設定をします
# 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  (アップロードしそうなファイルの最大値)

 ;max_input_vars = 1000
  ↓
 max_input_vars = 5000

 ;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 php-fpm

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

MariaDBの追加設定をします
# vi /etc/my.cnf.d/mariadb-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

mariadbの初期設定をします
# mysql_secure_installation
 Enter current password for root (enter for none):
   Switch to unix_socket authentication [Y/n] n
 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用のベータベース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サイトにアクセスして、Moodle4.0.3をダウンロードしてインストールします
URL  https://moodle.org/
(Moodle4.0.3のインストール条件は Requires: PHP 7.3, MariaDB 10.2.29 )
# cd /usr/local/src (ダウンロード先が/usr/local/srcの場合)
# tar xvfz moodle-4.0.3.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に書込む必要があります。
インストール中にphp-xmlrpcやphp-sodiumがインストールされていないと警告が表示されます。
これらのPHPモジュールはPHP8.0になって無くなったようなので気にしないことにします。

php_extension   xmlrpc
最適な動作のためインストールおよび有効化してください。
XMLRPC拡張モジュールはウェブサービスおよびMoodleネットワーキングに有用です。
php_extension   sodium
最適な動作のためインストールおよび有効化してください。

以上



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