Вышел phpBBex 1.8.0! Улучшенная репутация и автоочистка логов

Список разделов phpBBex 1.x (поддерживается) Новости 1.x

Описание: Новости проекта phpBBex 1.x. Поддерживаются PHP 5.4+, 7.0+ и 8.0+.

  • 22

Сообщение #1 VEG » 04.07.2014, 21:05

Итак, уже накопилось немного полезных изменений, отличный повод для нового релиза. В новой версии улучшена система репутации, добавлена автоочистка логов и исправлено множество недочётов.

Скачать: phpbbex_v1.8.0.7z (1.6 MB, лицензия: GPL).

Требования:
  • PHP не ниже 5.2.3 с поддержкой Unicode в регулярных выражениях
  • MySQL не ниже 5.0.3

Что нового?

Опциональное отображение поставивших оценки пользователей

show-reputation-marks.png
show-reputation-marks.png (6.91 КБ) Просмотров: 176969


Теперь при желании администратор может включить отображение списка поставивших оценки пользователей. Это также поможет вычислить пользователей, занимающихся «накрутками» себе или кому-то. По умолчанию этот список выводится в подсказке к блоку с итоговой оценкой. Но в шаблон передаются все необходимые данные для того, чтобы можно было вывести этот список в любом другом виде. Если вы знаете HTML, изменить вывод вы можете в шаблоне viewtopic_body.html.

Массовое удаление оценок, выставленных пользователем

reputation-mass-delete.png
reputation-mass-delete.png (5.59 КБ) Просмотров: 176969


Если какой-то пользователь был сильно огорчён, и старательно поставил минус всем сообщениям, до которых смог дотянуться — теперь это не проблема. Функция массового удаления выставленных оценок позволит быстро исправить ситуацию. Можно указать период времени для удаления оценок, а также тип оценок. Хорошие оценки ведь можно и оставить, неправда ли? :) Впрочем, если пользователь наставил себе «плюсиков» с других учётных записей — эти оценки будут автоматически удалены при удалении учётных записей «виртуалов».

Синхронизация оценок

sync.png
sync.png (7.06 КБ) Просмотров: 176969


Появилась синхронизация оценок, которая пересчитывает репутацию и лояльность каждого пользователя, при этом все оценки от уже несуществующих пользователей или для уже удалённых сообщений не учитываются. Внимание! Медленная операция, если у вас очень большой форум и слабый хостинг — делайте на локальной копии форума!

Автоматическая очистка логов

keep-logs.png
keep-logs.png (5.84 КБ) Просмотров: 176969


После введения логгирования всех попыток регистрации возникла проблема «разбухания» таблиц логов: боты пытаются регистрироваться так часто, что количество записей об этом быстро переходит на десятки тысяч. Смысла хранить так много подобной информации, конечно же, нет, поэтому теперь в настойках можно указать, как долго хранить разные типы логов. Система будет периодически запускать автоматическую очистку логов от устаревших записей, в среднем при каждой 25-ой записи в лог (для каждого типа логов раздельно).

Оптимизация

  • При просмотре тем не выполняется лишний запрос к БД при выключенной системе репутации.
  • Значительная оптимизация пересчёта счётчиков тем (добавлен необходимый индекс).
  • Оптимизация вывода диалогов splash (о новом личном сообщении).
  • Удалён CSS код поддержки IE6 и IE7 (уменьшение количества предупреждений в современных браузерах, немного меньший объём CSS).
  • Теперь файл tweaks.css пуст и может использоваться пользователями для добавления собственных CSS правил без вмешательства в остальные файлы.

Исправления ошибок и недочётов

  • Первое закреплённое сообщение корректно отображается на первой странице при обратном порядке сортировки сообщений в теме.
  • Склейка сообщений не происходит, если новое сообщение и предыдущее в сумме превышают допустимый лимит по количеству символов в сообщении.
  • В уведомлениях была исправлена терминология на принятую в phpBBex («форум» вместо «конференция» и т.д.)
  • В выпадающих списках с выбором количества дней в админке исправлена ошибка, когда после выбора «Все дни» этот пункт не отображался при следующем просмотре страницы с настройками.
  • BBCode [url] теперь поддерживает протокол steam.
  • Добавлена валидация browser_id (на случай, если пользователь вручную запишет в cookies некорректное значение).
  • Для блока, выводящего вложенные изображения, задана максимальная ширина, чтобы он не вылазил за пределы отведённого места.
  • Улучшена совместимость с модами, перехватывающими вывод шаблонизатора.
  • Администратор может работать со всеми форумами в ACP даже если у него нет прав модератора.

Другое

  • Код встроенного STK обновлён до версии 1.0.7-PL1.
  • jQuery 2.1.1 (1.11.1 для IE8) и MediaElement JS 1.14.2.

Обновление c phpBBex 1.7.1 до 1.8.0

Если у вас более ранняя версия, сперва обязательно выполните инструкцию по обновлению до phpBBex 1.7.1. После этого выполните следующие инструкции.

  1. Сделайте резервную копию вашего сайта
  2. Замените все файлы (кроме config.php!) предыдущей версии phpBBex (или используйте Mercurial для автоматического сохранения ваших модов).
  3. На данном этапе у вас должна быть база со схемой phpBBex 1.7.1. Сейчас выполните (один раз!) следующий SQL скрипт в вашей базе (при помощи PhpMyAdmin в панели вашего хостинга или другого подобного инструмента):
    Код: Выделить всё
    ALTER TABLE phpbb_topics ADD INDEX topic_poster(topic_poster);
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('display_raters', '0');
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('keep_admin_logs_days', '365');
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('keep_mod_logs_days', '365');
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('keep_critical_logs_days', '365');
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('keep_user_logs_days', '365');
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('keep_register_logs_days', '14');
    REPLACE INTO phpbb_config (config_name, config_value) VALUES ('phpbbex_version', '1.8.0');
  4. Не забудьте сбросить кэш в админке (на главной), обновить шаблоны, стили и наборы изображений.
  5. Зайдите в Админка » Система » Управление модулями » Администраторский раздел » Обслуживание » Логи, добавьте модуль «Настройки логов» (находится в группе «Управление форумом»), после чего не забудьте включить этот модуль.

Переезд исходных кодов на Bitbucket

С самого появления phpBBex его исходный код находился на сервисе Google Code. Однако, к сожалению, Google давно не развивает этот сервис, а недавно там и вовсе запретили создавать новые файлы в разделе Downloads. Хорошо, что они хотя бы оставили возможность скачивать старые файлы (для архивных целей). А для нас это отличный повод поменять хостинг исходных кодов на что-то более современное. Мы выбрали Bitbucket. Этот сервис позволяет создавать репозитории Mercurial или Git на выбор. Мы остаёмся на Mercrurial, поскольку он более приятен в использовании.

Адрес нового репозитория: https://bitbucket.org/vegalogic/phpbbex/
Команда для клонирования нового репозитория:
Код: Выделить всё
hg clone https://bitbucket.org/vegalogic/phpbbex

В репозитории была изменена мета-информация, поэтому если вы ранее получали исходные коды phpBBex из репозитория на Google Code, просто указать новый родительский репозиторий не выйдет. Следуйте этой инструкции:

  1. Загрузите все доступные на Google Code изменения в ваш репозиторий, выполнив следующие команды:
    Код: Выделить всё
    hg pull -r v1.8.0
    hg update -r v1.8.0
  2. Удалите в вашем репозитории (или переместите куда-нибудь на всякий случай) каталог .hg и файл .hgtags.
  3. В любом другом каталоге клонируйте новый репозиторий до версии 1.8.0 командой:
    Код: Выделить всё
    hg clone -r v1.8.0 https://bitbucket.org/vegalogic/phpbbex
  4. В появившемся каталоге phpbbex возьмите каталог .hg и файл .hgtags, и скопируйте их в каталог с вашим форумом.

Готово. Теперь ваш репозиторий привязан к новому репозиторию phpBBex на Bitbucket.

Смотрите также


Оставайтесь с нами — у нас всегда много приятных мелочей! :)
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев


Сообщение #161 Sferg » 11.09.2014, 17:23

Sumanai:Уже 5.6 вышел.
phpBBex стабильно работает на 5.5 с версии 1.7.1. На 5.6 ещё не пробовали.

Ну, меня интересует, что нужно прописать в переменной $acm_type. Сейчас у меня 'xcache'. А в случае с Opcache?

Sumanai:с MariaDB могут быть проблемы с определением размера БД из админки.

Да, мне это известно - сам же к Вам не так давно и обращался по этому вопросу. Оказывается, проблема была с установленной MariaDB 10.x.x - тогда в админке не определялся размер БД. Если же стоит версия 5.5.x, то проблем с определением размера нет.
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #162 Sumanai » 11.09.2014, 17:51

Sferg:А в случае с Opcache?

Да ничего, стандартно file, Opcache не предоставляет API для забивания памяти своими файлами. Для этого лучше будет установить memchached.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #163 Антон Казанцев » 11.09.2014, 19:52

Когда там релиз новой версии?
Антон Казанцев
Репутация: -106
С нами: 11 лет 1 месяц

Сообщение #164 Sumanai » 11.09.2014, 19:52

После выхода 3.1 и адаптации, говорили же.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #165 Антон Казанцев » 11.09.2014, 19:55

Я имел ввиду 3.1. Когда это будет интересно мне?? Уже устал ждать.
Антон Казанцев
Репутация: -106
С нами: 11 лет 1 месяц

Сообщение #166 Sferg » 11.09.2014, 20:43

Антон Казанцев, с данным вопросом Вам лучше обратиться сюда. Официальные разработчики Вам быстрее ответят - от них всё зависит.
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #167 Антон Казанцев » 11.09.2014, 21:01

А как Вы думаете?
Антон Казанцев
Репутация: -106
С нами: 11 лет 1 месяц

Сообщение #168 Sferg » 11.09.2014, 21:20

Антон Казанцев, как говорится, обещанного три года ждут. Но надежда остаётся - в августе 3-й RC выпустили. Развивается медленно, к сожалению, но всё же развивается.
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

  • -1

Сообщение #169 Антон Казанцев » 11.09.2014, 21:33

15 сентября релиз будет. Думаю так. А если не так то 1 октября,ноября, декабря или января. Вот как то так.
Антон Казанцев
Репутация: -106
С нами: 11 лет 1 месяц

Сообщение #170 Sferg » 12.09.2014, 11:18

Sumanai, PHP 5.5.x / 5.6.x ставить не стал - остался на стабильном 5.4.14. Но отдельно установил Zend OPcache 7.0.3. По сравнению с XCache (его я удалил), минимальное время генерации главной страницы форума снизилось с 0.034, до 0.024.

+ ещё установил memcached и php5-memcache (только вот не знаю, совместимы ли они между собой: где-то читал, что к memcached нужно ставить именно php5-memcached - может врут!) и прописал в ../config.php следующее:

Код: Выделить всё
$acm_type = 'file';
@define('PHPBB_ACM_MEMCACHE_HOST', 'localhost');
@define('PHPBB_ACM_MEMCACHE_PORT', 11211);
@define('PHPBB_ACM_MEMCACHE_COMPRESS', false);
$load_extensions = 'memcache';

Правда, не знаю, есть ли в этом какой-либо смысл. Визуально вроде бы ничего не изменилось - минимальное время генерации главной страницы осталось тем же - 0.024.

P.S. Жаль, что я не писатель. А то б сварганил бы эдакий роман-эпопею "Битва за время". :smile:
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #171 Sumanai » 12.09.2014, 15:23

Sferg:остался на стабильном 5.4.14.

5.5 и 5.6 не менее стабильные.

Sferg:$acm_type = 'file';

Вроде как именно сюда нужно прописывать memcache.

Sferg:Визуально вроде бы ничего не изменилось

Посмотрите в папке кеша, там должны быть только кеши стилей.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #172 Sferg » 12.09.2014, 15:54

Sumanai:5.5 и 5.6 не менее стабильные.

Может, на выходных попробую. Я просто никак не могу найти с какими параметрами был собран PHP 5.4.14 - чтоб с точно такими же собрать 5.5.x \ 5.6.0. В phpinfo() данной сборки не выводится секция "Configure Command", в которой эта информация пишется...

Sumanai:Вроде как именно сюда нужно прописывать memcache.

Попробовал закомментировать $load_extensions и в $acm_type вписать memcache - вроде бы тоже ничего визуально не изменилось.

Sumanai:Посмотрите в папке кеша, там должны быть только кеши стилей.

Да, в директории Cache есть много различных файлов... Все эти файлы можно удалить? Ну, кроме .htaccess и index.htm.

Провёл эксперимент. Cоздал 2 темы. В первой разместил коротенькое сообщение (14 символов). А во второй разместил содержимое файла, предварительно сгенерированное с помощью dd if=/dev/urandom of=/file.txt bs=59K count=1.

Время генерации страницы темы с коротким сообщением: 0.041s - 0.044s (изредка до 0.053s доходит)
Время генерации страницы темы с длинным сообщением: 0.042s - 0.044s (изредка до 0.053s доходит)

Это всё замерено при использовании Zend OPcache. Вчера, когда у меня ещё стоял XCache, время генерации страницы темы с длинным сообщением было 0.205s - 0.215s. То есть в разы больше. Посему от XCache отказался в пользу Zend OPcache.

P.S. Правда, если в теме несколько длинных сообщений, то Zend OPcache уже не справляется...
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #173 Sumanai » 12.09.2014, 16:44

Sferg:Все эти файлы можно удалить?

Удалите, походите по форуму, а потом проверьте, наполнилась ли папка.

Добавлено спустя 6 минут 25 секунд:
Sferg:Я просто никак не могу найти с какими параметрами был собран

Зачем собирать :eek: Есть же репозитории. Я сам из какого- то ставил. Просто прописал в пакетном менеджере репозиторий и установил одной командой.
Самостоятельная сборка хоть и даёт преимущества в настройке встроенных модулей, но несёт множество проблем с обновлением. Вот как вы обновляете? Опять качать исходники и пересобирать? А я двумя командами apt-get update и apt-get upgrade.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #174 Sferg » 12.09.2014, 16:56

Sumanai, побродил. Появились такие файлы:

Код: Выделить всё
ctpl_admin_acp_bbcodes.html.php
ctpl_admin_acp_bots.html.php
ctpl_admin_acp_forums.html.php
ctpl_admin_acp_logs.html.php
ctpl_admin_acp_main.html.php
ctpl_admin_acp_permissions.html.php
ctpl_admin_acp_styles.html.php
ctpl_admin_acp_users_avatar.html.php
ctpl_admin_acp_users_feedback.html.php
ctpl_admin_acp_users.html.php
ctpl_admin_acp_users_overview.html.php
ctpl_admin_acp_users_prefs.html.php
ctpl_admin_acp_users_profile.html.php
ctpl_admin_acp_users_signature.html.php
ctpl_admin_acp_users_warnings.html.php
ctpl_admin_overall_footer.html.php
ctpl_admin_overall_header.html.php
ctpl_admin_permission_mask.html.php
tpl_prosilver_forumlist_body.html.php
tpl_prosilver_index_body.html.php
tpl_prosilver_jumpbox.html.php
tpl_prosilver_overall_footer.html.php
tpl_prosilver_overall_header.html.php
tpl_prosilver_posting_attach_body.html.php
tpl_prosilver_posting_buttons.html.php
tpl_prosilver_quickreply_editor.html.php
tpl_prosilver_viewforum_body.html.php
tpl_prosilver_viewtopic_body.html.php

В конфиге прописано:

$acm_type = 'memcache';
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #175 Sumanai » 12.09.2014, 17:01

Sferg:Появились такие файлы:

Это нормально, стили всегда на диске.
Можете ещё для очищения совести посмотреть содержимое мемкеша через phpMemcachedAdmin или похожий инструмент.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #176 Sferg » 12.09.2014, 17:43

Sumanai:Зачем собирать :eek: Есть же репозитории.

Ну да, в штатном репозитории и бэкпортах есть, только отнюдь не самой последней свежести(((

Sumanai:Я сам из какого- то ставил.

Не припомните, из какого именно? Случаем не из dotdeb? Хотя там у них последняя версия 5.4.32-1~dotdeb.1 (а на сайте упомянута 5.5.16, но в репозитории что-то нет - или я ослёп?). Вообще, dotdeb, якобы пользуется дурной славой (пакеты кривые, проблемы с зависимостями и т.д.), поэтому прибегаю к нему лишь в крайних случаях.

Sumanai:Просто прописал в пакетном менеджере репозиторий и установил одной командой.

Вручную редактирую файл /etc/apt/sources.list (привык всё собственноручно править). :smile:

Sumanai:но несёт множество проблем с обновлением.

Ну да, неудобства, конечно есть((( Но иногда приходится собирать.

Sumanai:Вот как вы обновляете? Опять качать исходники и пересобирать?

Ну, например, я Nginx вручную пересобираю. Для повышения приватности + собственное оформление вывода сообщений об ошибках.

Sumanai:А я двумя командами apt-get update и apt-get upgrade.

Я в ~/.bash_aliases прописал:

Код: Выделить всё
alias update='aptitude update'
alias upgrade='aptitude upgrade'

И обновляюсь командами update и upgrade. Ещё можно в файл /var/spool/cron/crontabs/root добавить:

Код: Выделить всё
0    */1    *    *       *      /usr/bin/aptitude update -y; /usr/bin/aptitude upgrade -y

И система будет обновляться сама каждый час)))
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #177 Sumanai » 12.09.2014, 18:02

Sferg:Случаем не из dotdeb?

Ну да, посмотрел в sources.list

Sferg:но в репозитории что-то нет - или я ослёп?

Там нужно подключить
Код: Выделить всё
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

Sferg:Вообще, dotdeb, якобы пользуется дурной славой

Вроде работает, но мускул немного криво настроен, в логах ошибки есть.

Sferg:Вручную редактирую файл /etc/apt/sources.list (привык всё собственноручно править).

И я так же, поэтому и написал "добавил (строчки) в пакетный менеджер(файл в apt)" :smile:

Sferg:Для повышения приватности

Строчку "Server nginx" затираете?
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #178 Sferg » 12.09.2014, 18:49

Sumanai:Там нужно подключить
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

О, благодарствую! Самое интересное, я эти строчки вчера где-то видел (потом не смог найти), но не придал значения - полагал, что и с:

Код: Выделить всё
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all

пакет увидится. А эвоно оно как. Век живи, век учись - всё равно дураком помрёшь.

Sumanai:Вроде работает, но мускул немного криво настроен, в логах ошибки есть.

Я одно время ставил PHP из dotdeb. Работал, в общем-то, нормально. Но очень уж они любят надпись "dotdeb" везде ставить (в том же phpinfo(), например).

Sumanai:И я так же, поэтому и написал "добавил (строчки) в пакетный менеджер(файл в apt)"

Приятно, что я не одинок в мире Linux :wink:

Sumanai:Строчку "Server nginx" затираете?

В файле ../src/http/ngx_http_header_filter_module.c

Строки:
Код: Выделить всё
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

Заменяю на:
Код: Выделить всё
static char ngx_http_server_string[] = "Server: Unknown" CRLF;
static char ngx_http_server_full_string[] = "Server: Unknown" CRLF;

Ну и играюсь с этим файлом: ../src/http/ngx_http_special_response.c - убираю упоминания о версии Nginx и, как писал выше, меняю оформление вывода ошибок.
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Сообщение #179 Sumanai » 12.09.2014, 20:16

Sferg:Самое интересное, я эти строчки вчера где-то видел

Да прямо на официальном сайте это и сказано.

Sferg:Но очень уж они любят надпись "dotdeb" везде ставить (в том же phpinfo(), например).

Это мешает?

Sferg:Приятно, что я не одинок в мире Linux :wink:

Я знаком с ним только со стороны консоли вебсервера.

Sferg:В файле

Знаю, как и где. Просто не вижу смысла- это последнее, чем нужно заниматься со стороны безопасности сервера. Есть намного более важные вещи.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #180 Sferg » 12.09.2014, 20:39

Sumanai:Да прямо на официальном сайте это и сказано.

Да, действительно. Не обратил внимания. :sad:

Sumanai:Это мешает?

В принципе, нет. :smile:

Sumanai:Я знаком с ним только со стороны консоли вебсервера.

Ну, этого вполне достаточно. Консоль - основной инструмент взаимодействия ОС и пользователя.

Sumanai:это последнее, чем нужно заниматься со стороны безопасности сервера. Есть намного более важные вещи.

Да, Вы правы. Я просто отношусь к администрированию с некоторой долей здоровой паранойи)))
Sferg
Репутация: 12
С нами: 10 лет 8 месяцев

Пред.След.

Вернуться в Новости 1.x



cron