Display all php errors: basic & advanced usage
Содержание:
- Вступление
- Ошибка 500
- Ошибки:
- Отображать ошибки PHP через настройки в .htaccess
- Quickly Show All PHP Errors
- Log PHP errors to a file using the error_log() function
- PHP 5 предопределенные ошибки и журналы регистрации констант
- Display PHP Errors via .htaccess Configuration
- error_reporting() — функция работы с уровнем протоколируемых ошибок
- Log PHP Errors Through the Web Server Configuration
- Automatically Collect PHP Errors With Retrace APM
- Использование Whoops
- Enable Detailed Warnings and Notices
- In-depth With the error_reporting() function
- Создание настраиваемого обработчика исключений
- Отладка
- Исключение:
- Итоги статьи
Вступление
Найти ошибку, которая привела к некорректной или фатальной ошибки Joomla одна из самых трудных задач при работе с системой. Пожалуй, невозможно перечислить все вероятные ошибки, которые вы можете теоретически встретить при общении с Joomla. Более правильным будет указать пути, по которым нужно двигаться в поиске ошибок и их отладки.
Основные языки программирования, на которых написана CMS Joomla это два сценарных языка PHP и JavaScript. При этом сценарный язык (анг.scripting language) PHP является основным языком Joomla и, как правило, ошибки, возникающие при работе с Joomla это результат его неправильной (некорректной) работы.
В этой статье я сформулирую первые действия, что сделать сначала, чтобы осуществить правильный поиск ошибок и после найти отладку (способ исправления) «неправильного» скрипта вашей Joomla.
Прежде всего, ошибку нужно увидеть. Речь идет не о результатах ошибки (пропадании сайта и т.п.). Речь идет, как увидеть причину ошибки, если хотите определить диагноз ошибки. От этого зависит дальнейшая отладка системы и исправление ошибки.
Ошибка 500
Ошибка 500 это любая ошибка со стороны сервера, которая не расшифрована в остальных кодах 501-510. Это наиболее часто встречающаяся ошибка, связанная с ошибками в коде системы. Если при работе с системой Joomla вы в браузере видите сообщение об ошибке 500 , эта ошибка выдается сервером Apache и ее причину нужно смотреть в логе ошибок вашего веб-сервера. (О логах ошибок веб-сервера читать ТУТ).
Как правило, из лога ошибок, будет понятно, какой файл системы привел к ошибке. После этого нужно переходить к этому конкретному файлу и решать конкретную, уже локализованную причину ошибки. Но это не всегда так просто. Из журнала лога ошибок, бывает не понятно, какие конкретные действия приводят к ошибке и какой PHP -код ее сформировал.
Вообще говоря, интерпретатор PHP всегда определяет возникающие ошибки. И показ ошибок Вам, изначально, зависит от настроек конкретного сервера. Сервер должен быть настроен так, чтобы интерпретатор PHP имел возможность сообщить об ошибке, а вы могли увидеть это сообщение. Причем интерпретатору должен быть указан вид вывода сообщения об ошибке. Это или окно браузера или запись в журнале ошибок или и то и другое по выбору.
Настройка вывода ошибок зависит от вашего хостинга.
Вывод ошибок на рабочем сервере
На рабочем сервере (коммерческом хостинге) включение вывода ошибок ищите в настройках хостинга. Как правило, вывод ошибок по-умолчанию включен, и вывод ошибок настроен как вывод сообщений в журнал ошибок. Убедитесь, что эта функция сервера включена. Опять-таки, по — умолчанию, не имеет смысла включать на рабочем сервере вывод ошибок на экран. Эти ошибки будут видеть все гости сайта и это лишнее. Однако в критических, аварийных ситуациях, можно воспользоваться временно, выводом ошибок на экран. Об этом чуть ниже.
Вывод ошибок на локальном сервере
На локальном (домашнем) сервере, у вас есть все права на любые настройки сервера и вывод ошибок вы можете настроить сами. Наверное, все готовые платформы локального сервера (OpenServers, Денвер, Xmapp и т.д.) уже настроены на вывод ошибок в журнал и/или на экран. Но в том, то и прелесть локального сервера, вы всегда можете изменить любые его настройки.
Настроить вывод ошибок на локальном сервере нужно в файле php.ini.
Для разрешения вывода ошибок в файле php.ini должна быть строка:
error_reporting(E_ALL ^ E_NOTICE);// Добавлять сообщения обо всех ошибках, кроме ошибок NOTICE // Это значение включено по умолчанию в php.ini
Примечание: NOTICE ошибки это возможные, но не явные ошибки. Например, опечатка, предупреждение о плохом стиле, и.т.п.
error_reporting = E_ALL //Вывод всех ошибок//
Для вывода ошибок в журнал, должна быть строка:
log_errors = On
Для вывода ошибок на экран в файле php.ini должна быть строка:
display_errors = On
Вывод ошибок на экран, во время старта PHP
display_startup_errors=On
Понятно, что замена «on» на «off» все это отключит.
Повторюсь, интерпретатор PHP сам выводит сообщения об ошибках, нужно только разрешить и дать ему возможность (настроить) эти сообщения выводить в журнал на сервере, а при необходимости показывать их на экране.
Но вернемся к рабочим серверам и CMS Joomla. В Joomla есть функция в административной панели сайта, включив которую вы можете выводить ошибки системы на экран.
Ошибки:
Перед тем как начать изучать исключения, надо не много пройтись по ошибкам, как их отключать и наоборот, как их включить полностью.
Включение всех ошибок:
Сначала покажу как включить показ ошибок в PHP, это очень полезно при разработке, так как, вы видите все ошибки которые есть в программе,
Через файл php.ini:
Default
1 2 3 |
error_reporting=E_ALL display_errors=On display_startup_errors=On |
Через php скрипт:
PHP
1 2 3 |
ini_set(‘error_reporting’,E_ALL); ini_set(‘display_errors’,1); ini_set(‘display_startup_errors’,1); |
Таким образом вы включаете все ошибки, какой вариант использовать вам, это ваше дело, но я бы использовал через PHP скрипт, так как, когда вы закончите разработку в конкретно скрипте, вы легко это отключите.
Но бывает такое, что вы включили и где то вам наоборот мешает ошибка, это можно исправить с помощью оператора управления ошибкой или знаком «@».
В остальном про ошибки особо не чего сказать.
Отображать ошибки PHP через настройки в .htaccess
Включить или выключить отображение ошибок можно и с помощью файла .htaccess, расположенного в каталоге сайта.
.htaccess также имеет директивы для displaystartuperrors и display_errors.
Вы можете настроить displayerrors в .htaccess или в вашем файле PHP.ini. Однако многие хостинг-провайдеры не разрешают вам изменять ваш файл PHP.ini для включения displayerrors.
В файле .htaccess также можно включить настраиваемый журнал ошибок, если папка журнала или файл журнала доступны для записи. Файл журнала может быть относительным путем к месту расположения .htaccess или абсолютным путем, например .
Quickly Show All PHP Errors
The quickest way to display all php errors and warnings is to add these lines to your PHP code file:
What Do These Lines of Code Do Exactly?
The ini_set function will try to override the configuration found in your PHP ini file.
The display_errors and display_startup_errors are just two of the directives that are available. The display_errors directive will determine if the errors will be displayed or hidden to the user. Usually, the dispay_errors directive should be turned off after development.
The display_startup_errors, however, is a separate directive because the display_errors doesn’t handle the errors that will be encountered during PHP’s startup sequence. The list of the directives that can be overridden by the ini_set function is found in the official documentation.
Unfortunately, these two directives won’t be able to display parse errors such as missing semicolons or missing curly braces. In this case, the PHP ini configuration must be modified.
Log PHP errors to a file using the error_log() function
During production, error messages must not be shown to the end users, but this information must still be recorded for tracing purposes. The best way to record these error messages on a production web application is to store it in log files.
One easy way to use log files is to use the error_log function, which accepts four parameters. The only required parameter is the first parameter, which contains the details about the error or what’s to be logged. The type, destination, and header are all optional parameters for this function.
The type parameter, if not defined, will be 0 by default, which means this log information will be appended to whatever log file is defined in the web server.
To log messages in a separate file defined by the configuration of the web server, then type 3 must be used. The third parameter will serve as the location of the log file and must be writable by the web server. The location of the log file can be a relative path to where this code is called or an absolute path.
PHP 5 предопределенные ошибки и журналы регистрации констант
Значение | Постоянной | Описание |
---|---|---|
1 | E_ERROR | Фатальные ошибки во время выполнения. Ошибки, которые невозможно восстановить. Выполнение скрипта приостановлено |
2 | E_WARNING | Предупреждения во время выполнения (не фатальные ошибки). Выполнение скрипта не остановлено |
4 | E_PARSE | Ошибки синтаксического анализа во время компиляции. Ошибки синтаксического анализа должны генерироваться только синтаксическим анализатором |
8 | E_NOTICE | Уведомления во время выполнения. Сценарий нашел то, что может быть ошибкой, но также может произойти при запуске сценария обычно |
16 | E_CORE_ERROR | Фатальные ошибки при запуске PHP. Это как е_еррор, за исключением того, что генерируется ядром PHP |
32 | E_CORE_WARNING | Не фатальные ошибки при запуске PHP. Это как е_варнинг, за исключением того, что генерируется ядром PHP |
64 | E_COMPILE_ERROR | Фатальные ошибки во время компиляции. Это похоже на е_еррор, за исключением того, что он генерируется движком Zend Scripting Engine |
128 | E_COMPILE_WARNING | Нефатальные ошибки во время компиляции. Это похоже на е_варнинг, за исключением того, что он генерируется движком Zend Scripting Engine |
256 | E_USER_ERROR | Фатальная ошибка, генерируемая пользователем. Это как е_еррор, за исключением того, что генерируется в PHP-коде с помощью функции PHP тригжер_еррор () |
512 | E_USER_WARNING | Предупреждение, сгенерированное пользователем, не являющееся фатальным. Это как е_варнинг, за исключением того, что генерируется в PHP-коде с помощью функции PHP тригжер_еррор () |
1024 | E_USER_NOTICE | Уведомление, созданное пользователем. Это как е_нотице, за исключением того, что генерируется в PHP-коде с помощью функции PHP тригжер_еррор () |
2048 | E_STRICT | Включите, чтобы PHP предложить изменения в ваш код, который будет обеспечивать лучшую совместимость и передовой совместимости вашего кода (с PHP 5, но не включены в е_алл до PHP 5,4) |
4096 | E_RECOVERABLE_ERROR | Устранимая фатальная ошибка. Указывает, что произошла, вероятно, опасная ошибка, но не оставила ядро в нестабильном состоянии. Если ошибка не перехвачена определяемым пользователем дескриптором, приложение прерывается, как это было е_еррор (с PHP 5,2) |
8192 | E_DEPRECATED | Уведомления во время выполнения. Включите это для получения предупреждений о коде, который не будет работать в будущих версиях (с PHP 5,3) |
16384 | E_USER_DEPRECATED | Созданное пользователем предупреждающее сообщение. Это как е_депрекатед, за исключением того, что генерируется в PHP-коде с помощью PHP функции тригжер_еррор () (с PHP 5,3) |
32767 | E_ALL | Включить все ошибки и предупреждения PHP (за исключением е_стрикт в версиях < 5,4) |
❮ Назад
Дальше ❯
Display PHP Errors via .htaccess Configuration
Developers usually have access to the directory files. The directive for showing PHP errors can also be enabled or disabled using the .htaccess file located in the root or public directory of the project.
Similar to what will be added to the PHP code to show PHP errors, .htaccess also has directives for display_startup_errors and display_errors. The advantage of showing or disabling error messages in this manner is that development and production can have different .htaccess files, where the production suppresses the displaying of errors.
Depending on which files you have access to and how you do deployments and server configurations, you may want to configure display_errors in .htaccess or your PHP.ini file. Many hosting providers will not allow you to modify your PHP.ini file to enable display_errors.
In the .htaccess file, a custom error log can also be enabled as long as the log folder or the log file is writable by the web server. The log file can be a relative path to where the .htaccess is located, or it can be an absolute path such as /var/www/html/website/public/logs.
error_reporting() — функция работы с уровнем протоколируемых ошибок
Функция задает значение директивы во время выполнения скрипта. В PHP есть много уровней ошибок. Используя эту функцию, можно задать уровень ошибок во время выполнения скрипта, которые попадут в отчет (или будут из него исключены). Если необязательный аргумент в скобках не задан, вернет текущее значение уровня протоколирования ошибок. Именно эта особенность позволяет сперва сохранить текущее значение уровня протоколирования, что мы и делаем в первой строчке, запоминая текущий уровень в переменную :
Во второй строчке меняем уровень протоколирования (вывода) ошибок на значение , воспользовавшись советом из официальной документации:
Это выглядит следующим образом:
В конце работы скрипта, требующего отладки, можно вернуть уровень протоколирования, заданный в , который мы заблаговременно сохранили в переменную . Именно это и происходит в предпоследней строке:
Log PHP Errors Through the Web Server Configuration
To avoid changing parameters in the .htaccess or adding some lines in the PHP code to show errors, then the best way to log errors is defining it in the web server configuration file.
For Apache, these files must be added to the virtual host of the specific website or application, usually located inside the sites-available folder for Ubuntu or httpd-vhosts file in Windows.
For nginx, similar to Apache, the directive is just called error_log. For both Apache and nginx web servers, the log files must be writable by the web server. Luckily, upon installation, the folders for the log files of these two web servers are already writable.
Automatically Collect PHP Errors With Retrace APM
Retrace is an APM (Application Performance Management) tool offered by Stackify. But the tool goes beyond monitoring the performance of your application. It allows you to do centralize logging, perform code profiling, and stay on top of server and application metrics.
One of the great features of Retrace is its ability to automatically collect all unhandled errors in your PHP application. Our PHP extension will catch the exception and forward them automatically to Retrace.
With Retrace, all the errors are automatically logged and formatted so that it can be viewed easily. Retrace will not only show what errors have occurred but also analyzes where and what caused it. The time and number of occurrences are also shown in the logs so that it would be a lot easier to focus on which issue to prioritize.
To learn more about Retrace, please check out the Retrace feature page on error tracking.
About Juliet Mendez
Juliet Mendez is a Professor in the Department of Computer and Information Sciences and a PhD student specializing in Information Technology. She has a background in CCNA, computer programmings such as PHP, JAVA, Mobile Development, and Project Management.
- Display All PHP Errors: Basic & Advanced Usage — March 27, 2020
- PHP Performance Optimization Guide — October 9, 2018
- 5 PHP Performance Testing Tools You Need To Know — September 26, 2018
- Laravel Eloquent Tutorial With Examples — September 24, 2018
- Get Detailed PHP Trater — August 20, 2018
Использование Whoops
Установка
Как и любую современную библиотеку, whoops можно установить с помощью composer:
composer require filp/whoops
Но я бы рекомендовал .
Подключение и настройка
В базовом варианте с подключением красивого вывода всё просто до безобразия:
$whoops = new \Whoops\Run; $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler); $whoops->register();
Для более детального погружения и понимания как это можно настроить под ваши нужды, разработчики предоставили набор примеров, которые вы сможете найти в папке . А также подробную документацию по API.
Настройка ссылки для открытия файла
Для готовых обработчиков ссылок всё просто:
use Whoops\Handler\PrettyPageHandler; $handler = new PrettyPageHandler; $handler->setEditor('sublime');
Параметр может принимать следующие значения:
- — Emacs
- — IDEA
- — MacVim
- — PhpStorm (MacOS)
- —Sublime Text 2 and possibly 3 (на OS X вам, возможно, потребуется специальный обработчик)
- — Textmate
- — xdebug ()
- — VSCode ()
Добавление обработчика ссылки для своего редактора тоже очень просто:
$handler->setEditor(function($file, $line) { return "whatever://open?file=$file&line=$line"; });
Подробнее можно посмотреть тут.
Enable Detailed Warnings and Notices
Sometimes, the warnings that seem not to affect the application at the start will cause some fatal errors in certain conditions. These warnings must be fixed because this means that the application won’t run normally under certain scenarios. In case these warnings cause a lot of errors, then it would be more practical to hide the errors and just show what the warning messages are.
For a developer, showing warnings and hiding errors is just as simple as adding a single line of code. To show warnings and notices, the parameter for the error reporting function will be “E_WARNING | E_NOTICE”. The error_reporting function can accept E_ERROR, E_WARNING, E_PARSE, and E_NOTICE parameters as bitwise operators. To report all errors except for notices, then the parameter is “E_ALL & ~E_NOTICE” where E_ALL stands for all the possible parameters of the error_reporting function.
In-depth With the error_reporting() function
The error reporting function is a built-in PHP function that allows developers to control which and how many errors will be shown in the application. Remember, the PHP ini configuration has an error_reporting directive that will be set by this function during runtime.
To remove all errors, warnings, parse messages, and notices, the parameter that should be passed to the error_reporting function is zero. It would be not practical to have this line of code in each of the PHP files. It would be better to turn off report messages in the PHP ini file or in the .htaccess.
PHP allows variables to be used even when not declared. This is not a standard practice because undeclared variables will cause issues for the application once it is used in loops and conditions. Sometimes, this also happens because the declared variable has a different spelling than the variable being used for conditions or loops. When E_NOTICE is passed in the error_reporting function, then these undeclared variables will be displayed in the web application.
The error reporting function allows you to filter which errors can be shown. The “~” character means “not” or “no” so the parameter ~E_NOTICE means not to show notices. Notice the “&” and “|” characters in between the possible parameters. The “&” character is for “true for all”, while the “|” character represents either one as long as it is true. These two characters have the same meaning in PHP conditions OR and AND.
These three lines of codes do exactly the same thing, it will show all PHP errors. The error_reporting(E_ALL) is the most widely used among developers to show error messages because it is more readable and understandable.
Создание настраиваемого обработчика исключений
Вы можете определить собственный собственный обработчик исключений. Используйте следующую функцию для установки пользовательской функции обработчика исключений.
Здесь exception_handler — это имя вызываемой функции, когда происходит неперехваченное исключение. Эта функция должна быть определена перед вызовом set_exception_handler().
пример
<?php function exception_handler($exception) { echo "Uncaught exception: " , $exception->getMessage(), "\n"; } set_exception_handler('exception_handler'); throw new Exception('Uncaught Exception'); echo "Not Executed\n"; ?>
Предыдущие статьи
- Регулярные выражения PHP -Кванторы, мета-символы и модификаторы — 12/04/2018 19:20
- Сеансы PHP — Запуск, уничтожение, сессии без файлов cookie — 12/04/2018 19:20
- PHP-файлы cookie — Настройка, доступ и удаление cookie — 12/04/2018 19:19
- Файлы PHP и ввод-вывод — открытие, чтение, запись и закрытие файла — 12/04/2018 19:18
- Методы PHP GET и POST, переменная $_REQUEST — 12/04/2018 19:17
- Загрузка файлов PHP — Создание формы и сценария загрузки — 12/04/2018 19:16
- Объектно-ориентированное программирование в PHP — 12/04/2018 19:15
- Включение файла в PHP — Функция include и require — 12/04/2018 19:14
- Предопределенные переменные PHP — Суперглобальные массивы и переменные сервера — 12/04/2018 19:13
- Функции с параметрами, динамические вызовы, создание функции в PHP — 12/04/2018 19:12
- Типы операторов PHP — категории, присваивания, логические операторы — 12/04/2018 19:11
- Типы циклов PHP for, foreach, continue, break, do-while — 12/04/2018 19:10
- Принятие решений PHP — ElseIf Switch — 12/04/2018 19:09
- Типы констант PHP — Различия между константами и переменными — 12/04/2018 19:08
- Массивы PHP: Многомерные, ассоциативные и числовые массивы — 12/04/2018 19:07
- Типы переменных, область и имена переменных в PHP — 12/04/2018 19:06
- Строки в PHP, strpos, strlen, конкатенация строк — 12/04/2018 19:05
- Дата и время, получение, преобразование времени в PHP — 12/04/2018 19:03
- Обзор синтаксиса, канонические теги, комментирование PHP-кода — 12/04/2018 19:02
- Введение в PHP. Общее использование, характеристики PHP — 12/04/2018 19:01
Отладка
Иногда для отладки кода нужно отследить что происходило с переменной или объектом на определённом этапе, для этих целей есть функция debug_backtrace() и debug_print_backtrace() которые вернут историю вызовов функций/методов в обратном порядке:
<?php function example() { echo '<pre>'; debug_print_backtrace(); echo '</pre>'; } class ExampleClass { public static function method () { example(); } } ExampleClass::method();
В результате выполнения функции будет выведен список вызовов приведших нас к данной точке:
#0 example() called at [/www/education/error/backtrace.php:10] #1 ExampleClass::method() called at [/www/education/error/backtrace.php:14]
Проверить код на наличие синтаксических ошибок можно с помощью функции php_check_syntax() или же команды , но я не встречал использования оных.
Assert
Отдельно хочу рассказать о таком экзотическом звере как assert() в PHP, собственно это кусочек контрактной методологии программирования, и дальше я расскажу вам как я никогда его не использовал 🙂
Первый случай – это когда вам надо написать TODO прямо в коде, да так, чтобы точно не забыть реализовать заданный функционал:
// включаем вывод ошибок error_reporting(E_ALL); ini_set('display_errors', 1); // включаем asserts ini_set('zend.assertions', 1); ini_set('assert.active', 1); assert(false, "Remove it!");
В результате выполнения данного кода получим :
Warning: assert(): Remove it! failed
PHP7 можно переключить в режим exception, и вместо ошибки будет всегда появляться исключение :
// включаем asserts ini_set('zend.assertions', 1); ini_set('assert.active', 1); // переключаем на исключения ini_set('assert.exception', 1); assert(false, "Remove it!");
В результате ожидаемо получаем не пойманный . При необходимости, можно выбрасывать произвольное исключение:
assert(false, new Exception("Remove it!"));
Второй вариант использования – это создание некоего подобия TDD, но помните – это лишь подобие. Хотя, если сильно постараться, то можно получить забавный результат, который поможет в тестировании вашего кода:
// callback-функция для вывода информации в браузер function backlog($script, $line, $code, $message) { echo "<h3>$message</h3>"; highlight_string ($code); } // устанавливаем callback-функцию assert_options(ASSERT_CALLBACK, 'backlog'); // отключаем вывод предупреждений assert_options(ASSERT_WARNING, false); // пишем проверку и её описание assert("sqr(4) == 16", "When I send integer, function should return square of it"); // функция, которую проверяем function sqr($a) { return; // она не работает }
Третий теоретический вариант – это непосредственно контрактное программирование – когда вы описали правила использования своей библиотеки, но хотите точно убедится, что вас поняли правильно, и в случае чего сразу указать разработчику на ошибку (я вот даже не уверен, что правильно его понимаю, но пример кода вполне рабочий):
/** * Настройки соединения должны передаваться в следующем виде * * * * @param $settings */ function setupDb ($settings) { // проверяем настройки assert(isset($settings), 'Db `host` is required'); assert(isset($settings) && is_int($settings), 'Db `port` is required, should be integer'); assert(isset($settings), 'Db `name` is required, should be integer'); // соединяем с БД // ... } setupDb();
Если у вас есть живой опыт использования – поделитесь со мной, буду благодарен. И да, вот вам ещё занимательно чтива по этой теме – PHP Assertions, с таким же вопросом в конце 🙂
Исключение:
Теперь пришло время изучить в PHP 7 исключения, на мой взгляд самая сложная часть в ООП, по крайне мере я долго не мог её понять, но постараюсь описать её максимально понятно.
Что такое исключения:
Исключение это механизм языка программирования, которое позволяет отлавливает ошибки и выводить какую либо информацию или сообщение.
Исключение в PHP 7:
Давайте сначала я покажу вам не большой код, и потом уже его разберём.
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Создаём функцию functioninverse($x){ // Условие если переменная $x равна нулю if(!$x){ // Генерация исключения thrownewException(‘Деление на ноль.’); } return1$x; } try{ echoinverse(5).»</br>»; echoinverse().»</br>»; // Если исключение было поймано }catch(Exception$e){ // То выводим ошибку этого исключения echo’Выброшено исключение: ‘.$e->getMessage().»</br>»; } |
Исключение можно сгенерировать используя оператор throw, и можно поймать или перехватить с помощью оператора catch.
Код который генерирует исключение, должен быть окружен блоком try, для того, чтобы можно было перехватить исключение, и каждый блок try должен иметь как минимум один соответствующий ему блок catch, это очень важно. Вот что получилось на выходе
Вот что получилось на выходе.
Как видите сначала он просто разделил один на два, всё в порядке, но потом, когда должно делится на ноль, то он выводит ошибку исключения, что идёт деление на ноль.
В остальном, в принципе тут не чего рассказывать.
Итоги статьи
- Итак, при работе с Joomla у вас «выскакивают» ошибки на стороне сервера приводящие к некорректной работе системы или ее отключении (Error). Что делать?
- Если вы не программист и не находитесь в процессе разработки и к этому у вас рабочий (не локальный сервер), то прямиком «идете» на сервер и смотрите журнал ошибок (лог ошибок);
- Если журнал ошибок отсутствует, то в настройках сервера ищите и включаете запись ошибок в журнал;
- Если из журнала не удалось понять причину ошибки, включаете режим «Отладка системы» в административной панели сайта;
- Если режим отладки не включается, обращаетесь в support сервера с просьбой такой режим временно включить. Включается он в файле php.ini;
- Если вы работаете на локальном (домашнем) сервере, то самостоятельно проверьте настройки возможности интерпретатора PHP для вывода, показа и записи PHP ошибок, возникающих при работе. Опять таки, файл php.ini.
Это все, что хотелось сказать про Поиск и вывод PHP ошибок Joomla!
Joomla-abc.ru
Другие статьи
- Fatal error: Call to a member function getTag() on a non-object in /var/…/libraries/cms/application/site.php on line
- Notice – Only variables should be assigned by reference in ошибка
- Как расшифровать записи в логе ошибок Apache
- Как расшифровать записи в логе событий по FTP
- Код состояния HTTP 2xx
- Критическая ошибка соединения с базой данных
- Ошибка Call to a member function getTag() on null на Joomla 3.8.x
- Ошибка Forbidden access (Flooding) компонента SH404
- Ошибка Joomla – JAuthentication: :__construct: Не удается загрузить библиотеки проверки подлинности
- Ошибка MySQL, #1060 Error SQL DB на CMS Joomla