Добрый день!
Что такое режим отладки или “дебаг” и как его мне его включить на сайте WordPress?
Ответ
Режим отладки больше нужен для проверки изменений, сделанных в коде. Например, Вы что-то изменили или добавили в файл Вашей темы functions.php, а правки оказались с ошибкой. В итоге Вы увидите белый экран без каких-либо объяснений что случилось. Режим отладки или “дебаг” сообщит об ошибке и даже укажет в какой именно строке файла она содержится.
Все действия по включению/отключению режима отладки производятся в основном конфигурационном файле wp-config.php, который находится в корневом каталоге Вашего сайта
WordPress имеет широкие возможности вывода ошибок во время отладки кода. Наиболее грамотным и безопасным считается вывод ошибок не на экран, а запись в файл.
Во-первых, сначала режим нужно задействовать. За это отвечает следующая команда:
define( ‘WP_DEBUG’, true );
Отметим, что в таком случае все ошибки и предупреждения будут выводиться на экран. Следующие строки запретят визуальный показ ошибок, записывая все сообщения о них в специальный файл, который находится по адресу /wp-content/debug.log.
Гайд по Debug Mode в играх про Соника | За Гранью 10
define( ‘WP_DEBUG_LOG’, true ); define( ‘WP_DEBUG_DISPLAY’, false );
В итоге, чтобы включить “дебаг”-режим, необходимо в файл wp-config.php добавить следующие строки кода:
// включение режима отладки define( ‘WP_DEBUG’, true ); // запись ошибок в файл /wp-content/debug.log define( ‘WP_DEBUG_LOG’, true ); // запрет вывода ошибок на экран define( ‘WP_DEBUG_DISPLAY’, false );
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.
Источник: wpschool.ru
Настройка отладки php-кода при помощи Xdebug
Классические методы отладки на PHP — использование функций error_log, print_r и var_dump. Их проблема в том, что они не помогают отслеживать сам процесс работы кода. Однако с этой задачей справляется Xdebug — один из самых популярных инструментов среди PHP-разработчиков, которые хотят работать, а не страдать.
В этой статье будет рассмотрена отладка PHP с помощью связки Xdebug и VSCode. Если вы пользуетесь PHPStorm, то проблем тоже не будет — настройка выполняется даже проще и быстрее.
Возможности Xdebug
Xdebug — это расширение для PHP, которое позволяет использовать удаленный отладчик в IDE через брейк-пойнты. С его помощью вы можете отслеживать значения переменных. Как итог — ошибки в коде обнаруживаются быстрее, чем при использовании error_log, print_r и var_dump.
Еще одна полезная функция — трассировка стека. Она выводит подробный путь, который привел приложение к ошибке. Он содержит параметры, переданные в функцию. Xdebug также можно использовать как профайлер для поиска узких мест кода. Если добавить внешние инструменты, то получится визуализировать графики производительности.
Sonic Mania Plus: level select & debug mode cheats for Mania Mode
Например, можно использовать WebGrind — набор PHP-скриптов для удобного вывода статистики прямо в браузере.
Кроме того, с помощью Xdebug вы можете проследить, какая часть кода выполняется в процессе запроса. Это дает информацию о том, как хорошо код покрыт тестами.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подключение Xdebug
Для работы Xdebug PHP должен быть в режиме CGI. Посмотрим на примере хостинга Timeweb, как его включить.
Подключаемся к серверу через SSH. Можно использовать консоль в панели управления Timeweb.
Переходим в папку cd-bin сайта:
// Вместо wordpress — директория вашего сайта cd wordpress/public_html/cgi-bin/
Создаем символическую ссылку командой:
// Укажите нужную вам версию обработчика вместо php5.3 ln -s /opt/php5.3/bin/php-cgi php5.3.cgi
Остаемся в директории cgi-bin и копируем файл php.ini:
cp /etc/php53/cgi/php.ini ./
Добавляем в файл .htaccess сайта две строки:
Action php5.3-script /cgi-bin/php5.3.cgi AddType php5.3-script .php
Теперь мы можем управлять параметрами PHP директивами в файле php.ini. Он находится в папке cgi-bin. Открываем его и вставляем в конце следующие строки:
zend_extension = xdebug.so xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=3083 xdebug.idekey=VSCODE xdebug.remote_autostart=1
Если указанный порт занят, укажите другой. Можно использовать стандартный для Xdebug — 9000. В качестве idekey я указал VSCODE. Если будете настраивать конфигурацию для PHPStorm, впишите его.
Чтобы проверить, работает ли Xdebug, создадим в корне сайта файл Myfile.php со следующим содержимым:
phpinfo(); ?>
Открываем файл в браузере и проверяем, что все параметры указаны верно.
Организация удаленного подключения
Чтобы выполнять PHP Debug на локальной машине, нужно настроить связь IDE и сервера через SSH-туннель.
На Linux все выполняется парой команд.
// Генерируем пару ключей и сохраняем их в папке .ssh на локальной машине ssh-keygen -t rsa
Приватный ключ сохраняется на локальной машине, а публичный добавляется на сервер. Подробнее об этом, а также о настройке SSH на Windows, вы можете узнать из этой статьи.
На Linux туннель создается командой:
ssh -R 3083:localhost:3083 адрес_сервера -p1024
На Windows туннель настраивается через утилиту PuTTY.
- На вкладке Session указываем имя сервера и номер порта 1024. Проверяем, чтобы был отмечен протокол SSH.
- Переходим в раздел Connection — Data. Указываем логин.
- Переходим в раздел Connection — SSH — Tunnels. Указываем параметры так, как указано на скриншоте. Номер порта пишем тот, который используется в конфигурации PHP на сервере.
- Возвращаемся в раздел Session и нажимаем на кнопку Open. Подтверждаем корректность ключей (только первый раз).
Сессия сохранится под тем именем, которое мы указали в разделе Session. В дальнейшем нужно будет просто запускать ее заново.
Настройка VSCode
Чтобы работать с Xdebug в VSCode, установим два расширения: Sync-Rsync и PHP Debug. Первое нужно для работы с удаленным сервером, второе — для отладки скриптов.
- Открываем в VSCode раздел Extensions (можно использовать сочетание клавиш Ctrl+Shift+X).
- Находим и устанавливаем расширение Sync-Rsync.
- Находим и устанавливаем расширение PHP Debug.
После установки расширений создаем на локальной машине пустую папку и открываем ее через VSCode: «Файл» — «Открыть папку».
Добавляем подпапку .vscode, создаем внутри нее файл settings.json и прописываем в нем настройки для Sync-Rsync.
Путь /home/user/.ssh/id_rsa — это место, где лежит файл с закрытой частью SSH-ключа.
После сохранения файла settings.json нажимаем в VSCode F1, выполняем команду Sync Remote to Local. В локальную папку, указанную в настройках, скопируются все файлы с сервера.
Затем нажимаем на иконку отладки и на шестеренку. В папке .vscode появится файл launch.json. В него тоже нужно внести изменения:
«version»: «0.2.0», «configurations»: [ «name»: «Listen for XDebug», «type»: «php», «request»: «launch», «port»: 3083, «pathMappings»: «/home/xxxxx/domain.ru/htdocs/www»: «$/» > >, «name»: «Launch currently open script», «type»: «php», «request»: «launch», «program»: «$», «cwd»: «$», «port»: 3083 > ] >
На этом настройка IDE завершена. Можно приступать к тестированию кода.
Debug кода
Настройка отладки в Конфигураторе 1С
Для настройки отладки в конфигураторе 1С надо зайти через главное меню в раздел Отладка – Подключение… Откроется форма подключения к сеансам для отладки. Если конфигуратор запущен на сервере 1С и есть активный серверный или клиентский сеанс, то в разделе «Доступные предметы отладки» сразу можно увидеть строки с указанием пользователя и типа сеанса клиент или сервер.
Форма подключения и настройки отладки в Конфигураторе 1С
В принципе, на этом вся настройка может быть закончена, можно выбрать нужный сеанс и подключиться к нему для отладки. Однако, часто бывает что мы увидим пустой список предметов отладки. Если это ваш случай, то читаем дальше.
Итак, при настройке отладки в конфигураторе 1С надо учесть два момента.
Первое, если вы запустили Конфигуратор не на сервере 1С, то для поиска предметов отладки надо указать имя или IP адрес сервера 1С (если хотим отлаживать не серверный, а клиентский сеанс другого пользователя, то соответственно клиентского компьютера). Для этого ставим флажок «Искать предметы отладки на удалённом компьютере» и рядом в поле вводим имя компьютера, например – srv1c.
Второе. Бывают случаи, когда сервер 1С (тестовый к примеру) запущен не на типовых портах по умолчанию из диапазона 1560-1591, а, например, на портах 1660-1691. Тогда надо по кнопке «Настройка» в форме настройки отладчика указать тот диапазон портов для поиска предметов отладки который был задан в строке запуска службы сервера 1С.
В моем случае ставим диапазон 1560-1900, это потому что у меня есть еще запущены тестовые сервера 1С на диапазонах портов 1760-1791 и 1860-1891. После этого нажимаем в правом верхнем углу значок «Обновить» и видим появившиеся предметы отладки. Видно что у серверного сеанса порт указан 1660, это как раз тот сеанс который подключен к тестовому серверу 1С, запущенному на диапазоне портов 1660-1691.
Теперь можно выбрать нужный сеанс и нажать кнопку «Подключить», предмет отобразиться в нижней части формы в разделе «Подключенные предметы отладки».
Все, после этого, запускаем на выполнение программу и отладчик должен остановиться на точке останова, которую вы поставили на сроке кода. В стеке вызовов можно посмотреть где в данный момент выполняется код, на сервер или на клиенте.
Если после всех настроек список доступных предметов отладки так и остался пустым, то следует проверить включен ли режим отладки на сервер 1С. Вот здесь можно посмотреть как включить отладку на сервере 1С.
Если же вам надо подключиться к клиентскому сеансу, то надо проверить включена ли доступность отладки у этого клиентского сеанса. Для это в режиме 1С:Предприятие открываем меню Настройки — Параметры…
В окне настройки параметров в поле «Отладка в текущем сеансе» выбираем «Разрешена (протокол TCP/IP)», то же можно указать в поле «Отладка при перезапуске», чтобы каждый раз не выполнять данную настройку в случае многократного перезапуска клиентского сеанса.
После этой настройки в конфигураторе обновляем список доступных предметов отладки, если все сделано правильно, там должен появится данный клиентский сеанс.
Следует еще сказать про то как подключаться для отладки web-сервисов http-сервисов и фоновых заданий. Так как эти сеансы не имеют постоянного подключения, а запускаются только на время выполнения, бывает, что очень короткое, подключиться к ним вручную очень непросто. Поэтому по кнопке «Автоматическое подключение» заходим в настройки и ставим галочки напротив пунктов «Web-сервисы», «HTTP-сервисы» и «Фоновые задания».
Теперь нам не надо вручную искать предмет отладки и нажимать кнопку «Подключить». Система сама подключиться к запущенному сеансу и сработает точка останова поставленная на строке кода.
В общем это все основные моменты которые нужно знать о настройке отладки в Конфигураторе 1С по протоколу TCP/IP. Однако бывает что из-за блокировок брандмауера или фаервола отладка работать не будет. О том как это исправить тут.
Источник: 1s-on.ru