- ベストアンサー
「Parse error: syntax error, unexpected」というエラーが発生して解消方法が分からない
- 自宅サーバーでphpを使用したhtmlファイルを読み込むと、たまに「Parse error: syntax error, unexpected」というエラーが発生します。再起動後は正常に表示されますが、しばらくすると再びエラーが発生します。
- 問題はphpの記述にあるのか、apacheやphpの設定にあるのか、それとも別の箇所に問題があるのか、切り分けができません。
- 利用している環境はCentOS5.1で、apacheのバージョンは2.2.8、PHPのバージョンは4.4.8です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以前、同じような状態になったことがあります。 ソースの記述は何も間違っておらず、しかしたまにエラーが発生する。 結局、原因は掴めていないのですがおそらくPHPのコンパイルに失敗している気がします。 PHPソースの文字コードを明示的に指定してみてください。 以下、.htaccessでの設定例 php_value mbstring.script_encoding EUC-JP これで一応当環境では、エラーが出なくなりました。
その他の回答 (3)
- altrn
- ベストアンサー率62% (10/16)
Parse error : 解析エラー syntax error : 構文エラー unexpected xxx ... : 出てくるべきでないところにxxxが出てきている... とのことで、比較的一般的なエラーだと思いますよ。 「phpの記述自体に問題がある」 でいいとおもいます。unexpected以下のファイル名、行番号付近をチェックしてみてください。
お礼
ありがとうございます。 詳しくはmookun2007さんとkikutomaさんへのお礼に記載した内容と重複いたしますので省きますが、まずはmookun2007さんのご指摘の方法で様子見をしてみたいと思います。
- tsaito
- ベストアンサー率68% (17/25)
Parse error: syntax error, unexpected の後も省略せず、 全部書いた方が回答が得られると思います。 エラー発生のモジュール名や行数が書かれていないでしょうか。
お礼
ありがとうございます。 詳しくはmookun2007さんとkikutomaさんへのお礼に記載した内容と重複いたしますので省きますが、まずはmookun2007さんのご指摘の方法で様子見をしてみたいと思います。
- kikutoma
- ベストアンサー率38% (13/34)
()[]{}の閉じ忘れはないですか?? タブや全角スペース全角スラッシュとか入っていないですか?
お礼
ありがとうございます。 これは質問時私の情報記載漏れとなりますが、本件は私の自作のphpにとどまらず、一般公開されている複数のCMSツールのphpでも発生しております。 その為、「Parse error: syntax error, unexpected」以降のエラー内容はアクセスするファイルにより異なったものとなります。 また、一般公開されていて私がソースに一切触っていない複数のphpファイルでも現象が出る関係上、括弧の閉じ忘れなどがある可能性は低いのかなと判断しております。 今皆さんからアドバイスいただいた中ではmookun2007さんのご指摘の内容がもっとも可能性が高そうな気がしますので、まずはmookun2007さんの方法を試してみて様子を見てみたいと思います。
お礼
ありがとうございます。 「mbstring.script_encoding Parse error」で検索した所、今私の環境で発生している問題と同じと思われる問題を複数発見致しました。 下記はその一例となります。 http://blog.factree.co.uk/memo/000028.html http://d.hatena.ne.jp/ha-g1/20080602 どうもこれが怪しそうです。 mookun2007さんもすでにご存知と思いますが、このような現象が発生された方は下記のどちらかの対応をされているようでした。 1. --enable-zend-multibyteコンパイルオプションなしでビルドし直す。 (これをつけてビルドするとscript_encodingの設定が出来るようになるようです。 なお私の環境では--enable-zend-multibyteコンパイルオプション付きでビルドしております)。 2. php.iniないしは.htaccessでscript_encodingの設定を行う。 1, 2共に行う事は可能ですが、簡単に試せるのは2なので、先ほど.htaccessにscript_encodingの設定を行いました。 これでしばらく様子を見てみようと思います。 なお作業前にphpinfoの情報を確認した所、mbstring.script_encodingの設定は「no value」となっておりました。 それとこの現象は常に発生するわけではないため、直ったか否かを判断する為にしばらく時間をいただければと思います。 そして解消したと判断できたら質問を閉め切らさせていただきたいと思います。 以上、よろしくお願いします。
補足
しばらく様子見してみましたが、その後現象が出なくなった為、今回の対応で修正されたものと思われます。 どうもありがとうございました。