IISでの利用に深刻な問題

IISでの利用に深刻な問題

- Takahiro Kagoya の投稿
返信数: 7

これまで、IISでMoodleを半年利用してきましたが、大きな問題があることに気づきました。

slashargumentの設定が、file.php/pic.jpg として設定すると、画像等のファイルが正しく読み込まれないのです。この事は、FAQにも記述があり、Apache2などの場合には、AcceptPathInfoをOnにすれば、問題がない様なのですが、IISで稼動するPHPの場合、$PATH_INFOという環境変数が得られないようです。FAQにある様にAllowPathInfoForScriptMappingsという設定を有効にしてもダメなのです。

仕方なく、これまでfile.php?file=pic.jpg の設定で使ってきました。ところが、この設定だと、htmlファイル等に含まれる相対パスが正しく処理されないのです。つまり、これまでhtmlでWWWサイトなどを構築してきた先生が、そのhtmlファイル、および画像ファイルなどをMoodleサイトにアップロードしても、相対パスで指定されている画像などは表示されませんし、別ファイルへのリンクも正しくリンクできません。

本家でも話題に挙がっていて、仕方なくIISからApacheへ変更されている人もいるようです。

本学でも、どう対処すれば良いか迷っています。同じサーバーにASPで動く別のシステムもあり、IISをとめるわけにも行かないのです。TCP/IPのポートを分けてApacheを稼動させるか、別サーバーを用意することも考えていますが、もろもろの事情で難しい状況です。

たぶん、IISで利用されてる方は少ないと思いますが、今後同じ理由で頭を悩まされる方が増えるかも...ということで、長文になりましたが、書かせていただきました。また、既にIISで稼動されていらっしゃる方がいれば、情報交換をしたいと思います。

参考:
http://moodle.org/mod/forum/discuss.php?d=13381#64607
http://moodle.org/mod/forum/discuss.php?d=9757#47103

Takahiro Kagoya への返信

Re: IISでの利用に深刻な問題

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
taka kago さん

下記の情報で対処できるかどうか試していませんが、参考までにご覧ください。

http://www.yk.rim.or.jp/~sucle/blosxom/doc_users_install_dynamic.html
http://perlmonks.thepen.com/102907.html


Mitsuhiro Yoshida への返信

Re: IISでの利用に深刻な問題

- Takahiro Kagoya の投稿

ありがとうございます。(この返信に先ほど気づきました...)

教えていただいたURLを拝見したのですが、ActivePerlによるCGIについての回避方法かなぁ...と。
なので、PHPでの動作もfixされるのかなぁ...とプログラムを解読中です。

http://perlmonks.thepen.com/102907.html 

ここに示されているPerlスクリプトを動作させるために、ActivePerlをインストールすることも考えたのですが、なるべくなら、MetaEditや、別の方法でサーバーの設定を変更した方が後々トラブルにならないかな...と。

IIS PHP_INFO というキーワードでGoogleで探すと結構引っかかるのですが、どれも解決方法に結びつく情報が少なくて、いまだ解決に至っていません。

Takahiro Kagoya への返信

Re: IISでの利用に深刻な問題

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
こちらもご覧ください。ウインク

http://www.mail-archive.com/php-windows@lists.php.net/msg06177.html

上記ページで言及されていますパッチ(php4isapi.dll for php-4.0.6)ですが、現在、PHP-4.3.6までリリースされているようです。

ftp://ftp.muze.nl/pub/ariadne/win/iis/
Mitsuhiro Yoshida への返信

Re: IISでの利用に深刻な問題

- Takahiro Kagoya の投稿

ありがとうございます。

そうですね。このパッチの存在は、先に挙げました以下の記事にも触れられていて知っています。

http://moodle.org/mod/forum/discuss.php?d=9757#47103

既に、PHP 4.3.8で運用しており、あえてバージョンを下げるのに躊躇しています。逆に、PHP5にアップデートすることも考えていますが、これまでの安定性が保たれるのか(特にIISのモジュール版)も心配の種になっています。5.0にしてみて、だめだったら、戻せばいいのかもしれませんが。

それと上記の記事の4の説明のfile.phpの変更箇所というのがちょっと理解できていません。Anneさんの返信記事にもありますが、そこで止まってしまってます。

24時間稼働中のサーバなので、長時間のメンテナンス作業時間がとれないので、ある程度心配ごとがなくなってから試したいと思っているのですが。

引き続き、何か情報がいただけらた幸いです。

Takahiro Kagoya への返信

Re: IISでの利用に深刻な問題 (解決)

- Takahiro Kagoya の投稿

この問題のために、数週間悶々とした日が続きましたが、ようやく解決することができました。

いろんな試行錯誤を繰り返したので、解決の要因が十分特定できた訳ではないのですが、現時点で私が思っている解決方法を記しておきまます。

  1. まず、PHPのバージョンを5.02にしました。このISAPI版で動作しています。CGI版も動作自体は問題ないと思われますが、このPATH_INFOとの関係は十分試していません。
    逆に、4.3.8のバージョンで問題があるのかどうかも十分試せていません。
  2. IISの.phpのアプリケーションマッピングに「ファイルの存在を確認する」というチェックボックスがあるのですが、これをオフにしないと、file.php/pic.jpg の設定にした場合、ファイルが存在しないというページ(つまり404)が返される。
  3. IIS5 では、AllowPathInfoForScriptMappings の設定をTrueにしてもFalseにしても、関係なさそう。

といったところです。php.iniの設定もいろいろ変更したのですが、それが解決の要因になっているかどうか、ちょっと確認できていません。

もしIISでMoodleサイトを構築される方がいらっしゃいましたら、参考にしてみてください。

Takahiro Kagoya への返信

Re: IISでの利用に深刻な問題 (解決)

- Isshu Takigawa の投稿

IISでは、PATH_INFOはフルパスで返す仕様になっているはずです。

PATH_INFOに関する部分をPATH_INFO−SCRIPT_NAMEな形に修正すれば、

正常に動作すると思いますが、いかがでしょうか。

Isshu Takigawa への返信

Re: IISでの利用に深刻な問題 (解決)

- Takahiro Kagoya の投稿

お返事ありがとうございます。 上記のとおり、今のところMoodleは問題なく動作しているように思えます。

それでMoodleのphpのソースを検索した限りでは、PATH_INFOという環境変数をそのまま使っているところはなさそうなのですが...どのように使われているのか正直分かりません。

http://... /moodle/admin/phpinfo.php/aaaaa などとすると、
_SERVER["PAQTH_INFO"] は、 /aaaaaになっています。
5.02になって、バグがなくなったのかもしれませんね。