Отключить ошибку отображения PHP.ini
Я пытаюсь отключить все ошибки на своем веб-сайте. Я следил за различными учебниками о том, как это сделать, но я продолжаю читать и открывать сообщения об ошибках. Есть что-то, чего я не хватает? Я пробовал следующее в файле php.ini:
;Error display
display_startup_errors = Off
display_errors = Off
html_errors = Off
docref_root = 0
docref_ext = 0
По какой-то причине, когда я делаю вызов fileopen() для файла, который не существует, я все равно получаю сообщение об ошибке. Это не безопасно для живого веб-сайта по понятным причинам.
Спасибо
Ответы
Ответ 1
Я всегда использую что-то вроде этого в файле конфигурации:
// toggle this to change the setting
define('DEBUG', true);
// you want all errors to be triggered
error_reporting(E_ALL);
if(DEBUG == true)
{
// you're developing, so you want all errors to be shown
display_errors(true);
// logging is usually overkill during dev
log_errors(false);
}
else
{
// you don't want to display errors on a prod environment
display_errors(false);
// you definitely wanna log any occurring
log_errors(true);
}
Это позволяет легко переключаться между настройками отладки. Вы можете улучшить это, проверив, на каком сервере выполняется код (dev, test, accept, prod) и соответствующим образом измените ваши настройки.
Обратите внимание, что никакие ошибки не будут регистрироваться, если error_reporting установлен в 0, как это заметил Корри.
Ответ 2
Вы должны учитывать не отображать свои сообщения об ошибках!
Установите ini_set('display_errors', 'Off');
в свой php-код (или, если это возможно, прямо в ваш ini), и оставьте error_reporting на E_ALL
или любом виде сообщений, которые вы хотели бы найти в своих журналах.
Таким образом, вы можете обрабатывать ошибки позже, пока ваши пользователи все еще не видят их.
Полный пример:
define('DEBUG', true);
error_reporting(E_ALL);
if (DEBUG)
{
ini_set('display_errors', 'On');
}
else
{
ini_set('display_errors', 'Off');
}
Или просто (тот же эффект):
define('DEBUG', true);
error_reporting(E_ALL);
ini_set('display_errors', DEBUG ? 'On' : 'Off');
Ответ 3
В php.ini
Комментарий,
error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE
Поместив ;
перед ним (например, ;error_reporting = E_ALL & ~E_NOTICE
)
Для отключения в одном файле поместите error_reporting(0);
после открытия тега php
.
Ответ 4
в php.ini вы должны попробовать это для всех ошибок
error_Reporting = off
Ответ 5
Позвольте мне быстро резюмировать это для справки:
Если ваш код громоздок и каким-то образом сбрасывает эти параметры в другом месте во время выполнения, то альтернативный и быстрый способ - определить пользовательский обработчик ошибок, который просто выводит все уведомления/предупреждения/ошибки вверх:
set_error_handler(function(){});
Опять же, это не рекомендуется, просто альтернатива.
Ответ 6
в php.ini вы должны попробовать это для всех ошибок
display_errors = On
Ответ 7
Вы также можете использовать PHP error_reporting();
// disable it all for current call
error_reporting(0);
Если вы хотите игнорировать ошибки только от одной функции, вы можете добавить символ @
.
@any_function(); // errors are ignored
Ответ 8
Почему отключить?
Вы можете использовать error_reporting();
- http://php.net/manual/en/function.error-reporting.php или поставить @- http://www.php.net/manual/en/language.operators.errorcontrol.php перед файловым файлом().
Ответ 9
Я обычно использую php, встроенный в обработчики ошибок, который может обрабатывать каждую возможную ошибку вне синтаксиса и по-прежнему отображать хорошую страницу "Вниз для обслуживания", иначе:
Отформатировать ошибку PHP на рабочем сервере
Ответ 10
Откройте файл php.ini(если вы используете Linux - sudo vim/etc/php5/apache2/php.ini)
Добавьте эти строки в этот файл
error_reporting = E_ALL & ~E_WARNING
(Если вам нужно отключить другие ошибки → error_reporting = E_ALL и ~ E_DEPRECATED и ~ E_STRICT и ~ E_NOTICE и ~ E_WARNING)
display_errors = On
И, наконец, вам нужно перезапустить сервер APACHE.
Ответ 11
данные = {метки: ["1", "2", "3", "4", "5"], наборы данных: [{метка: "d1", backgroundColor: "rgba (182,127,0,1)", borderColor: "rgba (117,61,41,1)", borderWidth: 1, данные: [0, 78, 64, 90, 97]}, {label: "d2", backgroundColor: "rgba (71,161,65, 1) ", borderColor:" rgba (36,93,56,1) ", borderWidth: 1, данные: [27, 63, 46, 64, 43]}, {label:" d3 ", backgroundColor:" rgba ( 255,141,106,1) ", borderColor:" rgba (99,60,32,1) ", borderWidth: 1, данные: [18, 50, 23, 83, 35]}, {label:" d4 ", backgroundColor:" rgba (160,160,160,1) ", borderColor:" rgba (60,60,60,1) ", borderWidth: 1, данные: [152, 141, 170, 194, 128], yAxisID: 'y-axis-2' ,}]}; var options = {scale: {yAxes: [{categoryPercentage: 0.6, barPercentage: 1,}, {id: 'y-axis-2', тип: 'category', отображение: true, позиция: 'left', categoryPercentage: 0, barPercentage: 1, barThickness: 70, gridLines: {offsetGridLines: true}}],}, legend: {display: false}};
var barChart = новая диаграмма ($ ("# myChart"), {тип: 'horizontalBar', данные: данные, опции: опции});
Ответ 12
это мало в случае php fpm. Это был еще один файл конфигурации, который может включить display_error. Вы должны найти www.conf, в моем случае он находится в каталоге /etc/php/7.1/fpm/pool.d/
Вы должны найти php_flag[display_errors] = on
и отключить его php_flag[display_errors] = off
это должно решить проблему