Налагоджувальні засоби
Системные функции
//
- phpinfo(int $flags = INFO_ALL): bool отправляет в выводной поток информацию о всех параметрах PHP или параметрах выбранного флага, которые содержат информацию о настройках компиляции PHP, о модулях, версии, сервере и среде выполнения, окружении, версии ОС, путях, основных и локальных значениях настроек конфигурации, HTTP-заголовках и лицензии PHP
- ini_set(string $option, string|int|float|bool|null $value): string|false устанавливает значение заданного параметра конфигурации, которое будет действовать до завершения скрипта, а после завершения вернется к исходному
- ini_set('log_errors', true) включает логирование ошибкок
- ini_set('error_log', '/home/reks/domains/reks.biz/logs/php-error-log' ) назначает файл для логирование ошибок
- ini_set('display_errors', 1) - устанавливает вывод ошибок на экран вместе с остальным выводом, применяется только для разработки и отладки
- и другие... //www.php.net
- php_sapi_name(): string|false возвращает тип интерфейса (Server API, SAPI), который использует PHP
- 'cli' указывает на вызов в командной строке консоли
- неполный список других значений: apache, apache2handler, cgi, cgi-fcgi, cli-server, embed, fpm-fcgi, litespeed, phpdbg
- error_log( string $message, int $message_type = 0, ?string $destination = null, ?string $additional_headers = null ): bool Отправляет сообщение об ошибке в лог веб-сервера или в пользовательский файл
Ошибка 500 (Internal Server Error)
При выполнении PHP ошибка сервера 500 может произойти и не оставить никаких следов в логах, несмотря на команды логирования, если произойдет на этапе синтаксической проверки до начала выполнения php-команд. Поиск источника такой ошибки может стать проблемой слепого поиска "черной кошки в темной комнате".
В такой ситуации следует создать другой отладочный скрипт и вызвать скрипт с ошибкой из него:
1 2 3 4 5 6 7 |
<?php ini_set('log_errors', true); ini_set('error_log', '/home/reks/domains/reks.biz/logs/php-error-log'); ini_set('display_errors', 1); error_reporting(E_ALL); include('myscript.php'); ?> |
Функции !!!
//
- set_time_limit(int $seconds): bool задает время в секундах, в течение которого скрипт должен завершить работу, если скрипт не успевает, вызывается фатальная ошибка; по умолчанию даётся 30 секунд, либо время, записанное в настройке max_execution_time в php.ini (если такая настройка установлена).
debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array выводит стек вызовов функций PHP в массив
- DEBUG_BACKTRACE_PROVIDE_OBJECT Нужно ли заполнять данные для ключа object
- DEBUG_BACKTRACE_IGNORE_ARGS Нужно ли исключить аргументы всех функций/методов в ключе "args" для уменьшения расхода памяти
1 2 3 4 5 |
file_put_contents( '/home/reks/reks.biz/www/debug_backtrace', json_encode( debug_backtrace( ), JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT ), FILE_APPEND ); |