みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Syntax Error Apach PHP W7

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...


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

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

投稿日時 - 2013-12-30 19:39:56

QNo.8406998

困ってます

質問者が選んだベストアンサー

PHP5.5はVC11

5.4はVC9

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

ApacheLounge
http://www.apachelounge.com/

投稿日時 - 2014-01-02 20:40:50

補足

補足です。
うまく起動できたバージョンの組み合わせで、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:47

お礼

有難うございます。

私も下記の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:10

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

\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/technical-information/programming/php/setting/apache.htm
等が見付かります。



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

何時になっても「初心者」というのはいます。

投稿日時 - 2013-12-30 23:14:45

お礼

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

投稿日時 - 2014-01-02 23:13:25