1つのサーバー上で複数のmoodleを運用

1つのサーバー上で複数のmoodleを運用

nomura masashi གིས-
Number of replies: 9
野村と申します。

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
となっております。

どなたか解決方法をご存知ありませんでしょうか?
よろしくお願い致します。

དཔྱ་སྙོམས་ཀྱི་སྐུགས་ཚུ།: -
In reply to nomura masashi

Re: 1つのサーバー上で複数のmoodleを運用

Mitsuhiro Yoshida གིས-
Developers གི་པར Particularly helpful Moodlers གི་པར Translators གི་པར
Moodleのフォーラム投稿不具合に関して、サーバのエラーログ (/var/log/httpd/error_log) にエラーが記録されていませんでしょうか?
In reply to Mitsuhiro Yoshida

Re: 1つのサーバー上で複数のmoodleを運用

nomura masashi གིས-

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は全て名前を変更しました。)

大変申し訳ありませんが、御教授願えませんでしょうか。

よろしくお願いいたします。

In reply to nomura masashi

Re: 1つのサーバー上で複数のmoodleを運用

Tatsuya Shirai གིས-

基本的なことですが,moodle1.6とmoodle1.9のconfig.phpの中の

$CFG->dbname    = 'moodle';

をそれぞれのデータベースの名前にしていますよね.これが同一ですと,moodle1.6もmoodle1.9も同じデータベースを操作してしまいます.

それとも,データベースは同一で,各config.phpの

 $CFG->prefix    = 'mdl_';

を変えたのでしょうか?

In reply to nomura masashi

Re: 1つのサーバー上で複数のmoodleを運用

Mitsuhiro Yoshida གིས-
Developers གི་པར Particularly helpful Moodlers གི་པར Translators གི་པར
大変お手数ですが、2つの異なるバージョンのMoodle設定ファイル (config.php ) の内容を可能な範囲でお教えください。

例)
[Moodle 1.6.7+のconfig.php]
$CFG->dbname = 'moodle16';
$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->dbname = 'moodle19';
$CFG->prefix = 'mdl_';
$CFG->wwwroot = 'http://ドメイン名/moodle';
$CFG->dirroot = '/var/www/html/moodle';
$CFG->dataroot = '/var/www/moodledata';
$CFG->sessioncookie = 'moodle19';

念のため、「新しいトピックの書き込みができない」Moodleのconfig.phpの先頭行または最終行に不要な空白行が入っているかどうか、ご確認ください。
In reply to Mitsuhiro Yoshida

Re: 1つのサーバー上で複数のmoodleを運用

nomura masashi གིས-

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';

In reply to nomura masashi

Re: 1つのサーバー上で複数のmoodleを運用

Mitsuhiro Yoshida གིས-
Developers གི་པར Particularly helpful Moodlers གི་པར Translators གི་པར
> 原因はpost.phpにあるようでした。オリジナルのmoodle1.6をhttp://download.moodle.org/から取得しまして、moodle2/mod/forum/post.phpを上書きしました。

Moodle 1.6.7+では、新たに脆弱性の対応がなされています。現在お使いのMoodleバージョンがMoodle 1.6.7+以前のバージョンの場合、moodle2/mod/forum/post.php以外のプログラムもすべて最新のMoodle 1.6.7+に上書きされた方が宜しいかと思います。

現在お使いのMoodleのバージョンは、以下の方法で確認することができます。
1. Moodleトップページ下部のMoodleバナー moodle にマウスポインタを合わせる。
2. moodle2/version.phpの$releaseを確認する。
Moodle 1.6.7+の場合、moodle2/version.phpの$releaseの部分は、

$release = '1.6.7+'; // Human-friendly version name

のようになっています。

In reply to Mitsuhiro Yoshida

Re: 1つのサーバー上で複数のmoodleを運用

nomura masashi གིས-

Yoshida様

ありがとうございます。

moodle2のversion.phpを見たところ

 $version = 2006050506;  

 $release = '1.6';    // Human-friendly version name

と記載されていました。

Yoshida様がおっしゃるように、全てのプログラムを新しいバージョンのものに書き換えたほうがいいようです。

何度もアドバイスをいただき、大変感謝しております。ありがとうございました。

In reply to nomura masashi

Re: 1つのサーバー上で複数のmoodleを運用

Tatsuya Shirai གིས-
 自信はありませんが,OS(Linux?)のバージョンアップを行なった際に,MySQLのバージョンが上がったりしているのかも知れませんね.2006年5月以降の修正に,新しいバージョンのMySQLで顕在化するバグの修正があったのかも.だとしますと,フォーラムポスト以外の箇所でも不具合の発生する可能性はありますので,やはり吉田さんの仰るように,Moodle1.6.7+にアップデートした方が良さそうですね.
In reply to Tatsuya Shirai

Re: 1つのサーバー上で複数のmoodleを運用

nomura masashi གིས-

Shirai様 

ありがとうございます。Shirai様がおっしゃるようにOSのバージョンアップ(FedoraCore5からFedoraCore8)の際に、MySQLのバージョンも上がったと思います。

Moodle1.6.7+へのバージョンアップを検討したいと思います。

ありがとうございました。