Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Блог OcBox

  • записів
    10
  • коментарів
    12
  • перегляду
    2 194

Помилки на сайті OpenCart: як їх увімкнути, знайти і передати розробнику


OcBox

503 перегляди

Помилки на сайті OpenCart: як їх увімкнути, знайти і передати розробнику

Що ви дізнаєтесь з цієї статті

1. Як увімкнути показ помилок PHP трьома способами.

2. Де лежить журнал помилок сайту і чим він відрізняється від журналу системи.

3. Як побачити помилки JavaScript у Google Chrome і Mozilla Firefox.

4. Як скласти звіт, щоб розробник полагодив з першого разу.

Біла сторінка, кошик, який не додає товар, фільтр, що нічого не фільтрує. Ви пишете розробнику «не працює», він питає, що саме і де, і на листування йде день або два.

Майже за кожною такою проблемою стоїть конкретна помилка з конкретним текстом. Її просто не видно, поки не знаєш, де дивитись. Нижче покроково, з реальними скріншотами.

Головна ідея: у кожної проблеми на сайті є текст помилки. Знайти його можна за пʼять хвилин без знання програмування. А з цим текстом розробник бачить причину одразу і не витрачає час на розпитування.

Чому сторінка біла, а помилки не видно

Сторінка обривається, помилку не показано

✓ Що відбувається

Сторінку магазину збирає PHP на сервері. Коли в коді трапляється помилка, PHP зупиняється, і ви бачите лише ту частину сторінки, яку він встиг зібрати. На скріншоті шапка і заголовок є, а товару вже немає.

Текст помилки на робочих сайтах навмисно не показують, бо в ньому видно шляхи до файлів на сервері.

⚠ Порожня або обрізана сторінка майже завжди означає помилку, яку просто не виведено на екран.

Показ на екрані чи запис у журнал

✓ Показ на екрані

Текст помилки виводиться прямо на сторінці. Це найшвидший спосіб побачити причину, але текст бачать усі відвідувачі.

⚠ Вмикайте тільки на час перевірки і одразу вимикайте.

✓ Запис у журнал

Помилка записується в текстовий файл на сервері: дата, текст, файл і номер рядка. Відвідувачі цього не бачать, тому на робочому магазині запис має бути увімкнений завжди.

Журнал сайту і журнал системи: де що шукати

✓ Журнал сайту

Містить помилки самого магазину: шаблону, модулів, коду. У більшості випадків потрібен саме він. Де знайти:

  • у панелі хостингу, розділ «Логи» або «Error log»;
  • у корені сайту, файл error_log, або в теці logs;
  • в адмінці OpenCart: Система → Обслуговування → Журнал помилок. На сервері це файл storage/logs/error.log.

⚠ Сторінка відкривається, але щось працює не так? Дивіться журнал сайту.

✓ Журнал системи

Містить помилки самого сервера: закінчилась памʼять, заповнився диск, зупинилась служба PHP чи бази даних. Де знайти на власному сервері:

  • команда journalctl -xe;
  • файли /var/log/syslog або /var/log/messages.

⚠ Сайт не відкривається взагалі і показує 502 або 503? Починайте з журналу системи.

Спосіб 1. Увімкнути показ помилок у файлі index.php

✓ Найшвидший варіант

Відкрийте index.php у корені сайту і одразу після першого рядка <?php вставте три рядки:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

Збережіть файл і оновіть сторінку. Помилки зʼявляться на екрані.

⚠ Після перевірки ці рядки обовʼязково видаліть.

Спосіб 2. Увімкнути показ помилок у файлі .htaccess

✓ Для серверів на Apache

Додайте в .htaccess у корені сайту:

php_flag display_errors on
php_value error_reporting 32767

⚠ Якщо після цього сайт показує помилку 500, сервер працює через PHP-FPM і такі рядки не підтримує. Видаліть їх і скористайтесь способом 1 або 3.

Спосіб 3. Налаштувати помилки в PHP-FPM

✓ Правильне налаштування для робочого магазину

На власному сервері відкрийте файл пулу, зазвичай це /etc/php/8.2/fpm/pool.d/www.conf, і додайте в кінець:

php_admin_flag[log_errors] = on
php_admin_value[error_log] = /var/log/php-fpm/site-error.log
php_admin_flag[display_errors] = off

Потім перезапустіть PHP:

systemctl restart php8.2-fpm

Помилки пишуться у файл і не виводяться на екран. На звичайному хостингу ті самі параметри display_errors, log_errors і error_log змінюються в панелі, у налаштуваннях PHP. Опис кожного є в офіційній документації PHP.

Як читати помилку PHP на екрані

Помилки PHP на екрані: тип, файл і номер рядка

✓ Три речі, які потрібні розробнику

  • Warning означає, що PHP натрапив на проблему, але продовжив роботу;
  • Fatal error означає, що саме тут PHP зупинився;
  • після in вказано файл, після on line номер рядка.

⚠ Скопіюйте весь текст помилки і передайте розробнику разом із посиланням на сторінку.

Помилки JavaScript: консоль у Google Chrome

Частина магазину працює не на сервері, а в браузері покупця: кошик, фільтр, галерея, вибір доставки. Помилки там не потрапляють у журнали сервера. Їх видно тільки в консолі браузера.

Консоль Google Chrome з помилками JavaScript

✓ Як відкрити консоль у Chrome

  1. відкрийте сторінку з проблемою;
  2. натисніть F12 або Ctrl + Shift + J;
  3. перейдіть на вкладку Console;
  4. оновіть сторінку клавішею F5, щоб побачити помилки під час завантаження.

Довідка Google: Chrome DevTools, Console.

Консоль у Mozilla Firefox

Консоль Mozilla Firefox з тими самими помилками

✓ Як відкрити консоль у Firefox

  1. відкрийте сторінку з проблемою;
  2. натисніть F12 або Ctrl + Shift + K;
  3. перейдіть на вкладку Консоль;
  4. оновіть сторінку клавішею F5.

Довідка Mozilla: Web Console.

Що означають повідомлення в консолі

✓ Червоне це помилки, жовте це попередження

Праворуч у кожному рядку вказано файл і номер рядка. Найчастіші повідомлення:

  • 404 (Not Found): сторінка звертається до файлу, якого немає на сервері;
  • $ is not defined: скрипту потрібна бібліотека jQuery, а її немає на сторінці або вона підключена пізніше;
  • Cannot read properties of null: скрипт не знайшов на сторінці потрібний елемент, часто після змін у шаблоні;
  • is not valid JSON: сервер замість даних повернув сторінку з помилкою. Типова причина, коли кошик «крутиться» і не додає товар.

Вкладка Network: які запити не спрацювали

Вкладка Network: запити з кодом 404

✓ Червоні рядки це запити з помилкою

Вкладка Network («Мережа») показує всі запити сторінки до сервера. Рядки з кодом 404 або 500 і є ті запити, які не спрацювали.

⚠ Увімкніть галочку Preserve log, щоб записи не зникали при переході на іншу сторінку, наприклад під час оформлення замовлення.

Як скласти звіт розробнику

Повідомлення «не працює кошик» не допоможе: розробнику спершу доведеться розпитувати, що і де. Щоб полагодили швидко, вкажіть сім пунктів.

✓ Що має бути у звіті

  1. посилання на сторінку, де проблема;
  2. що ви робили, по кроках;
  3. що мало статися;
  4. що сталося насправді;
  5. коли почалося і що змінювали перед цим: оновлення, новий модуль, зміна шаблону чи версії PHP;
  6. браузер і пристрій;
  7. скріншот сторінки і скріншот консолі.

⚠ Текст помилки з консолі додавайте текстом, а не лише скріншотом. Виділіть рядок мишкою і натисніть Ctrl + C.

✓ Приклад готового звіту

Сторінка: https://magazin.ua/index.php?route=product/product&product_id=412
Що робив: обрав розмір M, натиснув «Купити»
Очікував: товар додається в кошик
Насправді: після натискання нічого не відбувається, кошик порожній
Коли почалось: учора, після оновлення шаблону
Браузер: Chrome, Windows 11. У Firefox так само

Помилка в консолі:
Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
    at product.js:118

Скріншоти сторінки і консолі додаю

⚠ Якщо проблема є тільки в одного користувача, попросіть перевірити сайт у режимі інкогніто. Часто заважає розширення браузера.

Коротко. Біла або обрізана сторінка означає помилку, яку не показали на екрані. Запис у журнал тримайте увімкненим завжди, показ на екрані тільки на час перевірки. Журнал сайту розповідає про магазин, журнал системи про сервер. Помилки кошика і кнопок шукайте в консолі браузера за клавішею F12. А у звіті розробнику вказуйте посилання, кроки, текст помилки і скріншоти.

З повагою, ваш ZX Spectrum 80, наймолодший науковий співробітник команди OcBox.

  • +1 1

0 коментарів


Recommended Comments

Немає коментарів для відображення

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
Гість
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.