Writing /home/user/smartcj.com/wiki/data/cache/8/8c77fa4733ea812737d678e97cc2197a.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /home/user/smartcj.com/wiki/data/cache/8/8c77fa4733ea812737d678e97cc2197a.metadata failed
ru:new_rotation_faq
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| ru:new_rotation_faq [2022/08/05 04:41] – [Site menu] admin | ru:new_rotation_faq [2026/02/24 23:58] (current) – [Filter request parameters] admin | ||
|---|---|---|---|
| Line 183: | Line 183: | ||
| - | ===== Почему у меня на старнице пустое облако тагов ===== | + | ===== Почему у меня на странице пустое облако тагов ===== |
| Облако тагов генерится из активных тагов раз в 30 минут и кладется в кеш. Соответственно варианты: | Облако тагов генерится из активных тагов раз в 30 минут и кладется в кеш. Соответственно варианты: | ||
| Line 240: | Line 240: | ||
| - Смотрим в rot_linked_db номер слейва, | - Смотрим в rot_linked_db номер слейва, | ||
| - Отсоединяем нужный слейв от мастера | - Отсоединяем нужный слейв от мастера | ||
| - | - Заливаем в базу бывшего слева (дамп) из пункта 1, но только таблицы | + | - Заливаем в базу бывшего слева (дамп) из пункта 1, но только таблицы |
| - | - Удаляем все rot_gallery_stats* кроме номера | + | - rot_gallery_statsХ переименовываем в rot_gallery_stats1, rot_gallery_dataX |
| - | - rot_gallery_statsХ переименовываем в rot_gallery_stats1 | + | |
| - | | + | |
| Line 270: | Line 269: | ||
| + | ===== Category statuses ===== | ||
| + | |||
| + | У категорий 3 статуса: | ||
| + | |||
| + | - активна - выводится в < | ||
| + | - не актвна - не выводится в < | ||
| + | - hidden - **не выводится** в < | ||
| ===== Как импортировать очень большой дамп ===== | ===== Как импортировать очень большой дамп ===== | ||
| Версия 2.* умеет добавлять большие файлы через importset самостоятельно (теоретически любого размера). Просто добавляете урл и он постепенно все добавит. | Версия 2.* умеет добавлять большие файлы через importset самостоятельно (теоретически любого размера). Просто добавляете урл и он постепенно все добавит. | ||
| - | |||
| - | Для версии 1.* рекомендуется следующий вариант: | ||
| - | |||
| - | Например у нас есть задача импортировать много тысяч галерей, | ||
| - | |||
| - | Дабы импортировать большой файл равномерно и хорошо для сервака надо: | ||
| - | |||
| - | * Создать и залить на сервак файл cut.php следующего содержимого | ||
| - | |||
| - | < | ||
| - | |||
| - | <?php | ||
| - | |||
| - | error_reporting(E_ALL & ~E_NOTICE); | ||
| - | |||
| - | if (!$_GET[' | ||
| - | if (!file_exists($_GET[' | ||
| - | if (!is_writeable($_GET[' | ||
| - | |||
| - | if (!file_exists(' | ||
| - | |||
| - | echo passthru(" | ||
| - | if (!$_GET[' | ||
| - | |||
| - | </ | ||
| - | |||
| - | * Залить туда же дамп и поставить 666 на этот файл | ||
| - | * Залить туда же пустой файл tmp.file и так же 666 на него | ||
| - | * Добавить ImportSet с урлом http:// | ||
| - | * Нажать Test и распределить поля как надо. | ||
| - | * cut.php выдает по 500 строк из большого дампа и урезает файл на эти же 500 строк. Таким образом каждый раз когда импортсет будет запрашивать новые строки - он будет получать по 500 строк, равномерно добавляя их в базу. | ||
| - | * Наличие & | ||
| - | |||
| - | Все. | ||
| - | |||
| - | Через какое-то время весь дамп будет добавлен и сам файл дампа станет нулевым по размеру и даже если вы забудете убрать его из импортсетов он будет выдавать пустой ответ и не будет нагружать сервер. | ||
| - | |||
| Line 575: | Line 544: | ||
| Так же есть опция "Log empty search queries " и если по запросу ничео не найдено то логгить его не будет. | Так же есть опция "Log empty search queries " и если по запросу ничео не найдено то логгить его не будет. | ||
| + | |||
| + | |||
| + | После апдейта в настройка ротации добавлена опция которая делает тоже самое | ||
| + | |||
| + | < | ||
| + | Search query filter pattern (regexp) | ||
| + | we use php preg-replace function to replace non-valid characters in user input | ||
| + | ie when a surfer searches on your site | ||
| + | a good pattern to start is | ||
| + | / | ||
| + | |||
| + | </ | ||
| ===== Multiniche trade ===== | ===== Multiniche trade ===== | ||
| Line 673: | Line 654: | ||
| | | ||
| и помнить что после этого урлы из примера выше станут разными и при поиске урла надо будет смотреть на регистр букв. | и помнить что после этого урлы из примера выше станут разными и при поиске урла надо будет смотреть на регистр букв. | ||
| + | |||
| + | |||
| + | ====== How to move thumbs ====== | ||
| + | |||
| + | По умолчанию тумбы сохраняются в / | ||
| + | |||
| + | - физически переместить тумбы из scj/thumb в новое место | ||
| + | - сменить URL to thumbs в CJ settings - grabber settings | ||
| + | |||
| + | ====== Full page cache ====== | ||
| + | |||
| + | Для высоконагруженных сайтов значительно помогает кешить страницы в уже выполненном виде. Например, | ||
| + | |||
| + | < | ||
| + | |||
| + | <thumb num=1-2> | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <?php | ||
| + | echo "date: " . date(" | ||
| + | ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Скрипт парсит темплейт и заменяет данными из базы и кладет в кеш, что б для следующего серфера, | ||
| + | |||
| + | < | ||
| + | |||
| + | / | ||
| + | / | ||
| + | |||
| + | <?php | ||
| + | echo "date: " . date(" | ||
| + | ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | при этом пхп код кешится в исходном виде. Те для каждого серфера этот пхп код будет выполняться. | ||
| + | |||
| + | В большинстве случаев это мелочи по нагрузке, | ||
| + | |||
| + | < | ||
| + | |||
| + | / | ||
| + | / | ||
| + | |||
| + | date: 2023-01-01 | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | В большинстве случаев - это ок, тк результат выполнения кода одинаковый для всех серферов. | ||
| + | |||
| + | Однако бывают редкие ситуации когда в темплейте есть код, который должен быть выполнен для каждого юзера тк зависит например от текущего IP пользователя. Для этого есть опция | ||
| + | |||
| + | $config[' | ||
| + | |||
| + | |||
| + | В этом случае в темплейте можно использовать таг | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <?php | ||
| + | echo "user IP: " . $_SERVER[' | ||
| + | ?> | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | и именно этот код не будет закеширован. | ||
| + | |||
| + | |||
| + | Например темплейт | ||
| + | |||
| + | < | ||
| + | |||
| + | <thumb num=1-2> | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <?php | ||
| + | echo "Rand: " . rand(0, 100); | ||
| + | ?> | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | echo "user IP: " . $_SERVER[' | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | будет закешен как | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | / | ||
| + | / | ||
| + | |||
| + | Rand: 22 (тут надо обратить внимание что этот пхп код закешен в выполненном виде) | ||
| + | |||
| + | <?php | ||
| + | echo "user IP: " . $_SERVER[' | ||
| + | |||
| + | // а тут пхп код в исходном виде и будет выполнен для каждого серфера | ||
| + | |||
| + | ?> | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Надо что надо обратить внимание при изменении темплейта под full_page_cache. Например, | ||
| + | |||
| + | < | ||
| + | |||
| + | <?php | ||
| + | $img_src_hash = md5($_SERVER[' | ||
| + | ?> | ||
| + | |||
| + | < | ||
| + | |||
| + | some more HTML | ||
| + | |||
| + | </ | ||
| + | |||
| + | закешировать полностью мы не можем тк этот код должен быть разным для каждого серфера. Что бы хэш не кешировало хочется сделать | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $img_src_hash = md5($_SERVER[' | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | some more HTML | ||
| + | |||
| + | </ | ||
| + | |||
| + | однако тут надо обратить внимание на то, что get_img.php? | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $img_src_hash = md5($_SERVER[' | ||
| + | ?> | ||
| + | |||
| + | < | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | some more HTML | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | **Вероятные ошибки** | ||
| + | |||
| + | Нельзя | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $img_src_hash = md5($_SERVER[' | ||
| + | ?> | ||
| + | |||
| + | some HTML | ||
| + | |||
| + | < | ||
| + | |||
| + | Another code | ||
| + | |||
| + | </ | ||
| + | |||
| + | more HTML | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | some more HTML | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | В этом случае это очевидно, | ||
| + | |||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $img_src_hash = md5($_SERVER[' | ||
| + | ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | some more HTML | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | в том темплейте который вы инклудите - так же есть < | ||
| + | |||
| + | |||
| + | ====== GET variables pass-through ====== | ||
| + | |||
| + | Например, | ||
| + | |||
| + | http:// | ||
| + | | ||
| + | вы хотите этот param вывести где на странице что бы получилось например | ||
| + | |||
| + | <img src=' | ||
| + | |||
| + | все что надо сделать это в темплейте | ||
| + | |||
| + | <img src=' | ||
| + | | ||
| + | GET_param - будет заменен на актуальное значение | ||
| + | |||
| + | ====== Reset Models | ||
| + | |||
| + | Если у вас уже есть база галер, скажем в описаниях галер есть имена моделей. Сами модели просто добавлены в Rotation - Models. | ||
| + | |||
| + | Задача назначить модели галерам (Rotation - special - Reset models) | ||
| + | |||
| + | Поиск имени модели идет через встроенный поиск, настройки которого находятся в Rotation - Settings. | ||
| + | |||
| + | Есть 3 варианта | ||
| + | |||
| + | 1. Просто mysql - ищем по " имя_модели ". тут важно отметить 2 пробела, | ||
| + | |||
| + | 2. Mysql fulltext - этот поиск уже умеет искать с учетом больших букв | ||
| + | |||
| + | 3. Sphinx умеет искать с учетом регистра и даже разных окончаний | ||
| + | |||
| + | Поэтому если вам надо более качественное назначение моделей + более качественный поиск в целом, надо как минимум включать mysql fulltext | ||
| + | |||
ru/new_rotation_faq.1659674487.txt.gz · Last modified: by admin
