3.8.1 Можливі помилки на хостингу

Банер Кожен тариф хостингу має свої ліміти та обмеження, які створені для забезпечення стабільної роботи сервера та захисту його від надмірного навантаження. Однак, іноді користувач може зіткнутися з різними помилками під час роботи з базою даних SQL. Такі помилки можуть свідчити про невірно підібраний тариф або занадто інтенсивну роботу з сайтом, таку як оновлення контенту, зміни цін або інше наповнення.

Звертаючи увагу на ці помилки, Ви можете зрозуміти, що певні обмеження тарифу були перевищені, і можливо, варто розглянути оновлення тарифного плану або оптимізацію роботи з базою даних. Ми розглянемо деякі з найпоширеніших помилок а також надамо приклади таких помилок для кращого розуміння.

Нагадуємо: ліміти тарифів хостингу, які встановлюються для забезпечення стабільної роботи сервера та захисту від надмірного навантаження.

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

Обмеження діють протягом однієї години. Якщо Ви тільки перевищили один з лімітів, Вам досить зачекати годину, і все автоматично оновиться. Щоб уникнути повторних помилок, рекомендуємо розглянути такі варіанти:

  • Налаштування сайту: оптимізація сайту, оптимізація баз даних.
  • Планування робіт: розбити роботи на частини, які можна виконати протягом декількох годин.
  • Оновлення тарифу: розгляньте можливість оновлення на більш потужний тариф. Зміна можливі раз на день і без додаткових витрат. Термін дії буде перераховано пропорційно вартості. В майбутньому Ви зможете повернутись на попередній тариф.

Ось переклад на українську мову з дотриманням вказаних вимог:

Можливі помилки та рекомендації

Помилки з базами даних MySQL

  • Запити до MySQL (max_questions).

    • Опис: помилка виникає, коли користувач перевищує максимально допустиму кількість запитів до сервера бази даних за короткий проміжок часу.
      Приклад помилки
      PHP Warning: WordPress database error User 'testuser' has exceeded the 'max_questions' resource (current value: 275000) for query SHOW TABLES LIKE 'wp\_users' made by display_setup_form, referer: https://example.com/wp-admin/install.php
      
    • Пояснення: це означає, що кількість запитів до бази даних перевищила дозволений ліміт. Розгляньте можливість оптимізації запитів або перехід на вищий тарифний план.
  • Вставки в MySQL (max_updates).

    • Опис: помилка виникає, коли користувач перевищує максимально допустиму кількість операцій оновлення (INSERT, UPDATE, DELETE) за певний проміжок часу.
      Приклад помилки
      PHP Warning: Uncaught exception 'Exception' with message 'Error: User 'testuser' has exceeded the 'max_updates' resource (current value: 1300000)
      
    • Пояснення: помилка означає, що було перевищено ліміт на кількість оновлень в базу даних на годину (в даному випадку – 1 300 000). Це може статися через завантаження великого дампу, в якому кожен запис додається окремим запитом. Лічильник max_updates автоматично обнуляється щогодини, тому, якщо Ви бачите таку помилку, необхідно просто трохи зачекати або перейти на більш продуктивний тарифний план.
  • Підключення до MySQL (max_connections_per_hour).

    • Опис: помилка виникає, коли користувач перевищує максимально допустиму кількість з’єднань з сервером MySQL за одну годину. Якщо користувач перевищує це обмеження, нові з’єднання не будуть дозволені до завершення години.
      Приклад помилки
      PHP Warning: Uncaught mysqli_sql_exception: User 'testuser' has exceeded the 'max_connections_per_hour' resource (current value: 10000)
      
    • Пояснення: це означає, що кількість з’єднань з базою даних перевищила встановлений ліміт. Можливо, варто зменшити кількість одночасних з’єднань або перейти на вищий тариф, де обмеження матиме більше значення.
  • З’єднання з MySQL (max_user_connections).

    • Опис: помилка виникає, коли користувач перевищує максимально допустиму кількість одночасних з’єднань з сервером MySQL.
      Приклад помилки
      PHP Warning: mysql_connect() User 'testuser' has exceeded the 'max_user_connections' resource (current value: 15) in /var/www/example/data/www/example.com/l/login.inc.php on line 10
      
      Приклад помилки
      PHP Warning: mysqli::mysqli(): (08004/1040): Too many connections in /var/www/example/data/www/example.com/wp-content/themes/point/functions.php on line 71, referer: https://example.com/
      
    • Пояснення: це означає, що кількість одночасних з’єднань з базою даних перевищила дозволений ліміт. Перевірте кількість одночасно підключених користувачів або додатків і розгляньте можливість їх зменшення.

Помилки PHP

  • Ліміт виділеної пам’яті PHP (memory_limit).

    • Опис: Ця помилка виникає, коли скрипт PHP перевищує ліміт виділеної пам’яті, встановлений директивою memory_limit в конфігурації PHP.
      Приклад помилки
      [error] [client 127.0.0.1] mmap() failed: [12] Cannot allocate memory, referer: https://example.com/wp-admin/post.php?post=1931&action=edit
      
    • Пояснення: Збільште значення memory_limit в налаштуваннях PHP або оптимізуйте скрипт, щоб він споживав менше пам’яті.
  • Час виконання PHP скрипта (execution_time).

    • Опис: Ця помилка виникає, коли виконання скрипта PHP займає більше часу, ніж встановлено директивою max_execution_time в конфігурації PHP.
      Приклад помилки
      [client 127.0.0.1] Timeout waiting for output from CGI script /var/www/example/php-bin/script.php, referer: http://example.com/
      [error] [client 127.0.0.1] Script timed out before returning headers: php,
      
      
    • Пояснення: Збільште значення max_execution_time або оптимізуйте скрипт, щоб він виконувався швидше.
  • Користувацькі процеси.

    • Опис: Ця помилка виникає, коли перевищено ліміт на кількість одночасно запущених користувацьких процесів, таких як PHP-скрипти, сесії FTP/SSH/IMAP тощо.

      Приклади помилок
      [error] [client 127.0.0.1] (11)Resource temporarily unavailable: couldn't spawn child process: /var/www/example/php-bin/script.php
      [client 127.0.0.1] (11)Resource temporarily unavailable: couldn't create child process: 11: php
      [error] [client 127.0.0.1] (11)Resource temporarily unavailable: couldn't spawn child process: /var/www/example/php-bin/script.php
      
      Приклади помилок
      [error] [client 127.0.0.1] sh: 1: Cannot fork
      2018-09-09 15:41:15 - PHP Warning: mail(): Could not execute mail delivery program '/usr/sbin/sendmail -t -i -f example@example.com' in /var/www/example/data/www/example.com/system/library/mail/mail.php on line 77
      
    • Пояснення: Зменште кількість одночасно запущених процесів або розгляньте можливість переходу на вищий тарифний план.

Помилки при відправці листів

  • Ліміт на відсилання пошти.

    • Опис: Ця помилка виникає, коли перевищено ліміт за кількістю листів, що відправляються за годину.
      Приклад помилки
      2024-05-29 18:33:57 H=([127.0.0.1]) [201.131.246.243] Warning: Sender rate overlimit - 50.3 / 1h / user@example.com
      
    • Пояснення: Зменште кількість листів, що відправляються за годину, або розгляньте можливість переходу на вищий тарифний план.
  • Якщо листи не відправляються за допомогою вбудованого поштового клієнта або зовнішнього поштовика.

    • Опис: Подібна помилка може виникати, коли було перевищено місце, встановлене у властивостях поштової скриньки.

    Поштова скринька

    • Пояснення: Змініть розмір поштової скриньки, якщо вона була заповнена. Для того щоб зміни набули чинності, потрібно буде вимкнути і потім увімкнути поштову скриньку. Альтернативно, можете перепризначити пароль.