サポート » 使い方全般 » KAGOYAサーバーにて、不規則なエラー「wp-settings.php」

  • 初めまして。
    KAGOYAのスタンダード100にインストールしています。

    投稿したり、カテゴリを編集したり、ユーザーの名前を変更したり、いろんな動作でたまに下記のエラーが出ます。
    ――――――――――――――――――――――――――――――――――
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/●●●/public_html/★★★/WP/wp-settings.php on line 222
    ――――――――――――――――――――――――――――――――――
    同じ動作をしても出ないときもあるし、ブラウザを更新しただけでちゃんと正常に動くときもあり、どうしたらいいでしょうか。

    検索したところ下記の症状と似てるんですが・・・この記事を読んでも
    「いつの間にか解決しました」で終わっているようで・・・・
    http://ja.forums.wordpress.org/topic/591?replies=7

    ●サーバー KAGOYA スタンダード100
    ●WordPress 2.6.1
    ●PHP 5.2.6
    ●Apacheバージョン Apache/1.3.41
    ●MySQLバージョン 4.0.25 (Ver 12.22 Distrib 4.0.25)
    ●DOCUMENT_ROOT /home/●●●/public_html/★★★
     ここにWPというフォルダを作りアップしてます

    wp-settings.phpの222行目は下記なんですが・・・
    ――――――――――――――――――――――――――――――――――
    if ( file_exists(WP_CONTENT_DIR . ‘/object-cache.php’) )
    require_once (WP_CONTENT_DIR . ‘/object-cache.php’); <<<ここが222行目
    else
    require_once (ABSPATH . WPINC . ‘/cache.php’);

    ――――――――――――――――――――――――――――――――――

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    不規則に PHP のパースエラーが出るのは不可解ですよね。

    当該箇所を見ると、if 文のぶらさがり構文なのですが、ここで改行コードが変になっていると、if 文の続きがなくなっているように解釈されるのかもしれません。
    以下のように、ブラケットを入れた構文にしてみるとどうでしょう? これで改善されるならば、WordPress のコード自体を修正してもらうよう、依頼してみます。

    if ( file_exists(WP_CONTENT_DIR . '/object-cache.php') ) {
        require_once (WP_CONTENT_DIR . '/object-cache.php');
    } else {
        require_once (ABSPATH . WPINC . '/cache.php');
    }

    # 以下余談

    WordPress は if のぶらさがり構文を多用しているんですが、個人的にはやめて欲しいんですよね……。今回提案した解決方法が有効ならば、この事象をもとに、「ぶらさがり構文はダメだ」と言えるんですが。

    lilyfan様
    アドバイスありがとうございます!

    ところが・・・・申し訳ありません。
    友人の契約していたKAGOYAでMySQLを別途申し込み(有料)設置したのですが
    あれ以後ずっと同じ現象が続き、
    投稿して同じエラー、リロードすると治る、の繰り返し・・・

    友人に、症状を明記したメールを送って
    この内容でKAGOYAのサポートへ連絡してみて・・と伝えたんですが
    彼女が面倒だったのか「ブログだけ別のサーバーにする」と言って、MySQLプランを切ってしまい(結局問い合わせはされなかったようです)
    もう検証できなくなってしまいました。

    せっかくアドバイスいただいたのに申し訳ありません。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    友人の契約していたKAGOYAでMySQLを別途申し込み(有料)設置したのですがあれ以後ずっと同じ現象が続き、
    投稿して同じエラー、リロードすると治る、の繰り返し・・・

    うーん。現象が検証できないのは仕方ないですね。今回の場合、KAGOYA のサーバーに不具合がある可能性が大なので、さっさと別サーバーに移ったのは正解かもしれません 😉

    はじめまして、
    当方も同じPHP Parse errorがKagoyaサーバのみで起きてましたが、サポセンさんからの内容で対処を確認できましたのでこの場でお伝えします。

    Parse errorが頻繁に起きます場合には、.htaccess にて文字コードの入出力を
    固定にしてお試しくださいますようお願いします。
    文字コードを EUC-JP で統一する場合には下記のような記述をお願いします。

    php_value mbstring.language Japanese
    php_flag mbstring.encoding_translation On
    php_value mbstring.script_encoding EUC-JP
    php_value mbstring.internal_encoding EUC-JP

    #上記設定で文字化けが直らない場合下記設定も追加してお試しください。

    php_value default_charset EUC-JP
    php_value mbstring.http_output pass
    php_value mbstring.http_input EUC-JP

    KagoyaサーバはPHP 5.2.6ですが、Parse errorに関しては、
    PHPのバージョン4.3.11からマルチバイト処理のコードが入れ替わっており、日本語の文字コード自動判別で失敗が増えたことが原因みたいです。

    Kagoyaさんのサポートサイトにも同じ記事があります。

    PHPを設置しましたが、頻繁に Parse error が表示されます

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    Parse error や文字化けにつきましては、同一サーバー上でさまざまな charset が使用されますと、phpのキャッシュがリロードされるたびに異なる charset を持ってしまうことが原因として考えられます。
    .htaccess にて文字コードの入出力を固定にしていただくことで改善できることがあります。

    これはちょっと有り得ない話だと思いますね。少なくとも文字コードの入出力を固定うんぬんは今回の Parse error とは無関係な気がします。
    bilqus さん並びにサポート提示の .htaccess の文字コード入出力設定のほとんどは現在の通常日本語版設定で非推奨あるいは不要なものばかりですのでたとえそれで Parse error が直ったとしても逆に入出力の文字化けや一部日本語プラグインにおいて不具合が発生する可能性が高いです。

    書き忘れてましたので追記します。
    エラー行内容からセッション絡みの環境設定が怪しいかなと思い、xreaとkagoyaのphpinfoを比較したところ、kagoyaのsession.auto_startがonになっていました。これをoffにしました。結果は若干エラー出力の頻度が下がった感もしましたが、その後に上述のサポセン設定の追加で効果がありました。

    Parse error が直ったとしても逆に入出力の文字化けや一部日本語プラグインにおいて不具合が発生する可能性が高いです。

    今のところ、文字化けや実装している日本語プラグイン等で影響は出ていません。もし不具合があれば別途報告します。

    解決されたようなので蛇足になるかもしれませんが、一応情報提供。

    下記ページに(WordPressではないですが)似たような症状の問題と対処法が載っています。
    http://blogs.dion.ne.jp/php/archives/5712129.html
    この方の場合
    php_flag mbstring.encoding_translation off
    でエラーが出なくなったとのこと。

    kagoyaサポセン回答で
    php_flag mbstring.encoding_translation On
    としてますが、調べてみるとkagoya設定ではOnになっているっぽいです(不確かです。違ったらすみません)。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「KAGOYAサーバーにて、不規則なエラー「wp-settings.php」」には新たに返信することはできません。