• ベストアンサー

どうしても、ウェブ上でPHPエラーメッセージがでない

error_reporting = E_ALL display_errors = On にしてるのに、わざとphpの構文エラーをだしても、ナニもブラウザにエラーが表示されません。 なお、phpとincファイルを「error」で全検索しても、特にナニも検索にひっかかりません。 なぜでしょうか? おわかりのかたいらっしゃいましたら、教えていただければ幸いです。

  • ymck
  • お礼率69% (65/93)
  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
回答No.2

とりあえず補足もあるようですし、順番に潰していきましょうか。 【補足について】 1.Webサーバが動いている 2.簡単なHTMLが表示できている 3.かんたんなPHPファイルが表示できている 4.3・4の文字コードと問題のPHP(INCも含む)の文字コードは一緒 【本題について】 エラーが出るであろう処理の先頭に@は付いていない事を確認 たぶんどれも違うかもしれませんが、 情報公開量が少ないので初歩的な答えしか出来ないと思われます。 自分の間違っていないと思われる箇所でも、 積極的に公開しましょう。

ymck
質問者

お礼

ご回答ありがとうございます。 【補足について】 1.Webサーバが動いている⇒アクセスできるので動いてます。(キャッシュはプロキシも消しました) 2.簡単なHTMLが表示できている⇒できています 3.かんたんなPHPファイルが表示できている⇒ <?php print "はろーわーるど"; ?> が表示されています。 (以下、3,4も含めて文字コードは全部、UTF-8です) 4.3・4の文字コードと問題のPHP(INCも含む)の文字コードは一緒⇒ <?php print "はろーわーるど"; ここの行はあきらかにバグ! ?> とすると、 はろーわーるどだけ表示される <?php ここの行もバグ print "はろーわーるど"; ここの行もあきらかにバグ! ?> とすると、全く表示されない といった状態です。 【本題について】 エラーが出るであろう処理の先頭に@は付いていない事を確認 ついていません >情報公開量が少ないので初歩的な答えしか出来ないと思われます。 >自分の間違っていないと思われる箇所でも、 >積極的に公開しましょう。 正直、これ以外にどれをのせたらいいのか分からない状態です。 まさか、php.iniを全部掲載させるわけにいきませんし。 なにか手がかりはありませんでしょうか? 以上、よろしくお願いいたします。

ymck
質問者

補足

1つ手がかりがわかりました。 ドキュメントルート直下にmod_rewriteをするため(など)の.htaccessを置いているのですが、 これを「_.htaccess」にリネームしたら、PHPのエラーメッセージがでました。 で、「.htaccess」にリネームしなおして、Firefoxの「Live http Headers」でヘッダをみたところ、 (*は伏せ字です、ドメインはexample.comに代えてます) http://example.com/util/hello2.php GET /util/hello2.php HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ja,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: __utmz=hogehogehogehogehogehoge(←長いので中略) Cache-Control: max-age=0 HTTP/1.x 200 OK Date: Fri, 28 Mar 2008 08:55:16 GMT Server: Apache Content-Length: 0 Keep-Alive: timeout=15, max=96 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8 ---------------------------------------------------------- http://toolbarqueries.google.co.jp/search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff&googleip=O;**.***.**.**;133&ch=808f32b4a&q=info:http%3A%2F%2Fexample.com%2Futil%2Fhello2.php(<===これはなんだか分かりません・・・) GET /search?sourceid=navclient-ff&features=Rank&client=navclient-auto-ff&googleip=O;**.***.**.**;133&ch=808f32b4a&q=info:http%3A%2F%2Fexample.com%2Futil%2Fhello2.php HTTP/1.1 Host: toolbarqueries.google.co.jp User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13 GoogleToolbarFF 3.0.20070525 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ja,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: SS=Q0=hogehogehogehogehogehoge(←長いので中略) HTTP/1.x 200 OK Cache-Control: private Content-Type: text/html; charset=Shift_JIS(<===ここ注目!!!) Set-Cookie: SS=Q0=aW5mbzpodHRwOi8vMzEuY29tL3V0aWwvaGVsbG8yLnBocA; path=/search Server: gws Content-Length: 0 Date: Fri, 28 Mar 2008 08:55:17 GMT ---------------------------------------------------------- ということで、最後の方でShift_JISになっているのが原因かと思いますが、その理由が分かりません。 なお、.htaccessはutf-8で書いてます。 また、http://example.com/util/hello2.php は、mod_rewriteをとおりますが、 RewriteCond %{REQUEST_URI} !/util/.+ [NC] てなかんじでスルーされます。

その他の回答 (1)

noname#111465
noname#111465
回答No.1

環境を教えてください。 php.iniを修正してからWEBサーバー(Apache?)を再起動していないのでは?

ymck
質問者

お礼

ご回答ありがとうございます。 >php.iniを修正してからWEBサーバー(Apache?)を再起動していないのでは? これはしました。 なお、log_errors = On にしているのですが、 そっちのエラーログは表示されています。 それから質問文があいまいだったので言い直しますと、 htmlすら表示されません。HTMLソースをみても全く空白です。 なぜなのでしょうか? お教えいただければ幸いです。

ymck
質問者

補足

環境を書いてなかったので補足させていただきます。 レンタルサーバ上で動かしてまして、 OSは、レンタルサーバ上のVPSで、CentOS4、Apache2.xです。 PHPのバージョンは5.1.6で、safeモードはOff、あとは・・・ 関係ないかもしれませんが、output_buffering = Offにしています。 以上、よろしくお願いいたします。

関連するQ&A

  • PHPのエラーがでない

    お世話になります よろしくお願いします 使えるネット様のサーバーを使用しています。 PHPでデバッグ用にエラーの表示をしたいのですが どうすればいいか分からず困っています [php.ini] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; error_reporting = E_ALL & ~E_NOTICE display_errors = On display_startup_errors = Off log_errors = Off log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = On ソースに error_reporting(E_ALL|E_STRICT); を入れてもだめでした 怪しいところといえば phpinfoで Configurationの箇所がLocal ValueとMaster Valueに分かれているのですが Master Valueのほうがdisplay_errors On Local Valueのほうがdisplay_errors Off になっています。 原因はこれじゃないかなと思っているのですが どうすればいいか分からず困っています 以上よろしくお願いします

  • PHPのエラー表示

    よろしくお願いします。 使えるねっとの専用サーバーを使っています。 そこで質問ですが、Tera Termでサーバーに接続して etc/php.iniファイルの設定をいじって PHPのエラーが出るようにしたいのですが error_reporting = E_ALL & ~E_NOTICE と display_errors=Onを設定して Apacheの再起動をしたのですが エラーが表示されず、真っ白の画面が表示されるままなのですが どうしたらエラーの表示ができるのでしょうか? 以上よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのエラー表示について

    PHPを勉強し始めたばかりの初心者です。 開発環境はDreamweaverとwebmatrixです。 出力結果をブラウザで確認しているのですが、 エラーの詳細が表示されず HTTPステータスコード(404 Not Foundなど)しか返ってきません。 php.iniは、ネットで調べて以下のように設定しました。 display_errors = On error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT でも、表示が変わりません。 phpinfo();の結果表示内のLoaded Configuration Fileの項目は C:\xampp\php\php.iniですので、それを編集しています。 更新されてないのかな?と思ってPCを再起動しましたが変わりませんでした。 ご存知の方がいらっしゃいましたら、ご教示ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • ブラウザからPHPをアクセスしたときに

    ブラウザにPHPエラーを表示させるには PHPをおいているサーバのPHP設定ファイルで php.ini display_errors=on とすればできますが php.ini display_errors=off としていても php.ini display_errors=on の時と同じようにブラウザにエラーを表示させる方法は有るのでしょうか?

    • ベストアンサー
    • PHP
  • PHP 画面が真っ白

    WAMP初級者です。 いままでPEAR:DBを使って書いていたコードを、プリペアドステートメントやらPDOやらにコードを変更していますが、画面が真っ白になるケースがでてきました。 今までは素直にエラーを表示してくれていたので、すぐに対処ができたのですが、コードを何度見直しても間違いがみあたらず、エラーも何も表示してくれないのでどこでエラーがでているかわかりません。 php.iniで error_reporting = E_ALL がコメント解除されている display_errors = On になっていることを確認していますが、それでも何も表示してくれません。 おそらくどこかしらミスがあり、真っ白なのだと思いますが、、どのように探るべきでしょうか? 初歩的な質問ですみませんが、どなたお助けください。 環境はApache/2.2.4 (Win32) PHP/5.4.22です

    • ベストアンサー
    • PHP
  • Strict Standardsエラーを消したい

    PHP初心者です。 MAMPを使用して、macにてローカル環境でwordpressサイトを制作中です。 MAMPのPHPは5.4.10と設定しています。 wordpressを最新版に更新して、ダッシュボードにログインすると Strict Standards: Only variables should be passed by reference in /ファイル名~ など、Strict Standardsから始まる警告文がたくさん出ました。 /Applications/MAMP/conf/php5.4.10/php.ini の該当箇所と思われる部分を ;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; ; - Show only errors ; ;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; ; - Show all errors except for notices ; ;error_reporting = E_ALL | E_STRICT error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ~略~ display_errors = Off 等と記述していますが、ダッシュボードに変化はありません。 /Applications/MAMP/bin/php/php5.4.10/conf/php.ini でも試してみましたがダメでした。 変更後は、Apacheの再起動もしています。 PHPの仕組みが理解できていないので、根本的なところが抜けているのかもしれません。 恐縮ですが、教えていただけると幸いです。

    • 締切済み
    • PHP
  • PHP Strict Standards

    本に載っている、PEARのCalendar.phpを使用したプログラムを実行すると Strict Standards: Non-static method Calendar_Engine_Factory::getEngine() should not be called statically, assuming $this from incompatible context in /usr/share/php/Calendar/Calendar.php on line 210 というエラーが出ます。 ネットで検索すると、php.iniの中の error_reporting = E_ALL | E_STRICT を error_reporting = E_ALL | ~E_STRICT に変えるだけでエラーが出なくなるみたいでした。 http://www.xoops.org/modules/newbb/viewtopic.php?post_id=330699 私のは error_reporting = E_ALL & ~E_DEPRECATED となっていたので、 error_reporting = E_ALL | ~E_STRICT に変えてlamppを再起動しましたが、まったく同じエラーが出ます。 error_reporting = E_ALL & ~E_STRICT にしても同じです。 解決方法を教えてください、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでFetalなエラーが発生した場合

    PHPでFetalなエラーが発生した場合 に、ApacheのErrorDocument 500で指定したメッセージを表示させたいのですが、上手くいきません。 ■Apacheの設定 ErrorDocument 500 "The server made a boo boo." ■PHPの設定 error_reporting(6135); // 0にしてもダメでした ini_set('display_errors', '1'); // 0にしてもダメでした ■PHPのコード <?php throw new Excpetopn('err!'); ?> ブラウザからアクセスすると、httpレスポンスコードは500が返ってきています。 ini_set('display_errors', '1'); にすると、 Fatal error: Uncaught exception 'Exception' with message が表示されます。 逆に ini_set('display_errors', '0'); にすると、 何も表示されません。 どうしたら、ErrorDocument 500で設定した"The server made a boo boo."が表示されるようになりますでしょ うか。。 そもそも表示できないのでは?と思いはじめてますが。。 知っている方いましたら、ぜひともご教授下さい。 よろしくおねがいいたします。 Apache 2.2.3 PHP5.3.0

    • ベストアンサー
    • PHP
  • Parse errorが表示されない

    Parse errorが表示されない いつもお世話になっております。 PHPで開発を進めております。 開発するにあたりエラーの表示をしたいのですが、下記の設定を行っても表示されません。 php_flag display_errors on php_value error_reporting 2039(4096も試しました) <?php echo "てすと" ?> のようにセミコロンを付けないなどのエラーが表示されません。 <?php if () { } ?> if文の条件文が入っていない場合のエラーは表示されます。 <環境> PHP:5.1.6 何か他に設定するところがあるのでしょうか。 ご教示お願いいたします。

    • ベストアンサー
    • PHP
  • Wordpressにログイン時のみPHPエラー表示

    Wordpressにログイン時のみdisplay_errorsをonにしたいです。 つまり・・・Wordpressを使っていて、個人サイトなので管理パネルに入れるユーザは自分だけです。 で、自分がwordpressにログイン時のみdisplay_errorsをon(つまりPHPエラーを画面に表示)させることはできないでしょうか? 匿名な人にphpエラーメッセージを見せたくはないけど、 自分が開発中は、エラーメッセージを見たいので。 よろしくお願いします

    • ベストアンサー
    • PHP

専門家に質問してみよう