-4.09
Рейтинг
4.99
Сила

В заголовки отправлять 404 если по тегу нету топиков

Сейчас на ЛС есть «замечательная» возможность — если подставить любой тег, которого не существует:

http://livestreet.ru/tag/any_value


То показывается страница без топиков с кодом 200. Таким образом, если случайно где-то засветить такую ссылку, то она станет вполне адекватно индексироваться поисковиками.

Примечание:

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

Нужно в ActionTag.class.php если не найдено топиков по тегу, то возвращать 404 или 301 на главную чтобы поисковики не индексировали отсутствующий тег.

Баг с удалением сообщений

Здравствуйте!

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

версия ls — 1.0.2
кеш — мемкеш
браузер — хром

Вопрос заключается в следующем: есть ли еще у кого такое и как это пофиксить?
Спасибо.

Memcache

Здравствуйте, поставил Memcache и вылезла ошибка
Notice: MemcachePool::get(): Server localhost (tcp 11211, udp 0) failed with: В соединении отказано (111) in
всё перепробовал ничего не помогает… OS Centos.

Эксперементируем с responsive design на Livestreet

Может кому то пригодится или кто то хочет попробовать, название говорит само за себя.

В каждый тег
@media (max-width: XXXpx) { }
можем вставить тег стилей которые мы хотим уменьшит, увеличить, изменит.

             /** Эксперементируем с responsive design all %) **/
             
             
             /* Для мониторов больше 1300, ширина сайта будет 1200px */
             #container { width:1200px; min-width:600px;/* background: aqua; */}
             #content   { margin-right:20px; width:840px;}
            
             
             
             @media (max-width: 1300px) { 
             	#container { width:1130px; /*background: green; */}
             	#content   { margin-right:20px; width:770px;}
             }
             
             
             @media (max-width: 1200px) { 
             	#container { width:1030px; /*background: pink; */}
             	#content   { margin-right:20px; width:658px;}
             }
             
             @media (max-width: 1100px) { 
             	#container { width:950px;/*background: red;*/} 
             	#content   { margin-right:20px; width:568px;}
               
             	#header .nav.nav-main li     { font-size:26px;}	
             	#header .nav.nav-main li a   { margin-right:15px;}
             	
             
             }

Раскрытие директории в модуле сессий, часть 2

Что ж… модуль сессий в ЛС оказался слегка дырявым всего-навсего в пределах одного метода. Первая часть по раскрытию путей находится здесь, все тесты и описание будут приводится на основе исправленного модуля сессий из предыдущего топика.
В данном топике будет рассмотрено и исправлено 2 способа раскрытия путей на сайте под управлением ливстрит последней доступной версии (1.0.2).

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

Возможность просмотра оригинального загруженного изображения в теме

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

Моё решение:
* в Topic.class.php в методе UploadTopicImageFile — загрузка с компьютера
меняем
@unlink($sFileTmp);
return $this->Image_GetWebPath($sFileImage);
на
$aPathInfo=pathinfo($sFileImage);
@rename($sFileTmp, $aPathInfo['dirname'].'/'.$aPathInfo['filename'].'_full.'.$aPathInfo['extension']);
return $this->Image_GetWebPath($sFileImage);
т.е. не удаляем оригинальное изображение, а переименовываем на имя конечного, но с приставкой _full
* добавляем автоматическое оборачивание <_img_> в <_a_> (ActionAjax.class.php метод EventUploadImage)
меняем
$this->Viewer_AssignAjax('sText',$sText);
на
$aPathInfo=pathinfo($sFile);
$sFileFull=$aPathInfo['dirname'].'/'.$aPathInfo['filename'].'_full.'.$aPathInfo['extension'];
if( file_exists( $this->Image_GetServerPath( $sFileFull ) ) )
 $sText='<a href="'.$sFileFull.'">'.$sText.'</a>';
$this->Viewer_AssignAjax('sText',$sText);


Как-то так :)

Критика и улучшения приветствуются!

Настраиваем сервер для LiveStreet. Часть IV. MySQL.

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

Сначала генерируем и запоминаем пароль для MySQL-аккаунта root, который попросят во время установки:
pwgen -c -n 10 1


И запускаем установку:
apt-get install percona-server-server-5.5 percona-server-client-5.5


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

Настраиваем сервер для 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. Часть II. Vim, файловая система, hostname.

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

Итак, мы успешно зашли в консоль сервера. Первое что нужно сделать — перезагрузить его командой:
reboot

Замечание: Я буду стараться каждую отдельную команду оборачивать с блок как вот тут. Т.е. в этих инструкция — одна команад = один блок. Любая команда запускается на выполнение, набиранием оной в консоли и нажимаем клавиши ENTER после этого. Можно скопировать в буфер, сбросить в консоль правой кнопкой мыши и, опять же, ENTER.

Зачем перезагружать? — Нужно убедиться что сервер без проблем рестартует. Я лично сталкивался с проблемой (у очень именитого немецкого хостера, кстати), когда из-за изначально неправильно настроенного загрузчика, сервер самостоятельно к жизни не возвращался. Такие проблемы никому и за даром не нужны, поэтому это стоит проверить и если что-то не так, решать с помощью поддержки хостера, до начала установки.

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

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