CentOS7にMoodle3.2をインストール
Moodle3.2の必要条件は下記のようになっています。
Requires: PHP 5.6.5, MariaDB 5.5.31 or MySQL 5.5.31 or Postgres 9.1 or MSSQL 2008 or Oracle 10.2.
したがってPHPについてはCentOS7標準のOSモジュールでは無く、別のリポジトリからダウンロードしてインストールします。
初めに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