3.8.1 Возможные ошибки на хостинге

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

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

Напоминаем: лимиты тарифных планов хостинга устанавливаются для обеспечения стабильной работы сервера и защиты от чрезмерной нагрузки.

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

Ограничения действуют в течение одного часа. Если Вы только превысили один из лимитов, Вам достаточно подождать час, и все автоматически обновится. Чтобы избежать повторных ошибок, рекомендуем рассмотреть следующие варианты:

  • Настройка сайта: оптимизация сайта, оптимизация баз данных.
  • Планирование работ: разбить работы на части, которые можно выполнить в течение нескольких часов.
  • Обновление тарифа: рассмотрите возможность обновления на более мощный тарифный план. Смена возможна раз в день и без дополнительных затрат. Срок действия будет пересчитан пропорционально стоимости. В будущем Вы сможете вернуться на предыдущий тариф.

Возможные ошибки и рекомендации

Ошибки с базами данных 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
      
    • Объяснение: Уменьшите количество отправляемых писем в час или рассмотрите возможность перехода на более высокий тарифный план.
  • Если письма не отправляются с помощью встроенного почтового клиента или внешнего почтовика.

    • Описание: Подобная ошибка может возникать, когда было превышено место, установленное в свойствах почтового ящика.

    Почтовый ящик

    • Объяснение: Измените размер почтового ящика, если он был заполненый. Для того чтоб изменения вступили в силу, нужно будет выключить и затем включить почтовый ящик. Альтернативно, можете переназначить пароль.