Часто администраторы Invision Community могут столкнуться с ошибкой нехватки памяти при выполнение скрипта, она выглядит следующим образом:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /system/Log/Log.php on line 100
У данной проблемы есть два пути решения:
путь - предпочтительный. Вы должны оптимизировать скрипт, чтобы решить проблему с большим расходом памяти.
путь - часто используемый. Увеличения памяти для PHP.
Увеличение в php.ini
Если у вас есть доступ к конфигурационному файлу - php.ini, откройте файл и увеличьте параметр:
memory_limit = 512M
Данное исправление будет применено ко всем сайтам на сервере.
Увеличение в htaccess
Откройте файл .htaccess в директории вашего сайта и пропишите:
php_value memory_limit 512M
Соответственно укажите необходимое количество памяти.
Увеличение в php скрипте
Откройте скрипт, выполнение которого требует больше памяти, и после открывающих тегов <? пропишите:
ini_set('memory_limit', '1024M');
Сохраните файл.
Частно приходится сталкиваться с такой ситуацией, когда необходимо поработать с модернизацией одной области сайта, при этом перенаправлять всех пользователей на отдельную страницу (например, чтобы избежать утраты контента, который будет написан пользователями во время модернизации).
Страница для перенаправления
Давайте создадим простую страницу для информирования пользователей о технических работах. Создайте файл offlinepage.php в корне вашего сайта со следующим содержимым:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Ошибка</title>
<style type='text/css'>
body {
background: #f9f9f9;
margin: 0;
padding: 30px 20px;
font-family: "Helvetica Neue", helvetica, arial, sans-serif;
}
#error {
max-width: 800px;
background: #fff;
margin: 0 auto;
}
h1 {
background: #151515;
color: #fff;
font-size: 22px;
font-weight: 500;
padding: 10px;
}
h1 span {
color: #7a7a7a;
font-size: 14px;
font-weight: normal;
}
#content {
padding: 20px;
line-height: 1.6;
}
#reload_button {
background: #151515;
color: #fff;
border: 0;
line-height: 34px;
padding: 0 15px;
font-family: "Helvetica Neue", helvetica, arial, sans-serif;
font-size: 14px;
border-radius: 3px;
}
</style>
</head>
<body>
<div id='error'>
<h1>Временные технические работы <span>(302 Error)</span></h1>
<div id='content'>
В настоящее время проводятся технические работы в разделе Блоги. Через несколько часов они будут завершены.
</div>
</div>
</body>
</html>
Она будет иметь следующий вид:
Настройка редиректа
Допустим, мы хотим закрыть раздел Форумы. Для этого создадим папку forums в корне вашего сайта и разместим там .htaccess файл со следующим содержимым:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /forums/
RewriteCond %{REMOTE_ADDR} !^8\.8\.8\.8$
RewriteRule .* https://site.ru/offlinepage.php [R=302,L]
</IfModule>
Укажите здесь свой IP адрес и адрес страницы, которую мы создали на предыдущем шаге.
Теперь к форумам будете иметь доступ только вы, все остальные будут отправляться на страницу временных технических работ.
@Hakuna Matata добро пожаловать! Да, лаборатория крутая, нам тоже нравится. Если у Вас есть какие-либо вопросы или желание что-то прикрутить к Invision Community - пишите, мы добавим материал в нашу лабораторию. Спасибо за отзыв
Попробуйте удалить половину строк из русификатора календаря и импортировать, если ошибка останется, значит ещё половину удалить и так до определения проблемной строки.