アップロードした画像について

アップロードした画像について

- Umeda Junichi の投稿
返信数: 6

再度設定を行っていたところ不可解な現象に遭遇しましたので投稿させて頂きます。

環境
mooldeを2個同時に同じApacheサーバ上に構築
サイト1(oldtrain)-今まで検証していた物をフォルダ名リネームして構築
サイト2(training)-新しくセットアップしたMoodle

Windows 2003+EasyPHP 3.0(Apache 2.2.11、PHP 5.2.8、MySQL 5.1.3)
fs_moodle 3.08.00/fs_moodle 3.10.00

現象
サイト1ではHTMLエディタ上でアップロードした画像がプレビュー&設置したページで表示可能
(サーバーローカル/リモート問わずに正常に表示)
サイト2ではサーバ上のブラウザでは画像が表示できるがリモートでは画像表示出来ない。
(サイト1が正常に表示できるブラウザをそのまま使用してもNG)
moodleで"サーバー"→"HTTP"→"スラッシュを使用する"を変更しても現象変わらず。
画像は表示されていないが、"イメージを挿入する"の画面ではサイズ(幅、高さ)の値を検出
しているのでファイルに行き着いていない訳ではなさそう?

なお、どちらも現時点では moodleサイト内に.htaccessは設置していません。

サイト管理→フロントページ→サイトファイルでもやはり開けず
右クリックでダウンロードしたところ、ファイルはダウンロードできましたが、下記のエラー

C:\Title.jpg
このファイルは読み取れません。
このビットマップファイルは無効であるか、または現在サポートされていない形式です。

念の為、サーバ側のパラメータを記載いたします。
httpd.confのパラメータ
Alias "/oldtrain" "D://moodleold/"
<Directory "D://moodleold">
Options FollowSymLinks Includes ExecCGI MultiViews
AcceptPathInfo On
AllowOverride All
Order deny,allow
Allow from 127.0.0.1 192.168.0.0/16
deny from all
</Directory>

Alias "/training" "D://moodle/"
<Directory "D://moodle">
Options FollowSymLinks Includes ExecCGI MultiViews
AcceptPathInfo On
AllowOverride All
Order deny,allow
Allow from 127.0.0.1 192.168.0.0/16
deny from all
</Directory>

oldtrainのconfig.php
$CFG->wwwroot   = 'http://192.168.60.21/oldtrain';
$CFG->dirroot   = 'D:\moodleold';
$CFG->dataroot  = 'D:\moodleolddata';
$CFG->admin     = 'admin';

trainingのconfig.php
$CFG->wwwroot   = 'http://192.168.60.21/training';
$CFG->dirroot   = 'D:\moodle';
$CFG->dataroot  = 'D:\moodledata';
$CFG->admin     = 'admin';

なんらかの単純な設定ミスの様な気もしますが、思い当たる設定項目が無い為なんらかの確認方法がありましたらご教示頂けませんでしょうか。

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

Umeda Junichi への返信

Re: アップロードした画像について

- Tatsuya Shirai の投稿

 MySQLのデータベースも新旧用に別々に作成してありますか?

 もし一つのデータベースを用いた場合に,それがどのような結果を生むのか,いま想像できないのですが.それぞれでのconfig.phpで,

$CFG->dbname    = 'moodleold';

$CFG->dbname    = 'moodle';

のように別々のデータベースを指示した方が安全です.


私はMySQLのデータベースのコピー方法が分からずにこちらで教えて頂きました.
http://moodle.org/mod/forum/discuss.php?d=91736

Tatsuya Shirai への返信

Re: アップロードした画像について

- Umeda Junichi の投稿

記載不足で申し訳ありません。
データベースに関しても個別に作成しております。

下記の様に設定しております。
oldtrain 
$CFG->dbname    = 'moodledb';
training
$CFG->dbname    = 'moodledb2';

Apache側の設定を何度か変更していたところ、
サーバーローカルのブラウザでも画像表示されなくなってしまいました(--;

試しに、サーバーローカルで再度実行する為に、config.phpにて下記設定に変更し
ローカルホストのテスト行いましたが変わらず。

$CFG->wwwroot   = 'http://127.0.0.1/training';


仮想OS環境のため一度一から構築しなおしも検討してみます。

Umeda Junichi への返信

Re: アップロードした画像について

- Tatsuya Shirai の投稿

 次に考えられるのがこれです.
http://moodle.org/mod/forum/discuss.php?d=106762

 fs_moodleにはこのミスをチェックする機能があります.

 [サイト管理]-[サイト]-[fs_moodleの設定表示]

基本的なサーバ設定のチェックの一番目,
設定ファイル(config.php/fsconfig.php)のチェック】

(頭とお尻のチェック)

を御確認下さい.とはいえこのチェックも完全とは言い切れませんので,直接,config.phpの頭とお尻に無駄な空行が無いかどうか見比べてみて下さい.

Tatsuya Shirai への返信

Re: アップロードした画像について

- Umeda Junichi の投稿

白井様

有難うございます。おかげさまで問題を解決する事ができました。

白井様に教えて頂いた[fs_moodleの設定表示]した所、fsconfig.phpが異常になっておりました。

但し、原因はテキストにスペースが入っていた訳ではなく、Windowsのメモ張で編集した事に
よってUnicodeサイン(BOM:Byte Order Mark)が強制的に付加されてしまった事が原因でした。
<BOMについては下記リンクを参照致しました>
http://www.edit.ne.jp/~koic/?date=20070305

BOMの有り無しを認識できるエディタを使って、BOM無しで保存したところ正常に動作しました。

設定ファイルのチェック機構があり非常に助かりました。

今後ともよろしくお願い致します。

Umeda Junichi への返信

Re: アップロードした画像について

- Tatsuya Shirai の投稿
 ああ、良かったです、お役に立ったようですね。BOMの問題はこれからも多く発生しそうですね。なまじ動いてしまうからタチが悪いですね。時間が出来たらBOMを識別できるように改善して見ましょう。
Tatsuya Shirai への返信

Re: アップロードした画像について

- Umeda Junichi の投稿

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

今回の件でBOMというもの自体始めて知りました。
Windowsの場合、メモ張での編集は危険のようですね。。。

ちなみに、動作していたサイトでは、fsconfigがSJISコードで保存されていました。
上書き保存しかした覚えがないのですが・・・運良く?保存時に文字コード ANSIが
選ばれてしまった様です(原因不明ですが・・・)。

BOMを識別できる改良期待してます笑顔