1つのサーバーで複数のmoodle(バージョン1.6と1.9)を動かそうとしていますが、
moodle1.6で新しいトピックの書き込みができないというエラーが起こってしまいます。
先日までmoodle1.6のみをサーバー上で動かしていましたが、
OSアップグレードを行う必要があったため、moodle1.6のバックアップをとり、
OSのアップグレード後に復帰を行いました。
(phpMyAdminからエクスポートしたものをインポートしました。)
その後moodle1.6をそのまま残し、新しくmoodle1.9を2つインストールしました。
新しいmoodle1.9は問題ないのですが、先日まで利用していたmoodle1.6で
新しいトピックの書き込みを行おうとするとページが表示できない
というエラーが生じてしまいます。
「投稿する」をクリックすると何も表示されないあるいはページが表示できませんとなってしまいます。
過去のフォーラムを表示することや新規ユーザーの追加はできました。
mysqlはそれぞれのmoodleごとに名前を変えて作成しました。
また、それぞれのconfigファイルに、
$CFG->sessioncookie = 'moodle(それぞれのmoodle名)';
というように記述しました。
設定はこちらを参考にさせていただきました。
http://moodle.org/mod/forum/discuss.php?d=34767
構成は
OS:FedoraCore8
MySQL:5.0.45
PHP:5.2.6
となっております。
どなたか解決方法をご存知ありませんでしょうか?
よろしくお願い致します。
Yoshida様ご返信ありがとうございます。
/var/log/httpdにあるerror_logを見たところ
File does not exist: /var/www/html/robots.txt
File does not exist: /var/www/html/favicon.ico
File does not exist: /var/www/html/favicon.ico, referer: http://ドメイン名/moodle2/admin/cron.php
$CFG->sessioncookie in config.php (moodle) overrides database setting (moodle2), referer: http://ドメイン名/moodle/course/view.php?id=35
といったエラーが多くありました。
moodleは新しくインストールしたmoodle1.9で、moodle2というのが以前まで動いていたmoodle1.6です。私ではこれらのエラーログの意味を理解できておりません。
気になっていることは、以前動作していたmoodle1.6は以前までmoodleという名前で、新しくインストールした際には、moodle2というように名前変えました。(データベースやデータディレクトリも同様に以前までの名前をmoodle1.9に設定し、moodle1.6は全て名前を変更しました。)
大変申し訳ありませんが、御教授願えませんでしょうか。
よろしくお願いいたします。
基本的なことですが,moodle1.6とmoodle1.9のconfig.phpの中の
$CFG->dbname = 'moodle';
をそれぞれのデータベースの名前にしていますよね.これが同一ですと,moodle1.6もmoodle1.9も同じデータベースを操作してしまいます.
それとも,データベースは同一で,各config.phpの
$CFG->prefix = 'mdl_';
を変えたのでしょうか?
例)
[Moodle 1.6.7+のconfig.php]
$CFG->prefix = 'mdl_';
$CFG->wwwroot = 'http://ドメイン名/moodle2';
$CFG->dirroot = '/var/www/html/moodle2';
$CFG->dataroot = '/var/www/moodledata2';
$CFG->sessioncookie = 'moodle16';
[Moodle 1.9.2+のconfig.php]
$CFG->prefix = 'mdl_';
$CFG->wwwroot = 'http://ドメイン名/moodle';
$CFG->dirroot = '/var/www/html/moodle';
$CFG->dataroot = '/var/www/moodledata';
$CFG->sessioncookie = 'moodle19';
念のため、「新しいトピックの書き込みができない」Moodleのconfig.phpの先頭行または最終行に不要な空白行が入っているかどうか、ご確認ください。
Shirai様、Yoshida様
ご返信ありがとうございます。
大変申し訳ありませんが、色々といじっておりましたら、全く予想していなかった方法で解決することができました。
原因はpost.phpにあるようでした。オリジナルのmoodle1.6をhttp://download.moodle.org/から取得しまして、moodle2/mod/forum/post.phpを上書きしました。
そうしますと無事に投稿などができるようになりました。これを書き換えた理由は、画面が表示されない際(投稿ボタンを押した後)のURLがmoodle2/mod/forum/post.phpとなっていたためです。
私ではpost.phpのどこがおかしかったのかわかりません。試したらできてしまったというのが現状です。アドバイスをいただいたにも関わらず、私から何も情報を提示できずに申し訳ありません。
また何か不具合が起きた場合、アドバイスをいただけましたら大変助かります。ありがとうございました。
config.phpの内容を提示させていただきます。
[Moodle 1.6のconfig.php]
$CFG->dbname = 'moodledb2';
$CFG->prefix = 'mdl_';
$CFG->wwwroot = 'http://ドメイン名/moodle2';
$CFG->dirroot = '/var/www/html/moodle2';
$CFG->dataroot = '/var/www/moodledata2';
$CFG->sessioncookie = 'moodle2';
[Moodle 1.9のconfig.php]
$CFG->dbname = 'moodledb';
$CFG->prefix = 'mdl_';
$CFG->wwwroot = 'http://ドメイン名/moodle';
$CFG->dirroot = '/var/www/html/moodle';
$CFG->dataroot = '/var/www/moodledata';
$CFG->sessioncookie = 'moodle';
Moodle 1.6.7+では、新たに脆弱性の対応がなされています。現在お使いのMoodleバージョンがMoodle 1.6.7+以前のバージョンの場合、moodle2/mod/forum/post.php以外のプログラムもすべて最新のMoodle 1.6.7+に上書きされた方が宜しいかと思います。
現在お使いのMoodleのバージョンは、以下の方法で確認することができます。
1. Moodleトップページ下部のMoodleバナー

2. moodle2/version.phpの$releaseを確認する。
Yoshida様
ありがとうございます。
moodle2のversion.phpを見たところ
$version = 2006050506;
$release = '1.6'; // Human-friendly version name
と記載されていました。
Yoshida様がおっしゃるように、全てのプログラムを新しいバージョンのものに書き換えたほうがいいようです。
何度もアドバイスをいただき、大変感謝しております。ありがとうございました。
Shirai様
ありがとうございます。Shirai様がおっしゃるようにOSのバージョンアップ(FedoraCore5からFedoraCore8)の際に、MySQLのバージョンも上がったと思います。
Moodle1.6.7+へのバージョンアップを検討したいと思います。
ありがとうございました。