+6.81
Рейтинг
18.69
Сила

Timur

Настраиваем сервер для LiveStreet. Часть III. Некоторые настройки ядра, репозитории и базовые утилиты.

Предыдущие части:

Сначала мы сделаем некоторые настройки ядра, за этот совет благодарность уходит господину ewden .

Редактируем файл /etc/sysctl.conf:
vim /etc/sysctl.conf

Я привожу конфигурацию от ewden целиком:
# Допустим случись у нас какой-то косяк с системой или ядром.
# Может произойти паника ядра (Kernel Panic)
# На сий случай есть настройка, указывающая, что система должна будет перезагрузится в течении 10 сек в примере:
kernel.panic = 12
# включение проверки маршрута от источника. Может быть полезно против некоторых видов спуфинг-атак.
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

# След. опция разрешает/запрещает передачу так называемых syncookies вызывающему хосту
# в случае переполнения очереди SYN-пакетов для заданного сокета. Когда в
# систему поступает слишком много запросов на соединение, то очередь может
# переполниться и тогда запускается передача syncookies в ответ на каждый
# SYN-запрос. Эта переменная используется для предотвращения syn-flood атак. 
net.ipv4.tcp_syncookies=1

# Устанавливает параметры приёма icmp-сообщений о переодресации
# Которые используются для уведомления (обычно маршрутизаторов)
# О существовании лучшего маршрута передачи пакетов целевому хосту.
# Включение параметра может справоцировать атаку человек по середине (Man In The Middle) 
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Разрешает или запрещает нашему хосту передачу выще упомянутых сообщений переадресации.
net.ipv4.conf.all.send_redirects = 0

# Позволяет отправителю определить путь, по которому должен следовать пакет по сети.
# Может позволить посторонним произвести подмену адресов. 
net.ipv4.conf.all.accept_source_route = 0

# Игнорироваться ICMP сообщения, отправленные на
# широковещательный или групповой адрес. Вполне очевидно, почему полезно
# включить этот параметр  - защита от smurf атак.
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Контролирует процент свободной памяти, при которой начнется активный сброс страниц в раздел swap. 
vm.swappiness=10


Читать дальше →

Регистрация/авторизация через виджет "Войти через ВКонтакте" в один клик

Странно, что такого плагина еще нет (может плохо искал). Предлагаю создать самый простой плагин авторизации/регистрации через готовый виджет «Войти через ВКонтакте» в один клик. Основное отличие от существующих плагинов — отсутствие необходимости создавать приложение ВКонтакте, а также отсутствие необходимость пользователю давать какие-либо разрешения, которые обычно отпугивают их.



Суть плагина предельно проста: отображает такую кнопку (предварительно созданную ВКонтакте владельцем сайта, т.к. кнопки для каждого уникальны) в окне авторизации/регистрации Livestreet, а также в месте для комментов для неавторизованных.

При клике по кнопке отправляется запрос в ВК, и обратно в GET'е возвращаются фото и имя юзера (на них не нужно вообще никаких разрешений), а также проверочный хэш:
?uid=1234567&first_name=Иван&last_name=Иванов&photo=/images/camera_a.gif&photo_rec=/images/camera_c.gif&hash=29b5d17e497976d1e74250246b2b9bcb

Задача плагина эти данные забрать из GET'а и создать юзера, сразу же его авторизовав. Логин делать либо равный id/логину ВКонтакте, либо транслитерированное имя и фамилия (желательна регулировка этой опции). Ну и после всего этого редирект обратно на страницу, с которой была нажата кнопка в виджете.

Кстати, нужно еще спросить у него e-mail. Жаль, что без него никак, а то было бы самое прозрачное решение: клик и ты мгновенно авторизован.

Дополнительная документация по механизму работы виджета есть по ссылке выше не дает постить ссылки — заходим ВКонтакте -> Разработчикам -> Виджеты и сторонние сайты -> Авторизация. Правда, там все настолько элементарно, что читать особо нечего. Подобную штуку я уже писал для другого самписаного сайта. За этот плагин взялся бы и сам, да только в коде LiveStreet не разбираюсь — боюсь, больше времени убъю на это. Кроме того, плагин крайне юзабельный должен получиться, что на нем можно было бы неплохо заработать. Дерзайте. Я ваш первый покупатель.

UPD: Посмотреть, как работа этого плагина может выглядеть, можно здесь.

Бесплатные плагины на GitHub

На хостинг исходных кодов GitHub для удобства и распределения разработки переехали следующие плагины:

Плагин «Аватары с Gravatar» (топик, git)
Топики только из личного блога в профиле пользователя (топик, git)
Плагин «Автовысота полей ввода» (топик, git)
Плагин «Lepra-style приветствия» (топик, git)
Запрет изменения топика при наличии комментариев (топик, git)
Плагин «No IE» (топик, git)
Изменение даты редактирования топика при комментировании (топик, git)
Плагин «Улучшенный „Закрытый режим“» (топик, git)
Плагин «No www» (топик, git)

Все знающие и умеющие приглашаются к увлекательному процессу поддержки и развития бесплатных Livestreet плагинов.
Благодарю за внимание.

Плагин «Установить содержимое блока в сайдбаре (Block content)»

Описание


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

В такой блок можно вставить все, например, простой текст (описание сайта), код виджета социальных сетей (вместе с JS), кроме php кода и команд smarty.

Читать дальше →

Плагин «ViewCount | Количество просмотров (обновление от 11.02.2013)»

В связи с настойчивой просьбой alfer о доработке плагина ViewCount выпущено небольшое обновление.

Теперь в конфигурационном файле плагина "[host]\plugins\viewcount\config\config.php" доступно 2 новых опции (просто процитирую конфиг):
/* 
	true - считаются посещения всех зарегистрированных/авторизованных пользователей кроме автора; 
	false - считаются посещени всех пользователей, кроме автора) 
	*/
	$config['OnlyAuthUser'] = false;
	
	/* 
	true - посещение засчитывается только один раз при открытии топика, 
		в дальнейшем при обновлении страницы (F5 в броузере) кол-во посещений не увеличивается; 
	false - посещение засчитывается каждый раз при обновлении страницы ) 
	*/
	$config['NoRefreshTopic'] = true;


Примечание
Должен заметить, что данное обновление защищает только от случая, когда просмотры наращиваются специально или, возможно, случайно через обновление страницы (F5, F5, F5, ...). Но если пользователь порядочно гуляя по сайту зашел в один топик, потом в другой, а затем снова вернулся к первому, то будет засчитано, что пользователь посетил исходный топик 2 раза. Мне кажется это справедливым и разумным.

Исправлено благодаря kpoxas :
1) При учете кол-ва посещений больше не очищается кэш;
2) Результат наращивания счетчика посещений отображается сразу при открытии топика, а не при следующем открытии как раньше;

Скачать можно тут: livestreetcms.ru/addons/view/467/
А пока не прошел модерацию, тут: rghost.ru/43783988

Руководство по оформлению вопросов.

Уважаемые вопрошающие, перед тем, как опубликовать свой вопрос, убедитесь, что прочитали и осмыслили данное руководство и привели свой топик в соответствии с ним. Это поможет специалисту быстрее сориентироваться в вашей проблеме, а вам получить ее решение в кратчайшие сроки.

1. Убедитесь, что подобный вопрос еще не задавали. Просмотрите FAQ, воспользуйтесь поиском по сайту. Вы не первый, кто сталкивается с проблемой, и вполне возможно, что ваша проблема уже решена. Не тратьте свое время и время участников сайта на повтор ответа, это не очень вежливо с вашей стороны.

2. Опишите в заголовке топика суть проблемы. Заголовки типа "ошибка", "помогите, пжл" — прямая и быстрая дорога в минус. Заголовок должен точно выражать суть вашей проблемы. Например "Публикация топика проходит очень медленно", "Как убрать капчу при регистрации?". Если вы получаете сообщение об ошибке, то резонно будет выделить часть его в заголовок. Например "Ошибка permission denied во время загрузки изображений". После того как вам удалось сформулировать заголовок точно и лаконично, воспользуйтесь поиском еще раз.

3. Опишите в тексте сообщения вашу ошибку полностью. Особенно важны следующие данные:
— Ситуации в которых проявляется ошибка
— Текст ошибки, если есть
— Действия, после которых ошибка начала проявляться (переезд на новый хостинг, установлен новый плагин)

Дайте краткую информацию о вашем сайте. Очень важно указать:
— Версию движка
— Список установленных плагинов

Для ошибок, связанных с сервером, нужно указать:
— Тип хостинга (свой сервер, шаред хостинг)
— Параметры хостинга
— Используемые связки серверов (apache+mod_php, ngnix+apache+php, ngnix+php_fpm)
— Логи ошибок сервера (их желательно выгрузить на файловое хранилище Dropbox или Яндекс.Диск)
Если вы не можете предоставить эти данные, будьте готовы к тому, что доброволец, который захочет решить вашу проблему, попросит у вас данные доступа к панели управления хостингом, или к серверу.

Для ошибок связанных с производительностью укажите:
— Данные, показываемые панелью производительности (под администратором, в футере всех страниц)
— Вывод плагина Debug Toolbar
— Вывод команды top (если есть доступ к консоли сервера)

Не скромничайте. Чем больше информации получит специалист, тем лучше.

4. Опишите действия, которые вы уже предприняли для решение ошибки. Чистили кэш — напишите. Отключали плагины — напишите.

5. Не «апайте» топик каждый час — вас сразу заминусуют. Если хотите привлечь внимание к своей проблеме, продолжайте решать ее самостоятельно. Если спустя сутки вам не ответили, опишите в комментарии дополнительные шаги, которые вы предприняли после публикации топика.

6. Будьте вежливы и грамотны. С вежливыми и грамотными людьми гораздо приятней иметь дело. Не требуйте помощи, никто не обязан вам помогать, а нахальным тоном вы только усугубите ситуацию. Если вы сомневаетесь в своем уровне владения языком — воспользуйтесь проверкой грамотности от Яндекса.

7. Если проблему удалось решить — обновите топик. Вставьте UPD с информацией о решении, или ссылкой на комментарий, который помог решить проблему. Также в заголовок было бы неплохо вставить фразу (решено), чтобы помочь людям, которые будут искать информацию о подобной проблеме.

Новички! Когда вы создаете топики, в которых смутно понятна суть вопроса, вы неуважительно относитесь к людям, которые будут читать эти топики, тратить время на то, чтобы разобраться в сути вашей проблемы, тратить время на задание дополнительных вопросов, людей, которые будут просматривать блог «Вопросы» в поисках ответов, но будут натыкаться на гору топиков «Памагите!!», «Как сделать чтобы было хорошо?» и ваш топик в том числе.
Когда вы создаете подобные топики из одного предложения, они плохо индексируются поисковиком, и людям с подобными проблемами необходимо создавать похожий топик вместо того, чтобы воспользоваться готовым решением. Это неуважение к сообществу и в какой-то мере эгоизм с вашей стороны. Руководство по составлению вопросов сделано для того, чтобы проблемы решались один раз, быстро и навсегда. Чтобы польза была не только вам, а и остальным участникам. Вы просите уделить внимание вашей проблеме? Уделите ей внимание сначала вы, составив грамотно вопрос, а потом уже просите об этом остальных.

Специалисты! Перед тем как отвечать в топик с проблемой, попросите пользователя привести его к минимальному соответствию с этим руководством, чтобы блог «Вопросы» не тонул в пустых топиках «Помогите!», «Нужна помощь».

Создано по мотивам этого текста. Дополнения и исправления приветствуются. Благодарю за внимание.

Помогите обрезать длину названия топика [РЕШЕНО]

Люди добрые, помогите, кто чем сможет)

Суть вопроса: в прямом эфире выдается название топика вот так — {$oTopic->getTitle()|escape:'html'}, как правильно обрезать это название если оно, скажем длиннее 50-ти символов, не обрывая посреди слова, и добавляя "..." в конце?

Спасибо за дельные рекомендации.

Убираем тормоз synio

На этот топик меня сподвиг тот факт, что последние 3-4 дня наблюдаются регулярные тормоза в работе и этого сайта и всех сайтов на LS с шаблоном synio в частности.

Вооружившись этим топиком от PSNet я понял, что все проблемы исходят от корпорации зла Google, т.е. серверы, которые отдают шрифт PT Sans регулярно глючат и тормозят работу сайта.

Читать дальше →