Типовые ошибки со стороны сервера

Статус
В этой теме нельзя размещать новые ответы.

Smalesh

Проверенные
Сообщения
6,016
Решения
71
Реакции
17,027
Баллы
5,640
Ахтунг! Фак по сути черновик и будет периодически обновляться.

1. Ошибка вида блабла has been disabled for security reasons. Русская версия ошибки - блабла отключена из соображений безопасности.

Ошибки такого плана говорят об использовании директивы в файле php.ini. Эта директива служит для отключения потенциально опасных/проблемных внутренних функций самого языка php и встречается либо на виртуальном хостинге, когда ограничения служат для защиты самого хостинга от злоупотреблений (как правило); либо на VDS/дедике в том случае, когда администратор сервера умышленно или неумышленно там что-то прописал/скопипастил. В первом случае лечим обращением в службу технической поддержки хостинга, возможно со сменой хостинга; во втором случае правим php.ini (как правило /etc/php.ini или /usr/local/etc/php.ini) и рестартуем демона (apache или php-fpm).

Xenforo с этой ошибкой нормально (штатно) работать не будет.
 
2. Ошибка Fatal Error: Maximum execution time of хх seconds exceeded

Процесс php имеет ограничение по времени выполнения, это ограничение задается директивой , если процесс выходит за это ограничение (по умолчанию 30 сек), то процесс убивается с ошибкой maximum execution time of хх seconds exceeded. В основном есть две причины возникновения это ошибки:
  1. Скрипт действительно ресурсоемкий и ему нужно время для его выполнения. В этом случае поднимаем max_execution_time в пределах разумного (как правило 60-180 сек) в php.ini, .htaccess или просто в панели управления хостингом.
  2. Есть более глобальные проблемы с производительностью, например неприлично долгое выполнение sql-запросов, в следствии чего процесс php умирает раньше времени. В таком случае в первую очередь лечится причина подвисания скрипта, а поднятия лимита - это будут костыли, не самое лучшее решение.
Синтаксис в php.ini
Код:
; 60 секунд
max_execution_time = 60
Синтаксис в .htaccess
Код:
# 60 секунд
php_value max_execution_time 60
Синтаксис на уровне php-кода (в 1.x версии xenforo встречается захардкоренный лимит в самом коде, тогда нужна только правка кода. Не самое лучшее решение, но тут вариантов немного. По линейке 2.x ничего не скажу, вроде убрали)
Код:
ini_set('max_execution_time', 60);
 
3. Ошибки вида
  • Fatal error: Allowed memory size of x bytes exhausted (tried to allocate x bytes) in /путь к скрипту
  • PHP Fatal error: Out of memory (allocated x) (tried to allocate x bytes) in /путь к скрипту
PHP разрешает процессу использовать определенный объем памяти, как только процесс выходит за его пределы, php убивает процесс с характерной ошибкой. Как правило, дефолтного значения (128M) для xenforo маловато, поэтому рекомендуется ставить значения 256M-512M, выше уже не стоит, это будет говорить о явных проблемах с самим скриптом. Лимит редактируем через панель управления хостингом или напрямую, php.ini/.htaccess, можно прописать в сам скрипт

Синтаксис в php.ini (по умолчанию значения в байтах, поэтому для читабельности здесь и далее используем множитель)
Код:
; 512 Mb
memory_limit = 512M
Синтаксис в .htaccess
Код:
# 512 Mb
php_value memory_limit 512M
Синтаксис в php
Код:
ini_set('memory_limit', '512M');
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу