Разделы сайта
Выбор редакции:
- Не торопитесь с покупкой DVB-T2 тюнеров
- QQ: регистрируемся и устанавливаем секретные вопросы Вот краткий перечень требований к email-маркетингу в Китае
- Как поставить комментарии вконтакте на wordpress
- Веб-камера ВКонтакте: новые функции
- Добавить в избранные закладки для всех браузеров Javascript добавить в избранное
- Как поставить музыку на звонок
- Обновление Андроид: как обновиться до новой версии, сделать откат?
- Что делать если не включается Nokia Lumia?
- Установка официальной прошивки на Lenovo RocStar (A319) Перепрошивка lenovo
- Обзор и тестирование игровой гарнитуры Kingston HyperX Cloud II
Реклама
Наблюдения за vBulletin или попытки кэширования динамического контента. Наблюдения за vBulletin или попытки кэширования динамического контента Каторжный vbulletin |
Любой движок, требует определенных действий для оптимизации его для лучшей и быстрой работы. В нашем же случае мы поговорим об оптимизации Vbulletin 4. Так как движок нашего форума постоянно обновляется, я не буду писать об оптимизации более ранних версий Vbulletin , а начну именно с версии 4.1.12. Хотя возможно, постепенно буду дополнять эту статью и оптимизацией для предыдущих версий, так как не все переходят на более новые. Здесь я приведу несколько примеров, чтобы сделать Ваш форум Vbulletin быстрее и лучше (начиная с самых простых вещей, переходя к более сложным). Пожалуйста, имейте в виду, что те вещи которые работают у меня, не обязательно будут работать и у вас. Поэтому все изменения вы делаете на свой страх и риск. Отключение списка пользователей. Существует простой способ, просто отключить функцию в AdminCP. (Settings -> Options -> User Listing Options) Это не глобально конечно, и вы можете это пропустить и не делать, просто задайте себе вопрос нужно ли вам это? Так как имея список пользователи могут сортировать его, посмотреть у кого больше сообщений, репутация и так далее. Ваши пользователи пользуются этим? Наверное, нет…, когда вы сами в последний раз пользовались этим списком? Как по мне, так мне кажется, что данные списки только на пользу спамерам, так как это самый простой способ собрать все именна участников форума Vbulletin 4 для рассылки спама в личных сообщениях. Кроме этого, запрос который необходим для генерации списка пользователей ужасен для серверов баз данных и может привести к большой загрузке сервера. Увеличение скорости при обработке списка личных сообщений. Если вы некогда не импортировали личные сообщения от внешних источников с помощью Impex или других средств, вы можете смело положиться на сортировку по ID для личных сообщений. Сортировка по ID будет делать так, чтобы вашему серверу базы данных не приходилось сбрасывать личные сообщения во временную таблицу для выполнения сортировки (делая запрос намного быстрее). Чтобы сделать это, нужно прописать небольшой модуль с расположением в private_messagelist_filter и прописать в нем следующее: If ($sortfield == "pmtext.dateline") $sortfield = "pm.pmid"; И все, вы только что сделали private.php на ~ 20% быстрее.
Идем на фтп, ищем файл includes /class_userprofile.php, и заменяем в нем данные следующим образом, ищем: $getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "thread AS thread USING (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ORDER BY post.dateline DESC LIMIT 20 "); и заменяем на это (а конкретнее ORDER BY): $getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "thread AS thread USING (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ORDER BY post.postid DESC LIMIT 20 "); Это делает запрос немного правильнее, чем он существует в данном виде. Таким образом не придется делать сортировку во временную таблицу. Для пользователей у которых более 1000 сообщений, исходный запрос занял бы около 10 секунд, в нашем же случае намного меньше. Это в первую очередь относится к профилю пользователя Vbulletin 4, для отображения последних сообщений. Если ваши форумы имеют порядок сортировки по умолчанию, и которые установлены без изменений, таких какие мы делали выше, убедитесь, что все ваши индексы находятся в своих таблицах. были случаи когда индексы по неведомым мне причинам пересекались и некоторые форумы не открывались. Я предлагаю сделать так, чтобы сортировка по умолчанию была в виде даты (столбец который использует эти данные называется «dateline»), и чтобы это реализовать, выполним запрос: ALTER TABLE thread ADD INDEX forumid2_dp (forumid, visible, sticky, dateline) Это запрос применим ко мне конкретно, в вашем случае forumid2_dp должен иметь ваше имя. Используйте на свой страх и риск. Будьте осторожны при установке дополнений. Просто потому, что кто-то делает модули и хаки, не означает, что они сделаны именно для вас, работали на больших форумах Vbulletin 4 и не имеют ошибок. Прекрасным примером служат сообщения о массовых взломах, через тот или иной хак. Конечно, можно предположить, что разработчики не могут всего учесть, и перелопатить все хаки, чтобы они не конфликтовали, но… Убедитесь, что модуль Vbulletin не вызывает больших нагрузок базы данных, убедитесь, что в хак имеет потенциал к защите от SQL инъекций или XSS. К сожалению, приложений и модификаций тысячи, и просто не реально все проверить. Лучше будет если все хаки вы будете писать себе сами, или заказывать у кого-либо. Конкретно под вас и ваши задачи. Не используйте таблицы в InnoDB. Тут конечно мне могут плюнуть в лицо, так как эта тема уже обсуждалась миллион раз, но по своему опыту могу сказать, что я работаю 100% на MyISAM таблицах для любого действия. Бывает обрабатываю 1000 запросов в секунду. Если вы уже начинаете психовать где при запросах у вас все повисает, особенно в новом поиске Vbulletin, смените таблицы InnoDB в MyISAM. MyISAM отвечает быстрее на отдельные запросы, так как не нужно управлять блокировкой отдельных записей. InnoDB работает быстрее в целом, но только потому, что позволяет выполнять запросы одновременно. если ваши запросы и так исполняются быстро под MyISAM, нет необходимости переходить на InnoDB. ИМХО. Рейтинг статьи0%РейтингUser Rating: 0.35 (1 votes)
Основные преимущества:
Ввиду того что демки форума, которую можно инсталлировать, фирма-производитель не предоставляет, пришлось устанавливать левую версию, скачанную с какого-то варезника. Так что инструкция может не совсем соответствовать процессу установки лицензионного форума. После инсталляции, сайт был удалён, по назначению не использовался. Для инсталляции vBulletin, переходим в панель управления хостингом (кнопка с шестерёнкой напротив заказа хостинга в биллинге), там в "Менеджер файлов", в нём переходим в директорию "www". Нажимаем кнопку "Закачать файл в текущую директорию": Указываем путь к файлу на своём компьютере: Выделяем архив с vBulletin, распаковываем его: Удаляем ненужные нам файлы и директории, в том числе директорию нашего www домена - при условии что там у вас ничего нужного нет. Если вы ставите не в корень сайта, или в директории сайта есть что-то нужное - удалять директорию www домена не надо: Выделяем директорию с инсталлятором vBulletin, переименовываем её: Вводим имя нашего сайта, в качестве имени директории: Переходим в раздел "Базы данных", панели управления хостингом: Создаём новую базу данных MySQL, и пользователя, с полными правами доступа к ней: Обратите внимание, что и пользователь и база автоматически получили преффикс, по имени вашего аккаунта на хостинг-сервере: Заходим на главную страницу нашего сайта, получаем такую ошибку vBulletin: Вбиваем путь к инсталлятору в адресной строке, надо дописать "install/install.php", после чего запускется программа установки форума vBulletin: Установщик vBulletin проверяет наличие файлов: На следующем шаге присходит проверка соединения с базой данных, она не проходит - т.к. в файле конфигурации форума вбиты неверные данные: Возвращаемся в панель управления хостингом, файловый менеджер, заходим в директорию с форумом, дальше субдиректория "includes". Открываем файл "config.php": Вносим верные данные от БД в конфигурационный файл, после чего его закрываем: Возвращаемся на сайт, к инсталлятору. нажимаем "F5", на этот раз всё хорошо, соединение с базой срослось: Программа установки vBulletin создаёт таблицы в базе данных: Инсталлятор vBulletin меняет типы некоторых таблиц: Вносятся данные в базу данных: Имортируются языки: Импортируются стили: Импортируется справка: Настройки по умолчанию не трогаем, программа установки vBulletin всё верно определила: Импортируются настройки по умолчанию: Вводим данные администратора vBulletin: Администратор vBulletin успешно добавлен: Установка vBulletin на хостинг успешно завершена: Следуя последнему совету инсталлятора, удаляем ненужные файлы: Можно зайти на форум vBulletin, убедиться что всё работает корректно: VBulletin предлагает всё, что может потребоваться администратору форума. Подкастинг, поддержка мультицитирования, разделение на сообщества и группы, репутация пользователей — всё это доступно в базовой комплектации, которую можно расширить за счёт установки сторонних расширений. Движок создаёт высокую нагрузку на сервер, особенно после установки дополнений и сторонних скриптов. Поэтому для нормальной работы придётся покупать нормальный хостинг — забудьте про бесплатные предложения и младшие тарифы за копейки, на которых тормозит даже сайт-визитка. Чем выше будет посещаемость, тем больше нагрузка на сервер, так что надо брать пропускную способность с запасом. Желательно — неограниченную. Экономить на хостинге нельзя ещё и потому, что Vbulletin предназначен для создания крупных проектов. Движок устойчив к взлому и спам-атакам, поэтому посетители могут чувствовать себя в безопасности. Модератор понадобится, но не для очистки веток от рекламных постов, а для управления дискуссиями. Для базовой настройки внешнего вида, добавления и изменения страниц можно использовать встроенный конструктор. Чтобы перейти в него, нужно авторизоваться на сайте под учётной записью администратора. Рядом с именем пользователя есть переключатель, который следует перевести в положение On. После повторного ввода пароля сайт откроется в режиме конструктора. В конструкторе можно добавить страницу, перенести на неё элементы, а затем добавить ссылку на страницу в главное меню сайта. Всё это делается так же просто, как в визуальном конструкторе. Но для глобальной кастомизации интерфейса потребуются навыки программирования, которые можно применить в панели администратора. Для пользователей, которые не желают взаимодействовать с серверной инфраструктурой, разработчики предлагают решение vBulletin Cloud. С его помощью можно получить полностью работающий форум со всеми административными функциями, минуя этапы скачивания, установки и настройки движка. По сути, после покупки тарифа вам остаётся только кастомизировать сайт под свои нужды, прежде чем запускать на него посетителей. ДизайнНа официальном сайте движка можно скачать темы для базового дизайна. Они легко устанавливаются на сайт и могут быть изменены в соответствии с пожеланиями веб-мастера. Для управления стилями в административной панели есть раздел Advertising. В нём можно:
Базовые изменения можно выполнить через конструктор. Например, чтобы изменить лого, нужно открыть вкладку Header и загрузить подходящий файл. На вкладке Navigation Bar можно управлять главным меню сайта: добавлять и удалять ссылки на другие страницы, менять порядок их расположения, назначать имена. Для этого не требуются навыки программирования, то есть базовую настройку внешнего вида может выполнить даже начинающий веб-мастер, который никогда раньше не работал с форумными движками. Поисковая оптимизация (SEO)На CMS vBulletin нет специального модуля для проведения поисковой оптимизации. Однако это не значит, что над форумом не нужно работать. К сайтам применимы требования об обязательном наличии тега H1, по которому роботу определяют тему страницы. Для настройки индексации нужно редактировать файл robots.txt - советы по его правильному оформлению можно найти на форумах, посвящённых сайтам на vBulletin. Поисковая оптимизация движка во многом завязана на включении или выключении отдельных функций. Например, необходимо отключать меню быстрого перехода для экономии кода. Таких мелочей очень много, узнать их можно только на специализированных форумах - в справке vBulletin ничего подобного нет. Для добавления новых возможностей доступны плагины SEO. Самый известный - VBSEO. С его помощью можно оптимизировать форум под требования поисковых систем: настроить редиректы, убрать дубли, исключить из индексации отдельные страницы. Главный недостаток - VBSEO создаёт дополнительную нагрузку на сервер, которая у CMS и так немаленькая. ТарифыПожизненная лицензия с обновлениями на год обойдётся в 250 долларов. За эти деньги доступны все возможности движка:
250 долларов — не окончательная цена. За эти деньги вы приобретаете только право пожизненного использования движка.
Если вы хотите, чтобы форум хорошо выглядел на небольших экранах, можно купить «Мобильный пакет». Лицензия обойдётся в 399 долларов, а продление обновлений — 359 долларов ежегодно. Отдельно мобильная версия стоит 199 долларов. Без неё форумом нормально можно пользоваться только на компьютере. При выборе vBulletin Cloud доступно три тарифа: Bronze, Silver и Gold. Все они предлагают:
Минимальный тариф обойдётся в 19,95 долларов в месяц (14,99 долларов при оплате за год). Он предлагает пропускную способность 25 Гб, бесплатную поддержку и домен в подарок. Это отличное решение для небольших форумов с невысоким трафиком. Silver стоит уже 39,95 долларов в месяц (29,99 долларов при оплате за год) и даёт 75 Гб пропускной способности, а также поддержку через систему тикетов. Этот тариф подходит для растущих сообществ со средним трафиком. Максимальный тариф - Gold за 74,95 долларов в месяц (59,99 долларов при оплате за год). Пропускная способность 200 Гб, бесплатная поддержка по телефону. Оптимальное решение для крупных форумов. Достоинства и недостаткиVBulletin работает очень давно, поэтому у него развитое сообщество пользователей, подробная документация и много сопутствующих материалов: тем, шаблонов, расширений. Среди других достоинств отметим:
Если вы до этого использовали другой форумный движок, то долго будете привыкать к административной панели VBulletin. Она не плохая — просто необычная и в некоторых моментах неудобная. VBulletin всегда отличался высокой нагрузкой на сервер, особенно при установке нескольких расширений. Это нужно учитывать при выборе хостинга и закладывать в бюджет, чтобы купить тариф с большей мощностью. Расходы получаются очень высокие, а сэкономить точно не получится — это чревато тем, что форум будет «падать» при наплыве посетителей. После смены команды разработчиков много вопросов возникает и к безопасности движка. Самой стабильной версией остаётся 3.8. Четвёртая и пятая версии постоянно получают обновления безопасности, которые говорят о том, что разработчики латают дыры уже после выпуска продукта. Если Вы держите свой форум, то рано или поздно приходится думать о защите Вашего форума - ведь злоумышленники не дремлют! В этом топике я (при помощи хабраюзера ReaM) собрал список советов по увеличению безопасности Вашего форума. Заинтересовало? Добро пожаловать под хабракат:) Итак… Начнем: 1) Апдейтимся в самый конец своей линейки(3.5.х,3.6.х,3.7.х)Описание: Без комментариев Почему?: Jelsoft постоянно закрывает всплывшие уязвимости. Никому не хочется работать на прошлогоднем дырявом форуме, правда? 2) Переименовываем админку и модеркуОписание: Переименовываем админку, но в конфигурации ни в коем случае не пишем путь к нашей переименованной админке. Также переименовываем модерку, но её уже можно прописать в конфигурации(хотя тоже нежелательно), так как она менее уязвима. Смотрите сами:)Почему?: Если переименовать админку и не указать путь в конфигурации, то будет гораздо сложнее её найти и следовательно применить XSS или еще что похуже. Есть минусы: - редактирование профиля и добавление модераторов перестанут работать без ручной правки ссылок. 3) Ставим.htaccess на админку:Описание: B) Также ставим дополнительный пароль: Почему?: Дополнительное паролирование админки никогда не помешает. 4) Удаляем файлы и папки:Описание:
Почему?: Небезопасные файлы от нулёных версий могут дать возможность просматривать список файлов, а также папка install очень вредная=) 5) Перемещаем вложения и аватарыB) Аватары -> Тип хранения изображений пользователя Почему? : Линейка 3.5, если мне не изменяет память, давала прямые ссылки на картинки - что при неправильной конфигурации хостинга, давало шанс залить шелл. 6)Выставляем права на папкиОписание: Если выполнен пункт 5, то теперь смело ставим права на папки custom_* 644, так как они нам теперь не нужны(или можете их удалить). Дальше, если Вы устанавливали vBulletin по инструкции, у вас все папке в / (корне) должны иметь права 644. Проверьте это, если не так, то выставите права 644. Почему?: Затрудняем хакеру заливку шелла. 7) Нигде, никогда, никому не включаем опцию "Разрешить html".Описание:
Без комментариев. Зачем кому-то HTML? 8) Ставим.htaccess на папку includesОписание : Ставим.htaccess на папку includes следующего содержания: Order allow, deny Почему?:
9) Пихните в директорию с файлами, на которых стоят атрибуты 0777 такой.htaccess:kerk _http://vbsupport.org/forum/member.php?u=30Описание: RemoveHandler .phtml
Почему?: Скрипты с указанными расширениями более невозможно использовать в пределах директории с таким htaccess. 10) Отредактируйте config.php, впишите id администраторов в поле undeletable user(неудаляемые/неизменяемые пользователи).Описание:
/includes/config.php. Просто вписать id администраторов, после того когда внесли все необходимые изменения в профиль. 11) После удаления модов/хаков не забывайте удалять файлы, которые Вы закачали вместе с ними.Описание:
Без комментариев 12) Никогда не сохраняйте бэкапы в пределах доступности веб-сервера.Описание: Без комментариев
13) Установить плагин «Инспектор файлов».Автор - Ghost (http://www.vbsupport.org/forum/member.php?u=38422)Описание (цитата):
Лазая по своим старым скриптам, напоролся на этот продукт - Инспектор файлов. Это несколько модулей для vBulletin, при помощи которых можно сохранять в базе данных список существующих файлов и время от времени проверять, не изменились ли какие из них (для каждого файла сохраняется размер, владелец и права доступа) - встроенная cron-задача уведомит администратора по почте о найденных несоответствиях. Можно сохранять в БД несколько различных копий (ревизий) списков файлов для сравнения (автоматическая проверка с уведомлением на email сверяется только с последней ревизией). Внешний вид и доступные настройки можно посмотреть на скриншотах. Скачать с vbsupport.org Почему?: Незаменимая вещь в поиске шеллов на сайте, но ставить её необходимо заранее. Итог:Доступ к админке получить довольно сложно - следовательно залить шелл через админку тоже. Можно залить шелл через уязвимости vB, но если лить в /includes (там есть для некоторых хаков файлы, которые требуют 777), то у нас на папке includes стоит deny from all - шелл попросту не будет доступен извне! На остальные папки можно ставить права 644, если проделали все пункты - тогда достаточно сложно будет залить, особенно при правильной настройке chroot. И наконец, мы добавили защиту от самих админов, которые лазают где не попадя, тем самым сажая себя на XSS"ки и трояны. Собственно, на этом всё… Это первый мой топик на хабре, так что просьба сильно не пинать:) UPD: Перенес в «Информационную безопасность». |
Популярное:
Новое
- QQ: регистрируемся и устанавливаем секретные вопросы Вот краткий перечень требований к email-маркетингу в Китае
- Как поставить комментарии вконтакте на wordpress
- Веб-камера ВКонтакте: новые функции
- Добавить в избранные закладки для всех браузеров Javascript добавить в избранное
- Как поставить музыку на звонок
- Обновление Андроид: как обновиться до новой версии, сделать откат?
- Что делать если не включается Nokia Lumia?
- Установка официальной прошивки на Lenovo RocStar (A319) Перепрошивка lenovo
- Обзор и тестирование игровой гарнитуры Kingston HyperX Cloud II
- Бесплатная проверка iPhone по IMEI