プロが教えるわが家の防犯対策術!

Windows7、Apache2.2.5、PHP5を使おうとしていますが、PHPをLoadするときに、SyntaxErrorとなってしまいます。


Windows 7 でApache2.2.25(httpd-2.2.25-win32-x86-openssl-0.9.8y.msi)をC:\serverの下にインストールし、PHPもzipをC:\php の下に展開しました。

httpd.confを更新してphpを使用できるようにしてapacheをstartすると下記のSyntax errorとなります。php5apache2_4.dll、php5ts.dll をc:\server\modulesにコピーして、httpd.confに下記を追加しました。

LoadModule php5_module modules/php5apache2_4.dll
LoadModule php5_module modules/php5ts.dll
AddType application/x-httpd-php.php
PHPIniDir "C:/php"


しかし、下記のようにSytax error on line 131エラーが表示され、ApacheをStartできません。
エラーメッセージもなんだかエンコードされているようで、意味不明です。

httpd.exe: Syntax error on line 131 of C:/server/conf/httpd.conf: Cannot load C:
/server/modules/php5apache2_4.dll into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82
\xbd\x83v\x83\x8d\x83V\x81[\x83W\x83\x83\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8
\x82\xdc\x82\xb9\x82\xf1\x81B
Note the errors or messages above, and press the <ESC> key to exit. 25...


この種のエラーは昔から出ているようでいろいろな質問がこのサイトにもだいぶ前の質問として掲載されているようですが、なんだか同じような(一見つまらなさそうな)こんなエラーがまだ発生するのか・・・と意外に思ってしまいました。

どうやったらこのエラーを回避できるのでしょうか? どなたかご存知の方はいらっしゃいませんか?教えてください。

A 回答 (2件)

PHP5.5はVC11



5.4はVC9

Apache 2.2.5はおそらくvc9なので5.5は入らない
入れたいのであればapache2.4をインストール。

ApacheLounge
http://www.apachelounge.com/

この回答への補足

補足です。
うまく起動できたバージョンの組み合わせで、PHPのインストーラーは、httpd.conf に下記の4行を書き加えています。

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/php/"
LoadModule php5_module "C:/php/php5apache2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL

LoadModule php5_module "C:/php/php5apache2.dll" の1行は、Sytax Errorになったバージョンの組み合わせの場合と、当然のことながら全く同じです。
なので、私は・・・

「何がSytax Errorだ!? The specified load module is not supported くらいの親切なエラーメッセージを出してくれよ。Apacheが世に出て何年経つんだよ!?」

なんて偉そうなことを、Apache協会に向かって、言いたくなってしまいました。

補足日時:2014/01/02 22:19
    • good
    • 0
この回答へのお礼

有難うございます。

私も下記のWebページなどを見ていまして、ApacheとPHPのバージョンがマッチしていないのでは? と思いはじめていまして、複数のバージョンの組み合わせで起動を確認していました。
http://www.phppro.jp/qa/1020

今の所、PHPのバージョンを古いものにしてみて、下記の組み合わせでApacheは正常に起動できました。
(ほかのバージョン、例えばPHP 5.2.17などでも動くのだろうと推測します)

PHP 5.2.13 php-5.2.13-win32-installer.msi
Apache 2.0.65 httpd-2.0.65-win32-x86-openssl-0.9.8y.msi   

ApacheのWebで、Apache2.4.7のBinariesのWin32版をアクセスすると、2.0.65と2.2.5の2つのバージョンがダウンロードできるようです。
2.2.5であればPHPのもっと最近のバージョンとの組み合わせも可能なのかもしれません。



なお、PHPの動作確認はこれからやりますので。

追伸: こんなクダラナイことに3日も費やしてしまいました(笑い)。
    他の初心者? の方の参考になれば幸いです。

お礼日時:2014/01/02 22:06

\xXX を 16進の文字コードとして変換すれば、内容を読むことができます。


例えば、phpをコマンドラインから使えるおうにしていおいて
php -r 'echo "httpd.exe: Syntax error on line 131 of C:/server/conf/httpd.conf: Cannot load C:/server/modules/php5apache2_4.dll into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83v\x83\x8d\x83V\x81[\x83W\x83\x83\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B";'
を実行する、とか。

で、

httpd.exe: Syntax error on line 131 of C:/server/conf/httpd.conf: Cannot load C:/server/modules/php5apache2_4.dll into server: 指定されたプロシージャが見つかりません。

というメッセージであることがわかります。
で、上にあるようなキーワードで検索すると

http://www.crystal-creation.com/web-appli/techni …
等が見付かります。



> この種のエラーは昔から出ているようでいろいろな質問がこのサイトにもだいぶ前の質問として掲載されているようですが、なんだか同じような(一見つまらなさそうな)こんなエラーがまだ発生するのか・・・と意外に思ってしまいました。

何時になっても「初心者」というのはいます。
    • good
    • 0
この回答へのお礼

初心者にご指導有難うございました。
しかし、何故エラーメッセージが16進で表示されるのでしょうか・・・これはUnicode UTF-16? の漢字コード。。。
ApacheがPCのLocaleでも参照して漢字でエラーメッセージを出しているのでしょうか・・・英語で出せばいいのに・・・と思ってしまいました。
また、よろしくご指導お願いいたします。

お礼日時:2014/01/02 23:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!