今回はとある資格修得学習サイトを構築するのが目的。これまでに何回かインストールしてきたので、PHPやmySQLが入ってしまえばすぐ動くと甘く見てかかったら、大変なことになってしまった。
現時点で最新版のmoodleは2.8.5+。moodle.orgのダウンロードサイトから入手できる。3月10日にリリースされた公式版2.8.5と、毎週リリースされる修正版2.8.5+とがある。修正版の方がバグフィックスも進んでいるだろうから、こっちをダウンロードする。ちなみに必要なシステムの要件としては
- PHP 5.4.4
- MariaDB 5.5.31 or MySQL 5.5.31 or Postgres 9.1 or MSSQL 2008 or Oracle 10.2
となっている。自分が使おうとしているサーバーはCentOS5.11、PHP 5.3.3、MySQL5.0.95だったので、PHPとMySQLのアップデートが必要だったわけ。
すでにPHPとMySQLをあげ、phpMyAdminやWordPressが動いているので、準備は整ったと判断。moodle2.8.5+のフルパッケージ moodle-latest-28をgitから入手した。
$ sudo git clone --depth=1 -b MOODLE_28_STABLE git://git.moodle.org/moodle.git
moodleディレクトリのオーナーをapacheに変更し、念のためアクセス権を755にしておく。
$ sudo chown apache:apache -R moodle/ $ sudo chmod -R 755 moodle/
また、moodleデータディレクトリをホームディレクトリとは別のところに作っておく。ブラウザでアクセスされないためだ。
$ sudo mkdir /hoge/moodledata $ sudo chown apache:apache /hoge/moodledata $ sudo chmod 755 /hoge/moodledata
phpMyAdminを使い、MySQLに中身のないmoodleデータベースを作成しておく。
これでファイルの設置は完了。あとはブラウザでアクセスするだけ・・・のはずだったのだが。
使用言語に日本語を選ぶ。
次のページで各ディレクトリの位置を
と指定。DBにImproved MySQLを選択。
データベースの設定を行い
著作権を確認画面する。
真っ白な画面
ところが[続ける]をクリックすると真っ白な画面になったままで、先に進めなくなってしまった。
何度かmoodleディレクトリとmoodledataディレクトリを削除し、最初からインストールをやり直してみたが、変化無し。言語を英語にしても同じ状態になる。/var/log/httpd/error_logを見ると
192.168.1.130 - - [01/May/2015:16:22:18 +0900] "GET /moodle/theme/yui_combo.php?m/-1/core/lockscroll/lockscroll-min.js HTTP/1.1" 200 488 192.168.1.130 - - [01/May/2015:16:22:20 +0900] "GET /moodle/admin/index.php?lang=en&agreelicense=1 HTTP/1.1" 500 -
と、Internal Server Errorの状態である。つまり、moodleが動いてないということ。いろいろ検索して調べたけれど、今回の状況に合致する記事は発見できず。数日やってみても進捗がなかったので、とうとう自力解決は諦めた。moodleの公式サイト内にある日本語コミュニティに助けを求めることにした。
4月30日に「CentOS 5.11へMOODLE_28_STABLEがインストールできない」という記事を投稿したところ、さっそく何人かの方からアドバイスをいただいた。ただ、残念ながらそのアドバイスに従って設定を変えるなどしても、依然として画面は真っ白のままだ。
php-xmlが入ってない
連休明けの5月7日、moodle日本語化の一人者である吉田光宏さんから
下記投稿のように、php-domxmlをインストールすることで今回の問題は解決されるのではないでしょうか。
というコメントをいただいた。調べるとphp-domxmlではなくphp-xmlのようなので、さっそくphp-xmlを入れてみる。
$ sudo yum install --enablerepo=remi,remi-php56 php-xml $ sudo /etc/init.d/httpd restart
ブラウザでアクセスしてみると、
やっとサーバーチェック画面が表示された。php-xmlが入ってないと、ここまでたどり着くことすらできない。
後は警告に従って不足しているモジュールを追加するだけ。
$ sudo yum install --enablerepo=remi,remi-php56 gd $ sudo yum install --enablerepo=remi,remi-php56 xmlrpc $ sudo yum install --enablerepo=remi,remi-php56 php56-soap $ sudo yum install --enablerepo=remi,remi-php56 soap $ sudo yum install --enablerepo=remi,remi-php56 php-gd $ sudo yum install --enablerepo=remi,remi-php56 php-xmlrpc $ sudo yum install --enablerepo=remi,remi-php56 php-soap $ sudo yum install --enablerepo=remi,remi-php56 php-intl $ sudo /etc/init.d/httpd restart
一度/var/www/html/moodleと/hogehoge/moodledataの中身を削除し、最初からインストールをやり直した。著作権表示の次にはサーバチェックが表示され、必要なモジュールはすべて入っていることが確認できる。
2分ぐらいかけてインスト-レションが行われ、すべて問題なく終了した。
moodleの管理者を登録する。
サイトの名前、概要などを入れればインストールは完了だ。
ようやくインストールが完了した
今設定したサイト名、概要などが入ったmoodleのデフォルトスタートページが表示される。
これから教材や試験問題など、実際のeラーニングシステム構築がスタートする。
今回手間取ったのは、php-xmlモジュールがインストールされていなかったため。オープンソースソフトウエアの場合、PHPやmySQLなどのバージョンは指定されていても、必須モジュールまでは詳しく書いてないことが多い。WordPressなど他のアプリケーションが動いていても、別のアプリケーションが動くとは限らない。注意が必要だ。