CentOS7にMoodle3.2をインストール

初めにCentOS7を標準インストールします。

SElinuxを無効化設定します。
# cd  /etc/selinux
# vi config (設定ファイルの編集)
SELINUX=enforcing
 ↓
SELINUX=disabled (無効化設定します)

# reboot (マシンをリブートします)

OSモジュールをアップデートします。
# yum -y update
# reboot

ネットワークツールを追加インストールします。
# yum -y groupinstall network-tools

データベースがインストールされているか一応チェックしてみます
# rpm -qa | grep mariadb
mariadb-server-5.5.37-1.el7_0.x86_64 (MySQL後継ソフトがインストールされています。無ければ追加インストールします)
mariadb-5.5.37-1.el7_0.x86_64
mariadb-libs-5.5.37-1.el7_0.x86_64

Apacheがインストールされているかチェックします。無ければ追加インストールします。
# rpm -qa | grep httpd
# yum -y install httpd httpd-devel  mod_ssl (Apacheをインストール)

EPELのリポジトリのインストールを行います。
# yum -y install epel-release
# 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

# vi /etc/yum.repos.d/epel.repo
enabled=0 にする

# vi /etc/yum.repos.d/remi.repo
enabled=0にする

# vi /etc/yum.repos.d/remi-safe.repo
enabled=0にする

Moodle3.2用にphp5.6 をインストールします。
# yum -y install --enablerepo=remi,remi-php56 php php-devel  php-mysql php-mbstring php-gd  php-xmlrpc php-xml php-intl php-soap php-pecl-apcu.x86_64 php-pecl-zendopcache.x86_64

# systemctl restart httpd.service
# systemctl enable httpd.service

Fiewallの設定をします
デフォルトではポート22/TCP(ssh)しか開いていないのでhttp,https,smtpなど必要なポートを追加します

httpd(Apache)の設定をします
Webサイトデータを載せるディレクトリを /data/html にしました。
# mkdir /data (データを載せるディレクトリを作ります)
# mkdir /data/html (ドキュメントルートに設定するディレクトリを作ります)

# cd /etc/httpd/conf (httpdの設定ファイルがあるディレクトリに移動します)
# ls
# cp httpd.conf httpd.conf.org (一応、オリジナルの設定ファイルを名前を付けてコピー保存しておきます)
# 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  <?-こちらに修正

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

phpの設定をします

phpのログを記録するディレクトリを作ります
# mkdir /var/log/php
# chown apache:apache /var/log/php (apacheから書き込めるようにします)
# 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 = EUC-JP
 ↓
mbstring.internal_encoding = UTF-8

;mbstring.http_input = auto
 ↓
mbstring.http_input = pass

;mbstring.http_output = SJIS
 ↓
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 = Off
 ↓
mbstring.strict_detection = Off

# cd /data/html (httpdのドキュメントルートに移動します)
# vi test.php (phpが本当に動くかチェック用のファイルを作ります)
下記の3行を記入します。
<?php
phpinfo();
?>

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

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

MaiaDBの設定をします
CentOS7からMySQLの代わりにMariadbが標準になりました。実際の使い勝手はMySQLと同じようです。
# systemctl start mariadb (データベースサーバーをスタートします)
# systemctl enable mariadb (パワーONでOSが立ち上がると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!

データベースフォーマットを指定します
# vi /etc/my.cnf
innodb_file_per_table = 1
innodb_file_format = Barracuda

# mysql -u root -p(先ほど設定したパスワード) (rootで入ります)
>  select host,user,password from mysql.user;
> create database moodle character set utf8 COLLATE utf8_unicode_ci; 
> show databases;
> exit

ログの保存期間をデフォルトの4週間から約1年に延長します
# vi /etc/logrotate.conf
# keep 4 weeks worth of backlogs
rotate 4
 ↓
rotate 54

CentOS7にMoodleをインストールするとunoconvが古いと怒られます
# cat  /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

# rpm -qa | grep unoconv
unoconv-0.6-7.el7.noarch (これが古いので怒られます)

# yum remove libreoffice* (新型インストールのためにとりあえず全部削除します)

# cd /usr/local/src (ここにインストール用ファイルをダウンロードします)
# wget  http://download.documentfoundation.org/libreoffice/stable/5.3.2/rpm/x86_64/LibreOffice_5.3.2_Linux_x86-64_rpm.tar.gz
# wget  http://download.documentfoundation.org/libreoffice/stable/5.3.2/rpm/x86_64/LibreOffice_5.3.2_Linux_x86-64_rpm_helppack_ja.tar.gz
# wget  http://download.documentfoundation.org/libreoffice/stable/5.3.2/rpm/x86_64/LibreOffice_5.3.2_Linux_x86-64_rpm_langpack_ja.tar.gz

# tar xvfz LibreOffice_5.3.2_Linux_x86-64_rpm.tar.gz
# tar xvfz LibreOffice_5.3.2_Linux_x86-64_rpm_helppack_ja.tar.gz
# tar xvfz LibreOffice_5.3.2_Linux_x86-64_rpm_langpack_ja.tar.gz

# cd /usr/local/src/LibreOffice_5.3.2.2_Linux_x86-64_rpm/RPMS
# yum  -y  install  *.rpm

# cd  /usr/local/src/LibreOffice_5.3.2.2_Linux_x86-64_rpm_langpack_ja/RPMS
# yum  -y  install   *.rpm

# cd  /usr/local/src/LibreOffice_5.3.2.2_Linux_x86-64_rpm_helppack_ja/RPMS
# yum  -y   install   *.rpm

# cd  /usr/local/src
# git  clone  https://github.com/dagwieers/unoconv.git
# cp  unoconv/unoconv  /usr/bin

# systemctl  restart  httpd

Moodleに管理者でログインし、[サイト管理]-[サーバ]-[動作環境]ページでチェックするとワーニングが消えています。

CentOS7(MariaDB)環境でMoodle2.*から3.*にアップデートしようとするとデータベースのフォーマット変換をしろとワーニングが出る事が有ります。
「あなたのデータベースはファイルフォーマットとしてAntelopeを使用しています。
Barracudaファイルフォーマットへのテーブルコンバートをお勧めします。
InnoDBテーブルのBarracudaへのコンバートツールに関して、詳細はコマンドラインによる管理をご覧ください。」

Moodleサイトで調べるとコンバートツールはMoodleに含まれていました。
A command line tool is included in Moodle for converting tables to Barracuda.

Moodleをインストールしたサイトに移動します。
# cd /data/html/moodle/admin/cli
# ls
alternative_component_cache.
php       install_database.php
automated_backups.php                 maintenance.php
backup.php                            mysql_collation.php
check_database_schema.php             mysql_compressed_rows.php
cron.php                              mysql_engine.php
fix_course_sequence.php               purge_caches.php
fix_deleted_users.php                 reset_password.php
fix_orphaned_question_categories.php  upgrade.php
install.php

ツールで現状をチェックします。
# php mysql_compressed_rows.php --list
201205mdl_data                  Compact     (needs fixing)
201205mdl_data_fields           Compact     (needs fixing)
201205mdl_enrol_paypal          Compact     (needs fixing)
201205mdl_lti                   Compact     (needs fixing)
201205mdl_user                  Compact     (needs fixing)
201205mdl_user_info_field       Compact     (needs fixing)

コンバートします。
# php mysql_compressed_rows.php --fix
201205mdl_data                   ... Compressed
201205mdl_data_fields            ... Compressed
201205mdl_enrol_paypal           ... Compressed
201205mdl_lti                    ... Compressed
201205mdl_user                   ... Compressed
201205mdl_user_info_field        ... Compressed

データベースの設定ファイルにもフォーマットを反映しておきます。
# vi /etc/my.cnf
innodb_file_per_table = 1
innodb_file_format = Barracuda

将来、PHP5.6をアップデートしたくなったときはyumで可能です。
# yum -y update --enablerepo=remi,remi-php56 php php-devel  php-mysql php-mbstring php-gd  php-xmlrpc php-xml php-intl php-soap php-pecl-apcu.x86_64 php-pecl-zendopcache.x86_64

最終更新日時: 2017年 07月 27日(木曜日) 11:20