# yum install httpd
# yum install mysql <- mariadb(注)がインストールされる
# yum install mariadb-server
# yum install gd
# yum install php
# yum install php-mysql
# yum install php-gd
# yum install php-mbstring
# yum install php-ldap
# yum install php-xmlrpc
# yum install php-xml
# yum install php-intl
# yum install php-soap
# yum install tetex*
注:MariaDBとはMySQLの開発者が開発しているMySQLのブランチ。MySQLと同じコマンドが使え,同等以上の性能。"MariaDB is a MySQL fork that is developed and maintained by original MySQL developers organised under MariaDB Foundation."
httpd.conf のDirectoryIndex に index.php を追加し,その下の行にAcceptPathInfo on を追加.
# vi /etc/httpd/conf/httpd.conf
<IfModule dir_module>
# DirectoryIndex index.html
DirectoryIndex index.php index.html
</IfModule>
#
AcceptPathInfo on
#
また,フォルダ内ファイルがブラウザで表示されないように(セキュリティ向上のため),httpd.conf内のIndexesを削除する。
サービスとして起動
# systemctl start httpd
# systemctl enable httpd
ファイアウォール
httpポートが開いてなければ(初期状態ではSSHとdhcpv6-clientのみ開いていている),以下のコマンドでhttpポートを開く(1行目:今開る,2行目:再起動後も開ける,3行目:確認)。
# firewall-cmd --add-service=http --zone=public
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --list-services
MySQLサーバーをサービスとして動かし,
# systemctl start mariadb
# systemctl enable mariadb
rootユーザのパスワード設定
# mysql -u root
MariaDB [(none)]> set password for root@localhost=password('rootパスワード');
MariaDB [(none)]> exit;
データベース作成(データベース名 moodle,ユーザ名 moodleuser,パスワード ???)
# mysql -u root -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodleuser@localhost IDENTIFIED BY '???';
注)Apache と MySQL が同居しない場合はlocalhostをWebサーバのホスト名にする.
参考:rootのパスワードを削除する方法(パスワードを忘れてしまった場合の対処法)
# /etc/init.d/mysqld stop
# /usr/bin/mysqld_safe --user=root --skip-grant-tables & mysql mysql
mysql> update mysql.user set Password=null where Host='localhost' and User='root';
mysql> quit;
# /etc/init.d/mysqld restart
確認
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| moodle |
| mysql |
+--------------------+
MariaDB [(none)]> exit;
php.iniを編集.ファイルのアップロードの最大サイズ,メモリ制限は多めに設定.
# vi /etc/php.ini
magic_quotes_gpc = On (必須ではありませんが、お勧めします->php5.4では見当たらず)
magic_quotes_runtime = Off (デフォルトのまま->php5.4では見当たらず)
file_uploads = On (デフォルトのまま)
session.auto_start = 0 (デフォルトのまま)
session.bug_compat_warn = Off (デフォルトのまま)
upload_max_filesize = 2000M
post_max_size = 2000M
memory_limit = 2000M
date.timezone="Asia/Tokyo" (デフォルトではコメントアウトされている)
http://kilin.clas.kitasato-u.ac.jp/howto/https.html の手順でSSLを設定,httpdを再起動して,httpポートは閉じhttpsポートをあける。
# systemctl restart httpd
# firewall-cmd --remove-service=http --zone=public
# firewall-cmd --remove-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public
# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --list-services
SSLを使わない場合は,以下の手順のhttpsをhttpとすること。
もし,Moodleをインストールした後でSSL化したい場合は,SSL化した後で以下の二箇所のhttpをhttpsに変えればよい。
Moodle を http://download.moodle.org/ からダウンロード
# wget ムードルファイルのURL(http://.../moodle-latest-28.zip)
/var/www/htmlに展開(以下では /var/www/html/moodle).展開コマンドは
# cd
# unzip moodle-latest-28.zip
# mv moodle /var/www/html/
データ用ディレクトリを /var/www/moodledata に設定.apache が読み書きできるようにする.アップロードされたファイルはここに入る.
# cd /var/www/
# mkdir moodledata
# chown -R apache.apache moodledata
https://サーバ名/moodle/ にアクセス。質問に答えていく。
質問中でURLが https://.../moodle のようになるが最後に / を補わない。
質問は「続ける」でたくさんのページがあるが必ず最後まで答える。
途中で設定ファイル config.php が作られるが,moodleディレクトリに apache が書き込めないので,表示された config.php をコピーしてエディタにペーストし,moodle ディレクトリ/var/www/html/moodle/に保存.所有者,パーミッションを以下のように変更する。
# chown root.apache config.php
# chmod o-r config.php
https://サーバ名/moodle/admin/cron.php をブラウザで見てうまく働くことを確認し,次のように設定(使い方はviと同じ).
# crontab -e
*/5 * * * * wget -q -O /dev/null https://サーバ名/moodle/admin/cron.php
Moodle 2.9からは,デフォルト設定が変更され,cron.phpを上のように動作させられなくなった。次のコマンド
# cd /var/www/html/moodle/admin/cli; php cron.php
がうまく働くことを確認して,crontabに次のように設定する。
# crontab -e
*/5 * * * * cd /var/www/html/moodle/admin/cli; php cron.php > /dev/null
なお,セキュリティが甘くなるが,デフォルト設定をMoodle 2.8以前に戻したい場合は,サイト管理 > セキュリティ > サイトポリシーの「コマンドラインでのみcronを実行する cronclionly」をNoにする。
以上でインストール完了。ここで念のためシステムを再起動してサイトが閲覧できることを確認する。