PHP 5.でApache2を実行しているUbuntuサーバーがあります。php.iniでerror_reporting = E_ALL | E_STRICT
およびerror_reporting = E_ALL | E_STRICT
、ただしPHPはまだエラーメッセージを表示しません。Apache仮想ホストも使用しています。
また、PHP5.3が提供しなければならない最も厳格なエラー報告は何ですか?私は自分のコードを可能な限り最新で将来を見越したものにしたいと思っています。
また、php.ini
ファイルに次のセットが含まれていることを確認する必要があります。そうしないと、デフォルトで設定されたログまたは仮想ホストの構成で指定されたログにのみエラーが記録されます。
display_errors = On
php.ini
ファイルは、サーバー上のすべてのPHPの基本設定です。ただし、これらはPHPコード内の任意の場所で簡単にオーバーライドおよび変更できます。適切なチェックは、display_errors
ディレクティブをphp.ini
ファイルに追加することです。エラーは表示されないが、ログに記録されている場合は、これを先頭に挿入しますエラーの原因となったファイル:
ini_set('display_errors', 1);
error_reporting(E_ALL);
これが機能する場合、コードの前の部分でエラー表示が無効になっています。
私は同じ問題を抱えていて、最終的にそれを解決しました。私の間違いは、/ etc/php5/cli/php.iniを変更しようとしたことですが、ここで別のphp.iniを見つけました:/ etc/php5/Apache2/php.ini、変更されたdisplay_errors =オン、ウェブサーバーを再起動し、動作しました!
私のようなぼんやりした人に役立つかもしれません。
Parallels Plesk Panel 10.4.4を使用する仮想サーバーでも同じ問題が発生しました。解決策は(考えてくれたZappaのおかげで)error_reporting値をE_ALLではなく32767に設定することでした。 Pleskの場合:ホーム>サブスクリプション>(ドメインの選択)>カスタマイズ> PHP設定> error_reporting-カスタム値の入力-32767
これは古い投稿ですが...私は頭痛を与えた同様の状況がありました。最後に、「@ include ...」でindex.phpにサブページを含めていたことがわかりました。「@」はdisplay_errorsがONであってもすべてのエラーを隠します
Php.iniファイルの構成を更新するときに、Apacheを再起動する必要がある場合があります。 apachectl restart
またはApache2ctl restart
などを実行してみてください。
また、iniファイルに display_errors = on
があることを確認してください。ただし、開発環境でのみ使用し、実稼働マシンでは使用しないでください。
また、最も厳格なエラー報告は、まさにあなたが引用したもの、E_ALL | E_STRICT
です。 the php docs でエラーレベルの詳細を確認できます。
error_reporting
フラグを確認します。E_ALL
でなければなりませんが、Pleskの一部のリリースでは、("E_ALL"
)の代わりに引用符(E_ALL
)があります。
この問題を解決しました引用符の削除("
)in php.ini
これから:
error_reporting = "E_ALL"
これに:
error_reporting = E_ALL
誰かが私の質問に似た問題を見つけた場合に備えて、ここに別の落とし穴を追加したいだけです。
Chrome(またはChromium)およびPHPを使用している場合、HTML属性内にあるPHPコードでエラーが発生し、ChromeはHTML要素全体を削除するため、ブラウザでPHPエラーが表示されません。
以下に例を示します。
<p>
<a href="<?=missingFunc()?>">test</a>
</p>
Chromeでこのコードを呼び出すと、開始<p>
タグを持つHTMLドキュメントのみを取得します。残りはありません。この<p>
の後にエラーメッセージやその他のHTMLコードはありません。これはnot PHPの問題です。 Firefoxでこのページを開くと、エラーメッセージが表示されます(HTMLコードの表示時)。したがって、これはChromeの問題です。
どこかに回避策があるかどうかわからない。これが発生した場合、Firefoxでページをテストするか、Apacheエラーログを確認する必要があります。
私も問題に遭遇しました。最後に解決策を見つけました。 UBUNTU 16.04 LTSを使用しています。
1)/ect/php/7.0/Apache2/php.ini
ファイル(/etc/php
異なるバージョンのPHP but Apache2/php.ini
はバージョンファイルの下にあります)、ERROR HANDLING AND LOGGING
セクションで次の値を設定します{display_error = On, error_reporting = E_ALL}
。
注-QUICK REFERENCE
セクションでは、これらの値のディレクティブを見つけることもできますが、変更しないでください。
2)Apacheサーバーを再起動しますSudo systemctl restart Apache2
私は同じ問題を抱えていましたが、障害のあるスクリプト自体の内部でini_set('display_errors', '1');
を使用したため、致命的/構文エラーで起動することはありません。最後に、これを私の.htaccessに追加して解決しました:
php_value auto_prepend_file /usr/www/{YOUR_PATH}/display_errors.php
display_errors.php:
<?php
ini_set('display_errors', 1);
error_reporting(-1);
?>
それにより、私はphp.ini
、特定のサブフォルダーに使用し、簡単に再び無効にすることができます。
変更しているphp.iniが/ etc/php5/Apache2フォルダーにあることを確認してください。そうでない場合、影響はありません...
このスレッドは古くてもまだですが、 this stackoverflow answer から良い回答を投稿する必要があると感じています。
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
これは、何時間も物事を動かそうとした後、確かに私を救った。これが誰かの助けになることを願っています。
私はこのスレッドが古いことを知っていますが、Ubuntuサーバーで同様の問題を解決したばかりで、このスレッドがPHPエラーを表示しません。
Php.iniでerror_reporting値の構成設定をいくつか試しました。 E_ALLから| E_STRICTからE_ALLおよびE_NOTICEまで、どれも機能しませんでした。ブラウザに構文エラーが表示されることはありませんでした(開発サーバーではかなり面倒です)。 error_reporting設定を「E_ALL」に変更した後、すべてが機能し始めました。 Ubuntu Oneric固有の問題かどうかはわかりませんが、Apacheを再起動すると、サーバーが提供していたHTMLページにエラーが表示され始めました。物事を混乱させる追加オプションとすべてのエラー報告が停止するようです。 HTH somone他。
私はちょうどこの同じ問題を経験しましたが、私の問題はphp.iniファイルではなく、単純に、Apacheサーバーを通常のユーザーとして起動していることがわかりました。 「Sudo /etc/init.d/Apache2 restart」を実行するとすぐに、エラーが表示されました。
Apacheでも同じ問題があり、PHP5.5。Inphp.ini
、次の行がありました。
error_reporting E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors Off
次の代わりに:
error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors=Off
(=
signがありませんでした)
PHP ISSを含むウィンドウでPHP $ ===を実行する場合、ISSページが表示されないようにします。
1)FastCGISettingsをダブルクリックし、PHPを編集します。StandardErrorModeをReturnStdErrLn500に設定します。
2)サイトにアクセスし、エラーページをダブルクリックし、500ステータスをクリックし、[機能設定の編集]、[エラーレスポンスを詳細エラーに変更]、[OK]の順にクリックします