windows版のApache Syntax Errorについて

windows版のApache Syntax Errorについて

- Yuuichi Yamaguchi の投稿
返信数: 10
windows版をダウンロードして,
Start Moodle.exe を実行しましたが,
以下のエラーメッセージが出ました。

Apache 2 is starting ...
apache.exe: Syntax error on line 478 of D:/moodle19/server/apache/conf/httpd.con
f: Syntax error on line 7 of D:/moodle19/server/apache/conf/extra/httpd-xampp.co
nf: Cannot load D:/moodle19/server/apache/bin/php5apache2_2.dll into server: \x8
ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c
\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B

そして,このエラーメッセージで検索しましたら
http://moodle.org/mod/forum/discuss.php?d=115412
こちらの英文が見つかりましたが,私が英語を読めないため,解決方法が理解できません。


すでにこの英文による解決方法が公開されているのに,同様の質問を書き込んでしまいもうしわけなく思っております。どなたか,解決方法をご教示いただけないでしょうか?

Yuuichi Yamaguchi への返信

Re: windows版のApache Syntax Errorについて

- Hiroki Inoue の投稿
井上ともうします。

さて、先ほどWindows XP Professional SP2を入れたラップトップを起動して試してみたところ、問題なく動作し、localhostにアクセスするとインストール画面が出ました。山口さんが動作させている環境を教えていただけますか?

それから、英文フォーラムの方ですが、具体的解決を書いている投稿は以下です。

---
HS,

Pls look in C:/Moodle/server/apache/bin and see if there is a file there named php5ts.dll. If not, that's the problem. See if it is in the zip file you downloaded. If not, try the download again. If it is still missing, it is a bug in the zip file that should be reported to the Tracker.

How do I know? I peeked. I Googled your error msg and after plodding through a bunch of irrelevant links, found http://www.santosj.name/2008/programming/apache-wont-load-module-php5apache2_2dll/

RLE
---

要点は、php5ts.dllがserver/apache/bin以下にない場合にこのエラーが出るので、問題がある場合はパッケージのダウンロードをやり直してはどうか、とあります。

その他はIISを使うとか、AMPをマニュアルで全て入れるといったもので、配布パッケージを使っての解決策ではありません。

それとこのスレッドですが、Windows Server 2003を利用しているユーザがエラーに遭遇しているという投稿が多いです。

お役に立てば幸いです。

Hiroki Inoue への返信

Re: windows版のApache Syntax Errorについて

- Yuuichi Yamaguchi の投稿
井上先生。ご返信ありがとうございます。
> 山口さんが動作させている環境ですが
メーカーは
 ASUS EeePC 1000HA
CPUは
 Intel(R) Atom(TM) CPU N270 @1.60GHz 1.60GHz
OSは
 Microsoft Windows XP Home Edition Version 2002 Service Pack 3
メモリは 1.99GB

Apache Syntax Errorが出た時には
ウイルスバスター2009(09/3/6 5.883.50)が起動中でしたので,このウイルスバスター2009を無効にし起動していない状態にしました。

そして再度,
MoodleWindowsInstaller-latest-19.zip
http://download.moodle.org/windows/からダウンロードしました

そして,
MoodleWindowsInstaller-latest-19.zip
を右クリックして「すべて展開」を選び解凍しました。

解凍後作成されたディレクトリの直下にある
Start Moodle.exeをダブルクリックしました。
コマンドプロンプトの画面が出て,自動的に閉じました。その画面にはapacheのエラーらしきメッセージが出ていました。

ここでブラウザIE7にて,http://localhost/へアクセスしましたら,下記のエラーメッセージとなりました。
#################################################
Internet Explorer ではこのページは表示できません
可能性のある原因:
インターネットに接続されていない。
Web サイトに問題が発生している。
アドレスに入力の間違いがある可能性がある。
#################################################

そこで,apacheが正常に起動していないと予想できたので,
解凍後のディレクトリ→「server」ディレクトリ
→apache_start.batを実行したら,
前述のapache syntax errorとなっておりました。

server/apache/bin以下を確認しましたら,
php5ts.dllが存在しました。
このファイルが読み込めない事が原因である可能性もあると考え,
このファイルを右クリック→プロパティ を開くと
「全般」タブ内の一番下の項目に
「セキュリティ」という表示があり,
「このファイルはほかのコンピュータから取得したものです。このコンピュータを保護するため,このファイルへのアクセスはブロックされる可能性があります。」というメッセージが出ており,その横に
「ブロックの解除」ボタンがありました。

初めて見たボタンでして,ここでブロックされれば当然apacheの起動時にエラーが発生する可能性があると考え,「ブロックの解除」ボタンをクリックしました。

しかし,まだ同様のapache syntax errorだったので,
server/apache/bin以下の
php5apache2_2.dllも「ブロックの解除」を行い,
再度,apache_start.bat実行しましたが,
同様のapache syntax errorのままでした。

この「ブロックの解除」をダウンロードしたすべてのファイルに一括解除しようと調べましたら
http://okwave.jp/qa4762555.html
この記事に出会いました。
この記事によると,WindowsXPSP2以降で「すべて展開」をしてできたファイルにはADSという種類のZone.Identifierというものが付加されるようで,これが「ブロックの解除」にあたる部分のようでしたので,これを一気に解除してみることにしました。
ADS Managerというフリーソフトを使いました。
「ADS Manager」を起動
「左上のアイコン」をクリック
「ADS スキャナ」 をクリック
「見つかったADSを全て削除する」にチェックを入れる
「参照」をクリックして,
MoodleWindowsInstaller-latest-19.zipを解凍後生成されたディレクトリを選択し
「スキャン」をクリック

このスキャンが終わり,ADSの削除が終わった後に,再度
apache_start.bat実行しましたが,
同様のapache syntax errorのままでした。

ここでコンピュータを再起動し,ウイルスバスター2009を無効にしてから
apache_start.bat実行しましたが,
同様のapache syntax errorのままでした。
http://localhost/もエラーのままでした。

上記の検証から,今回のapache syntax errorの原因が
Zone.Identifierではなさそうだということがわかりました。
まだ,未解決のままです。

PS
井上先生の書いてくださったmoodle入門という書籍を私も購入しておりまして,大変重宝しております。重ねて感謝申し上げます。
Yuuichi Yamaguchi への返信

Re: windows版のApache Syntax Errorについて

- Hiroki Inoue の投稿
山口様

状況を説明していただいてありがとうございます。

1点気になる点があります。

当方がテストしたときはダウンロードしたパッケージをデスクトップに展開すると、パスについてのエラーメッセージが出てApacheの起動に失敗しました。

日本語のフォルダ名("デスクトップ")が間に入っているのが問題なのかと考え、解凍したフォルダ毎ルートドライブ(Cドライブ直下)へ移動させると無事に起動できました。

お手数ですが、フォルダを解凍した場所を教えていただけますか?

それから、山口さんのところでも上記を試してみてください。

どうしてもWindowsでしか動作しないアプリケーションを使わなくてはいけない場合以外は、
Windowsはあまり起動しないのですが、同様の問い合わせが多いので、ローカル環境構築方法とレンタルサーバへの導入について、現在進行しているプロジェクトが一段落したらもっと詳しくまとめてみたいと思います。

井上

Hiroki Inoue への返信

Re: windows版のApache Syntax Errorについて

- Yuuichi Yamaguchi の投稿
井上先生
早速のご返信ありがとうございます。

> 日本語のフォルダ名("デスクトップ")が間に入っているのが問題
私も日本語のフォルダ名は何かと扱いにくそうなので,デスクトップではなく,c:\,Cドライブの直下を展開先のディレクトリに指定をして,展開しました。

具体的には
C:\m19dirwin
上記のディレクトリに
server
README.txt
Start Moodle.exe
Stop Moodle.exe
の4つが入っております。

この展開先で,apache syntax errorが出ております。

私も原因が見つけられないか,努力してみます。
Yuuichi Yamaguchi への返信

Re: windows版のApache Syntax Errorについて

- Yuuichi Yamaguchi の投稿
井上先生

問題が解決したようなので,このエラーの解決方法を書きに示します。


http://reddog.s35.xrea.com/wiki/MSVCR71.DLL.html
こちらのサイトから
msvcr71.dll.zip をダウンロードします。


解凍してできるMSVCR71.dllを右クリックして
「ブロックの解除」をしました。


このMSVCR71.dllをC:\WINDOWS\system32に移動する。

この3つの手順後,
Start Moodle.exeを実行することで
apache syntax errorは出なくなりました。
そして,ブラウザにてhttp://localhost/にアクセスすると,
Moodle インストレーション が無事に表示されました。


どうやらMSVCR71.dllが必要だったようです。


問題解決のため,参考にしたサイトのURLです。
http://okwave.jp/qa4595550.html


つまり,Windows版でmoodleを利用されるすべての方において,
C:\WINDOWS\system32内に
MSVCR71.dllがなければならない事が予想されます。


MSVCR71.dllがC:\WINDOWS\system32内に存在しなくても,問題なく動作する方いらっしゃいますでしょうか?
もしそういうケースがある場合は,今回の解決方法は汎用的ではなく,本当の意味での解決になっていないかもしれません。
Yuuichi Yamaguchi への返信

Re: windows版のApache Syntax Errorについて

- Hiroki Inoue の投稿
こちらの環境ではこのファイルが既に存在していてエラーが出ませんでした。

.NET 1.1 Frameworkに含まれているようですね。

ともあれ、ご解決おめでとうございます。

井上

Hiroki Inoue への返信

Re: windows版のApache Syntax Errorについて

- Tatsuya Shirai の投稿

 貴重な情報です.

 当方のドキュメントにも本件を掲載させて頂きました.

 使い込んで枯れた状態のWindows環境にしか私もxampp liteをインストールしたことがありませんでした.購入したてのWindows PCにMoodleをインストールしてみよう!として挫折すると,後々まで尾を引きそうな問題です.

Tatsuya Shirai への返信

Re: windows版のApache Syntax Errorについて

- Yuuichi Yamaguchi の投稿
お役に立てて光栄です。
どうやら本当にMSVCR71.dllが原因だったようですね。
解決して安心しました。

つまり、
.NET 1.1 Frameworkがインストールされていないとwindows版moodleが正常に利用できない
ということですよね。

このwindows版moodleにMSVCR71.dllも梱包しちゃうことは、可能でしょうか?
そうすれば、この問題を知らない方も、この問題を意識せずにmoodleが利用可能かと思います。

いかがでしょうか?
Yuuichi Yamaguchi への返信

Re: windows版のApache Syntax Errorについて

- Hiroki Inoue の投稿
井上です。

気持ち悪いのでもう少し調べてみました。

今回ダウンロードしたWindows版Moodleパッケージには、¥server¥phpフォルダにmsvcr80.dllが含まれています。新しいバージョンのライブラリでしょうか。

しかし、Moodleパッケージに含まれるPHPモジュールによっては古いバージョンのランタイムライブラリに依存していて、msvcr71.dllがないとエラーになるのでしょうか。

また、SourceForgeのXAMPPのページを見ると以前のバージョンの変更履歴に

25. Juli 2007 XAMPP 1.6.3a
- Upgrade phpMyAdmin 2.10.3
- Upgrade Zend Optimizer 3.3.0
- ControlPanel Patch: Add msvcr71.dll in xampp root folder

などの表記があり、このライブラリがないと問題なのは開発者に認識されていて、XAMPPのフル版には含まれるようになったようです。

ちょっと時間がかかりましたが、フル版をダウンロードし展開してみると、¥server¥php以下に、msvcr71.dllもmsvcr80.dllも含まれています。

一方、Moodleのパッケージは、XAMPP Lite 1.7.0をベースにしています。念のためにXAMMP Liteもダウンロード・展開すると、¥server¥php以下にはmsvcr80.dllしか含まれていません。

ですので、MoodleのWindows版パッケージでは、¥windows¥system32以下でもいいですが、¥server¥php以下、つまりphp.exeのあるところにmsvcr71.dllを配置しても解決するのではないでしょうか。

時間がとれればやってみます。





Hiroki Inoue への返信

Re: windows版のApache Syntax Errorについて

- Yuuichi Yamaguchi の投稿
山口です。
お世話になっております。

> MoodleのWindows版パッケージでは、
> ¥windows¥system32以下でもいいですが、
> ¥server¥php以下、つまりphp.exeのあるところに
> msvcr71.dllを配置しても解決するのでは
井上先生の上記ご助言から,私も動作確認させていただきました。

まず
¥windows¥system32から
msvcr71.dllを削除しました。
その上で,下記の動作を確認してみました。


msvcr71.dllの配置場所を
\server\php
に変更しました。
そして,Start Moodle.exeを実行したら
apache syntax errorが発生しました。

そこで,
msvcr71.dllの配置場所を
apache.exeの置いてある
\server\apache\bin
に変更しましたら,
apache syntax errorが発生することなく,
moodleを利用することができました。

以上,報告でした。