22 минуты назад
Добрый день. Появилась новая ошибка: 27.11.2024 12:30:20 ERROR /www/site.ru/core/components/yasmartcaptcha/model/yasmartcaptcha.class.php 60
Reco...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс 6
2 часа назад
Извините, у вас сообщения закрыты. Я хотела спросить насчет компонента msExportUsersExcel. Может быть у вас есть аналогичный компонент для импорта пол...
Facade Laravel в Modx 2/3 23
3 часа назад
Андрей Степаненко.
Извините, у вас сообщения закрыты. Я хотела спросить насчет компонента msExportUsersExcel. Может быть у вас есть аналогичный компо...
Zoomx получить данные родителя на странице товара 7
4 часа назад
Таки накосячил в myTpl :-). Надо так
{foreach $ress as $res}
<p> {$res.id} {$res.surname}</p>
{/f...
Модификатор сортировки pdoResources по pagetitle 4
Вчера в 17:14
В vesp долго переезжать. Нету модульности никакой и с авторизацией, в смысле с разграничением прав, там Василий особо не напрягался :-)
Плюсы и минусы Vue и gtsAPI 17
Вчера в 13:01
Забыл написать версия modx 3.0.5
И сама форма
<form data-si-form="FormSlider" data-si-preset="slider_form" data-si-event=&quo...
[SendIt 2.0.0] Пагинация и обновлённая загрузка файлов 20
Вчера в 09:34
В критерия должны передаваться параметры where это все что можно передать
т.е.
возможно только так
$criteria = array(
"article:LIKE =>...
Массовое удаление 7
25 ноября 2024, 22:34
Вдруг кому понадобится… Прописать TV параметр в источнике файлов для MIGX можно так (для примера TV `ln`):
[[!migxResourceMediaPath...
Источник файлов и migx 6
25 ноября 2024, 21:01
Привет
Подскажи, пжл как добавить поля из компонента msFieldsmanager?
Скрин
msPre - фильтры по опциям minishop2 11
25 ноября 2024, 20:03
А как добавить если чекбоксы?
msPre добавление кастомного поля (списка с автодополнением) 4
Да и судя по коды (ссылку давал выше) — оно не будет учитываться. Этот функционал, вероятно, нужно дописывать самостоятельно (имею ввиду в компоненте), как это сделано, к примеру, в галерее miniShop2
Вот посмотри код, я вижу что проверка внутри объекта modMediaSource и там проверяется именно системная настройка upload_maxsize
msProducts просто тащит то, что записано в БД, а там путь относительно источника файлов.
база то в порядке? таблица жива?
Это довольно индивидуальный параметр для каждого сайта. Если не очищается совсем — то gc не работает в php, с ним нужно копать, вот чтиво десятилетней давности: bezumkin.ru/sections/tips_and_tricks/2422
У моего сайта была посещаемость 300 человек в сутки. В неделю это 7*300=2100 человек. Сессии как раз неделю и хранились. Вот только в таблице сессий было не 2000 записей, как было бы ожидаемо, а около 100-200 тысяч. Когда я начал изучать вопрос — боты, одни боты! яндекс, гугл, просто wget какие-то, индексаторы картинок, парсеры… чего только не было) и что забавное — почти всегда каждый запрос генерил новую сессию, боты не держали её)) а итоге приходит яндекс бот на сайт, индексирует сайт, 3000 страниц — о-ппа и +3000 сессий. А кому они нужны?)
В этом дополнении нет ничего нового, связанного с контекстами, по сравнению со стандартным sessionhandler. Основная цель дополнения — расширить таблицу сессий, чтобы в ней хранился user-agent. И если user-agent принадлежит боту — чистить такие сессии раньше, не хранить их долго.
Эта ошибка возникла из-за того, что оказался поврежден файл с таблицей БД. Причина, по которой произошла данная ситуация, вероятно, связана с каким-то сбоем на сервере. К примеру, у меня раньше часто из-за нехватки памяти падал процесс mysql, и эти падения иногда заканчивались повреждением отдельных таблиц БД, весьма часто таблицы с сессией (потому что эта таблица каждый раз при открытии любой страницы сайта обновляется), но иногда и таблиц вроде site_content. Увеличение объема памяти решило в моем случае проблему с падающим mysql и повреждением таблиц.
modx.pro/help/24315
modx.pro/help/24339
modx.pro/news/24265
Я, когда руки дойдут до smartSessions, попробую оптимизировать компонент, может побыстрее будет работать.
Видим, что все запросы направляются на index.php.
Меняем на myscript.php, делаем чё хотим.
Делаем include index.php
Получили:
Значение параметра не обрабатывается парсером, а просто заменяются плейсхолдеры.
Рассматриваю ситуацию, когда базе у тебя 2 000 000 сессий, из них 1 400 000 (70%) — эт боты.
Т.е. симулируется картина, что либо сессии продолжительное время вообще не очищались и накопились, либо у сайта ну очень высокая посещаемость.
В первом случае, если мы поставим limit 5000, то эти сессии удалятся за 280 подходов. Ну а далее у нас будет регулярно все это работать и 2 млн сессий в базе уже не будет. По идее мы должны так сконфигурировать сервер, чтобы каждый раз при срабатывании gc() устаревало не более 5000 сессий, иначе они начнут накапливаться.
Во втором случае (если бешеная посещаемость), хватит ли лимита в 5000 для того, чтобы удалить старые сессии? А если нет — то мы должны повысить лимит.
И у меня возник вопрос: какая разница в обоих случаях, есть лимит или нет? Кроме первых 280 проходов, которые без лимит выполнились за 1 раз (напомню в нестандартной ситуации, что сессии ранее не очищались).
p.s. про smartSessions:
А в smartSessions медленная работа, думается, обусловлена LIKE поиском по колонке user_agent во время очистки и отсутствием индекса))) нужно добавить. Я когда это писал все — тормозов особо не заметил, посещаемость сайтов моих была ну до 1000 человек в сутки. Но вообще, поле is_bot реально лучше, ибо в этом случае LIKE поиск убирается, остается просто быстрый поиск по колонке tinyint. В общем если руки дойдут — изменю алгоритм.