Подтвердить что ты не робот

Как настроить Codeigniter для сообщения обо всех ошибках?

У меня была строка - $autoload['libraries'] = array('database');, в CI autoload.php. Из-за этого я получал пустую страницу. Когда я удалил параметр 'database', тогда я начал получать вывод.

Теперь мой вопрос заключается не в настройке базы данных, а в том, как настроить CI, чтобы говорить о ней. Когда 'database' был включен, все, что я получил, было полной пустой страницей. Ошибка в журнале php, ошибки в журнале Apache и ошибок в журнале CI. В PHP я установил E_ALL. В моей конфигурации CI я установил log_threshold в 4, то есть все сообщения должны быть зарегистрированы. Что еще мне нужно сделать?

4b9b3361

Ответ 1

Это зависит от вашей версии CI. Для < 2.x отредактируйте индекс верхнего уровня index.php и настройте функцию error_reporting для использования E_ALL "

error_reporting(E_ALL);

Для >= 2.x отредактируйте индекс верхнего уровня index.php и убедитесь, что ENVIRONMENT установлен как:

define('ENVIRONMENT', 'development');

который устанавливает error_reporting в E_ALL.

Ответ 2

Создайте файл .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

Надеюсь, это должно включить ваши журналы.
Удостоверьтесь, что значения отключены и сообщаются 0 на вашем рабочем сервере:)

Ответ 3

Следующие настройки среды заставят PHP отображать ошибки по мере их возникновения:

  • ОБЛАСТЬ ПРИМЕНЕНИЯ определить ("ОКРУЖАЮЩАЯ СРЕДА", "Развитие"); /*
  • ОТЧЕТ ОБ ОШИБКАХ

    если (определено ("ОКРУЖАЮЩАЯ СРЕДА")) {   переключатель (ОКРУЖАЮЩАЯ СРЕДА)   {       кейс "разработка":           // Сообщить обо всех ошибках           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.');
    }
    

    }

Ответ 4

Я не уверен, в чем была настоящая причина, но у меня была установка PHP с оставленным файлом php.ini. Позже я установил полный пакет WAMP со своим собственным PHP. Когда я удалил оставшийся файл php.ini из предыдущей установки, он начал работать так, как должен. Кажется, что двоичные файлы PHP в новой установке использовались с использованием левого php.ini, который был в совершенно другом каталоге; возможно, потому, что этот каталог находился в среде PATH.