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 за один час. Если пользователь превышает это ограничение, новые соединения не будут разрешены до завершения часа.
-
Соединения с 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/
- Объяснение: это означает, что количество одновременных соединений с базой данных превысило разрешенный лимит. Проверьте количество одновременно подключенных пользователей или приложений и рассмотрите возможность их уменьшения.
- Описание: ошибка возникает, когда пользователь превышает максимально допустимое количество одновременных соединений с сервером MySQL.
Ошибки 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 превышает лимит выделенной памяти, установленный директивой
-
Время выполнения 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 занимает больше времени, чем установлено директивой
-
Пользовательские процессы.
-
Описание: Эта ошибка возникает, когда превышен лимит на количество одновременно запущенных пользовательских процессов, таких как 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
- Объяснение: Уменьшите количество отправляемых писем в час или рассмотрите возможность перехода на более высокий тарифный план.
- Описание: Эта ошибка возникает, когда превышен лимит по количеству отправляемых писем в час.
-
Если письма не отправляются с помощью встроенного почтового клиента или внешнего почтовика.
- Описание: Подобная ошибка может возникать, когда было превышено место, установленное в свойствах почтового ящика.
- Объяснение: Измените размер почтового ящика, если он был заполненый. Для того чтоб изменения вступили в силу, нужно будет выключить и затем включить почтовый ящик. Альтернативно, можете переназначить пароль.