web-dev-qa-db-ja.com

すべてのエラーを報告するようにCodeigniterを構成する方法

CIの_autoload.php_に$autoload['libraries'] = array('database');という行がありました。このため、空白のページが表示されていました。 _'database'_、オプションを削除すると、出力を取得し始めました。

ここで私の質問は、データベースの構成方法ではなく、CIを構成してその考え方を説明する方法です。 _'database'_を有効にすると、完全な空白ページだけが表示されました。 PHPログにエラー、Apacheログにエラー、CIログにエラーはありません。 PHPで_E_ALL_を設定しました。CI構成で_log_threshold_を_4_に設定しました。つまり、すべてのメッセージをログに記録する必要があります。する必要があります?

13
AppleGrew

CIのバージョンによって異なります。 <2.xの場合、最上位のindex.phpを編集し、E_ALLを使用するようにerror_reporting関数を調整します "

error_reporting(E_ALL);

> = 2.xの場合、最上位のindex.phpを編集し、ENVIRONMENTが次のように設定されていることを確認します。

define('ENVIRONMENT', 'development');

これは、error_reportingをE_ALLに設定します。

15
davidethell

次の内容で.htaccessファイルをウェブルートに作成します

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value error_reporting -1
php_value log_errors_max_len 0

うまくいけば、ログが有効になるはずです。
必ず本番サーバーで値をoffに設定し、レポートをに設定してください:)

12

以下の環境設定では、エラーが発生したときにPHPを強制的に表示します。

  • アプリケーション環境define( 'ENVIRONMENT'、 'development');/*
  • エラー報告

    if(defined( 'ENVIRONMENT')){switch(ENVIRONMENT){case 'development'://すべてのエラーを報告しますerror_reporting(E_ALL);

            // Display errors in output
            ini_set('display_errors', 1);
            break;
    
        case 'testing':
        case 'production':
            // Report all errors except E_NOTICE
            // This is the default value set in php.ini
            error_reporting(E_ALL ^ E_NOTICE);
    
            // Don't display errors (they can still be logged)
            ini_set('display_errors', 0);
        break;
    
        default:
            exit('The application environment is not set correctly.');
    }
    

    }

2
faryal rida

本当の理由はわかりませんが、PHPを残したphp.iniファイルを使用してインストールしました。後で、独自のPHPを使用してWAMPスタック全体をインストールしました。残したものを削除したとき以前のインストールのphp.iniファイルは、正常に機能し始めました。PHPバイナリは、まったく異なるディレクトリにある残りのphp.iniを使用していたようです;おそらく、そのディレクトリが環境PATHにあったためです。

1
AppleGrew