Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 4897 Просмотров
*

PREMIER

  • Захожу иногда
  • 164
  • 5 / 0
  • Самое важное — это мир во всём мире!
Здравствуйте. Много тем на форуме почитал, но для себя рецепта помощи пока не нашёл. После установки Artio JoomSEF перестал работать форум Kunena постоянно валится 500-ю ошибку с разными уведомлениями.  Подскажите пожалуйста что можно сделать?

J 3.0.3 + Kunena 3.0.0 beta (так же пробовал на K 2.0.14 + J 2.5.9) + Artio JS 4.4.1

Код
500 Internal Server Error
Fatal Error was detected!

Fatal Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in libraries/joomla/log/log.php on line 241

The error was detected in the Libraries.


Код
500 Internal Server Error
Fatal Error was detected!

Fatal Error: Maximum function nesting level of '100' reached, aborting! in components/com_sef/sef.router.php on line 416

The error was detected in the SEF Component.


Код
500 Internal Server Error
Fatal Error was detected!

Fatal Error: Maximum function nesting level of '100' reached, aborting! in libraries/joomla/database/query.php on line 70

The error was detected in the Libraries.
*

PREMIER

  • Захожу иногда
  • 164
  • 5 / 0
  • Самое важное — это мир во всём мире!
Ставим на локалке (DENWER) чистую систему:

1. Joomla 3.0.3 + Kunena 3.0.0 beta 1 + Artio JoomSEF 4.4.1 делаем на форум ссылку псевдоним пункта меню, на главную станицу форума - выпадает в 500 ошибку

2. То же самое только делаем пункт меню псевдоним на Index (Оглавление) - работает, почти везде, но есть одна проблема, а когда ставим на рабочий появляется ещё вторая
- если зайти куда-то в глубину форума, то в главном меню теряется активное выделение пункта меню Форум
- если нажать на пункт меню форума Recent Topic (последние сообщения) то тупит и потом браузер выдаёт "сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится" (на чистой системе работает)

В общем правильная ссылка http://site.ru/forum/index

3. Решаем второй вопрос, сравниваем ссылки Recent Topic на чистой системе и рабочей, получается на чистой http://site.ru/forum/recent а на рабочей http://site.ru/forum/topics - значит что-то не так со ссылкой.

4. Очищаем, сносим-ставим - смотрим ссылка стала нормальная, пробуем - работает. Но при дальнейших экспериментах, выяснилось переустановка может не помочь, выяснилось такое происходит после установки плагина ext_joomsef4_kunena, можно в ссылках подправить на forum/topics/replies или на forum/recent, можно на некоторое время отключить этот плагин, походить по форуму, а потом снова включить, ссылки иногда обновляются на правильные, если не обновятся то нужно старые ссылки удалить, походить по форму и могут появится появятся новые, ещё иногда помогает исправить itemid на значение ссылки "Форум" ... в общем одного варианта не определил, каждый раз помогает что-то из перечисленного.

Пробуем на рабочем сайте, тыкаем, перебираем варианты - работает. Переходим к другим проблемам...
*

PREMIER

  • Захожу иногда
  • 164
  • 5 / 0
  • Самое важное — это мир во всём мире!
1. Дальнейшее разбирательство показывает что наиболее надёжно помогает замена itemid на значение ссылки "Форум", но это естественно приводит к тому что пункт меню Recent Topic (Последние) при переходе на него становится не активным.

2. Основную проблему определил в том что системная ссылка пункта меню index.php?option=com_kunena&view=topics&mode=replies а в JoomSEF index.php?option=com_kunena&view=topics хотя если покопаться в некоторых других экспериментальных системах там образуется ссылка index.php?option=com_kunena&mode=replies&view=topics - что тоже самое что первое только "в профиль"

3. Копаемся на других сайтах где работает чуть лучше, видим там что оказывается нужно и то и другое и всё это с itemid именно пункта меню Recent Topic (Последние). Создаём forum/topics с index.php?option=com_kunena&view=topics и forum/topics/replies с index.php?option=com_kunena&mode=replies&view=topics пробуем НЕ работает. Копаемся дальше, находим ещё одну ссылку с тем же itemid recent/replies/topics/feed с index.php?option=com_kunena&format=feed&mode=replies&view=topics пробуем - НЕ работает. Очищаем кэш - не работает.

4. Заходим в настройки пункта меню Recent Topic (Последние) видим там системная ссылка index.php?option=com_kunena&view=topics&mode=replies а тип меню Recent Topic (Последние темы), пробуем повторно перевыбрать тот же самый тип и после это системная ссылка становится index.php?option=com_kunena&view=topics - получается что может быть что-то не так в Kunena или Joomla.

5. Обновляем до Kunena 3.0.0 beta 3, проверяем - всё тоже самое. Обновляем Joomla до 3.1.1 - снова тоже самое.

6. Удаляем все ссылки связанные с этим пунктом меню, заходим в меню удаляем и создаём снова Recent Topic (Последние) с другим Itemid - та жа фигня.

Пока отключаю этот пункт меню до последующих разбирательств. У кого-нибудь есть предположения что не так?
*

PREMIER

  • Захожу иногда
  • 164
  • 5 / 0
  • Самое важное — это мир во всём мире!
Вот содержимое .htaccess, посмотрите пожалуйста, правильный?

Код
DirectoryIndex index.php
RewriteEngine On
RewriteBase /

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension XML files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension XML files
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
*

PREMIER

  • Захожу иногда
  • 164
  • 5 / 0
  • Самое важное — это мир во всём мире!
Пока перейдём к другому вопросы: пытаемся сделать так чтобы при переходе по пунктам меню форума не переставал быть активным пункт меню Форум в главном меню:

1. Перемещаю все пункты меню из Kunena меню в главное меню;
2. Если отключен JoomSEF всё работает, верхний пункт меню Форум всегда активный при переходе по всем подпунктам и темам, если включен JoomSEF форум не работает выдаёт 500-ю ошибку;
3. Выключаем создание новых ссылок, очищаем все существующие ссылки, форум всё равно не работает, странно! Ссылка у форума теперь стала системная, но даже при попытке перехода по системной ссылке, всё равно выпадает в 500-ю ошибку;
4. Чистим кэш, отключаем кэш чтобы не мешался - не помогает;
5. Пробуем сделать Форум ссылкой на список категорий, а не на главную страницу - так работает. Получается основная проблема в том что JoomSEF (без каких-то доп. настроек возможно) не может работать с сложным главным пунктом меню Kunena, он не сам по себе, а в нём выбираешь какую страницу Kunena он будет открывать, получается там какое-то перенаправление которое напрягает JoomSEF.

Результата пока нет. У когота есть идеи? :-)
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Официальный ответ такой, что Artio JoomSEF не работает с Kunena, начиная с версии 2.0
http://www.kunena.org/docs/Kunena_Features#Interoperability_with_other_Joomla_extensions

А фактически он работает, но Artio JoomSEF требует настройки.
*

Brun

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
  • Спец широкого профиля
Тема по по прежнему актуальна... артио путает itemID и часть траниц просто не загружается, но если убрать пункт меню форума с главного меню, то вроде работает.

Я сделал просто - отключил ссылку на форум в главном меню и создал ссылку "Внешний урл" , которая ведет на форум. Пока полет нормальный, не считая того, что конпка в меню не подсвечивается.

Напишите пожалуйста, кто как решает проблему нормального ЧПУ для Kunena и как? 404сеф?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сайт перестал работать после установки компонента Artio JoomSEF!

Автор Vorzhev

Ответов: 26
Просмотров: 21107
Последний ответ 16.06.2025, 11:31:14
от saks1959
Как сделать rel="canonical" на первую страницу пагинации в Artio JoomSEF?

Автор Vas80

Ответов: 0
Просмотров: 3523
Последний ответ 13.11.2020, 13:15:28
от Vas80
[Скачать] Русский язык для Artio JoomSEF 3.7.x (3.8.x)

Автор NeZ

Ответов: 25
Просмотров: 24847
Последний ответ 09.01.2020, 10:36:49
от koyot777
[РЕШЕНО]Artio таблицы в бд

Автор Technic

Ответов: 1
Просмотров: 3639
Последний ответ 03.04.2019, 11:42:05
от Technic
Проблемы с Artio JoomSEF

Автор 8hellforcer8

Ответов: 0
Просмотров: 4161
Последний ответ 10.09.2017, 10:20:02
от 8hellforcer8