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

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

Не самая сложная, не самая последняя, но самая важная часть. То, ради чего, всё и затевалось :)

Для начала, нужно обеспечить появление ZIP-a с последней версии LiveStreet (на данный момент это LiveStreet_1.0.3.zip ) в корневой папке сайта. Качаем ZIP отсюда livestreetcms.ru/download/ и по SFTP забрасываем в папку сайта /var/www/superls.ru/public/

Устанавливаем
cd /var/www/superls.ru/public/

unzip LiveStreet_1.0.3.zip

Cоздаём файл config.local.php:
cp /var/www/superls.ru/public/config/config.local.php.dist /var/www/superls.ru/public/config/config.local.php

Раздаём необходимые права на файлы:
chown -R www-data:www-data /var/www/superls.ru/public/

find /var/www/superls.ru/public -type d -exec chmod 770 {} \;

find /var/www/superls.ru/public -type f -exec chmod 660 {} \;


Лучше чтобы к этому моменту была создана пустая база данных и MySQL юзер для неё (как это было описано в четвёртой части ). Запускаем и проходим процесс установки:
http://superls.ru/install/

На экране настройки базы данных указываем нашу базу и нашего юзера.

Проверяем что всё работает (если всё OK, покажет нормальный экран LiveStreet c просьбой удалить папку install):
http://superls.ru/


После чего удаляем всё что больше нам не надо:
rm /var/www/superls.ru/public/LiveStreet_1.0.3.zip

rm -r /var/www/superls.ru/public/install/

rm /var/www/superls.ru/public/info.php

rm /var/www/superls.ru/public/ip.php

rm /var/www/superls.ru/public/test.html


В пятой части мы вносили изменения в файл /etc/hosts. Самое время их убрать, больше не нужно.

И деинсталлируем lynx, больше не нужен:
apt-get purge lynx

Подключаем Memcached

В config.local.php добавляем следующие строки:
/**
 * Настройка memcached
 */
$config['memcache']['servers'][0]['host'] = 'unix:///var/run/memcached.socket';
$config['memcache']['servers'][0]['port'] = '0';
 
/**
 * Настройки кеширования
 */
// Устанавливаем настройки кеширования
$config['sys']['cache']['use']    = true;               // использовать кеширование или нет
$config['sys']['cache']['type']   = 'memory';           // тип кеширования: file, xcache и memory. memory использует мемкеш, xcache - использует XCache
$config['sys']['cache']['prefix'] = 'superls';            // произвольный префикс кэша, должен быть уникальным для каждого сайта

Обращаю особое внимание на опцию $config['sys']['cache']['prefix'] Она нужна для того, чтобы один и тот же Memcached можно было использовать несколькими инсталляциями LS. Там должна быть произвольная константа, различная для каждого сайта.

В заключение, полезная команда, которая сбрасывает кэш:
echo "flush_all" | socat unix-connect:/var/run/memcached.socket - > /dev/null

Подключаем Sphinx
Повторяться не будем.
Всё про настройку и подключение: livestreet.ru/blog/dev_documentation/13482.html
Решение проблемы закрытых блогов: livestreet.ru/blog/tips_and_tricks/14568.html
Решение проблемы более 100 страниц: livestreet.ru/blog/questions/14784.html

Отложенная рассылка почтовых сообщений
crontab -e

Добавляем туда строку:
*/10 * * * * /usr/bin/php /var/www/superls.ru/public/include/cron/notify.php >/dev/null 2>&1
*/10 — означает «каждые 10 минут», править по желанию.

Внимание: не забыть проконтролировать, что в конфигурационном файле /etc/php5/cli/php.ini правильно заданы параметры связанные с рассылкой почты. Об этом упоминалось в шестой части.

Добавляем в config.local.php следующие строки:
// Указывает на необходимость использовать режим отложенной рассылки сообщений на email
$config['module']['notify']['delayed'] = true;
// Если опция установлена в true, систему будет собирать записи заданий удаленной публикации, 
// для вставки их в базу единым INSERT
$config['module']['notify']['insert_single'] = true;
// Количество отложенных заданий, обрабатываемых одним крон-процессом
$config['module']['notify']['per_process'] = 100;

Решение проблемы «всегда не асинхронная рассылка писем связанных с учётной записью пользователя» от господина dimkus : livestreet.ru/blog/projects_and_ideas/14732.html

Полезные плагины:
Я перечислю несколько полностью бесплатных, которые я считаю безусловно полезными для любого сайта. Т.е. этот набор, с моей точки зрения, нужно ставить всегда:
Теперь пара вещей, которые неминуемо придётся решать, но для которых нет полностью бесплатных плагинов:

Разные, не всегда бесспорные, полезности, заслуживающие упоминания
  • Плагин «АнтиБот» — штука полезная, однако некоторые наши пользователи получили проблемы с логином после его установки. Похоже, есть некоторые вопросы с браузерной совместимостью. А может и нет — до конца мы не разбирались.
  • Плагин «SEO» и оптимизация для него. Эту тему я не считаю особенно важной, в силу того, что содержимое meta description и keywords играют крайне слабое значение для современных версия поисковиков. Этот плагин в конфигурации «по умолчанию», вообще больше смысла не имеет, с моей точки зрения.
  • Нужно позаботится о robots.txt. Размышления по теме.
  • Очень важной является тема интеграции и продвижения в социальных сетях. Плагин «OpenID», Share42, изучите вопрос репоста RSS в группы социальных сетей. Ввконтакт умеет сам, для facebook и twitter есть много сервисов, я предпочитаю twitterfeed.com/
  • Оптимизация шаблона Synio для LiveStreet

Продолжение в следующей части:
Приложение A. Переход на PHP 5.4
Хотите порадовать близких необычным подарком? Подарок убегающий будильник — то что нужно!

37 комментариев

avatar
Спасибо!

Я бы еще добавил из серии «а случаи бывают разные»:

$config['module']['blog']['encrypt']         = 'superls'; // Ключ XXTEA шифрования идентификаторов в ссылках приглашения в блоги

$config['module']['talk']['encrypt']         = 'superls'; // Ключ XXTEA шифрования идентификаторов в ссылках приглашения в блоги

$config['module']['security']['hash']  = "superls"; // "примесь" к строке, хешируемой в качестве security-кода


Ну и
$config['module']['ls']['send_general'] = false;        // Отправка на сервер LS общей информации о сайте (домен, версия LS и плагинов)
$config['module']['ls']['use_counter'] = false; // Использование счетчика GA



Возможно что-то еще упустил.

Вообще в дистрибутиве ЛС файлик config.local.php добавить такими
avatar
упс… Добавить какой-то раздел «Рекомендуется прочитать и настроить для себя»
avatar
А топик-то юбилейный получился! :)
avatar
find /var/www/superls.ru/public -type d -exec chmod 770 {} \;
find /var/www/superls.ru/public -type f -exec chmod 660 {} \;


Что означает эта запись? расшифруйте, пожалуйста.
  • dsg
  • 0
avatar
1) Найти все директории в /var/www/superls.ru/public и установить chmod 770
2) Найти все файлы в /var/www/superls.ru/public и установить chmod 660

Зы. А я у себя в продакшне ещё делаю это.
avatar
Зы. А я у себя в продакшне ещё делаю это.

А смысл проверять файлы перед компиляцией?
avatar
Да, вот именно. Потому у меня там false.
avatar
аа, просто по ссылке стоит «true» ))
avatar
что-то я не пойму смысла такой расстановки прав… Мы же все запретили по сути и теперь будет: 403 forbiden при попытке зайти на сайт
avatar
А что вас смущает? все сервисы (nginx, apache, php-fpm) работают под юзером www-data из группы www-data. И права розданы так, что это юзер сможет делать с файлами и папками всё, что необходимо. Даже, честно говоря, многовато прав дали. Можно было бы и еще порезать.
avatar
ну если на сервере только один пользователь и он root, то никаких проблем. Просто у меня несколько сайтов на серваке и пользователей тоже несколько и такой вариант лично мне не подходит))) у меня везде 755 выставлено, а на файлы 644

(само собой, кроме папок с кешем и каталога загрузки — там вообще все хитро)
avatar
не понял. зачем вам разные пользователи? не путайте права для сервисов и SFTP доступ (о чём будет разговор в следующей части) — это разные вещи. Я не знаю причин для которых к файлам сайта был бы нужен доступ «кто угодно», при правильной постановке вопроса.
avatar
для каждого сайта в панели isp создается свой пользователь, который назначается владельцем основной папки (в Вашем случае public) с правами папки 755 и директории, где она лежит — 501. Дальше можно заливать файлы через фтп или ssh под нужным пользователем, но нет смысла в директорию пользователя test заливать файлы под рутом, т.к. по фтп их потом нельзя будет скачать, обновить и т.д.

Я попробовал из любопытства выставить такие права, как у Вас и получил при заходе на сайт — 403 ошибку.
avatar
ну если у вас isp то дальше можно не говорить. понятия не имею как этот костыль настраивает права и юзеров дл фалов и процессов. имел дело с Plesk — так там такого наворачивало, что мама не горюй.
avatar
Понятно, что у LiveStreet внушительный список конфигурационных опций, но описывать их довольно объемный и не очень полезный труд. Однозначных рекомендаций использования по большей части нет. Читайте внимательно комментарии в файле /config/config.php и думайте :) Больше ничего не посоветовать.
avatar
могу добавить, что после продолжительных боев я нашел причину, почему сфинкс не работал — это она.
После того, как вернул в исходное — все заработало. Так что с этим надо аккуратнее, а то я 2 недели мучился с поиском ошибки...
Правда теперь вопрос о том, как выводить больше 100 страниц в поиске для меня снова открыт.
avatar
Cоздаём файл config.local.php:
Зачем? он создается автоматически при инсталяции.
avatar
Для того чтобы и на него раздать права именно так, как хочется.
avatar
инсталятор потом всеравно свои права изменит
avatar
не уверен. но я протестирую еще раз.
avatar
спасибо за топик, только не вижу особой пользы от плагина gravatar
avatar
очень много кто пользуется этим сервисом, как оказалось. user friendly фишка.
avatar
вот за это
echo "flush_all" | socat unix-connect:/var/run/memcached.socket - > /dev/null

отдельное спасибо, а то изменишь языковой файл и потом сидишь, не знаешь как обновить кеш мемкеша чтобы новые значения отображались
avatar
ну :) ещё одни простейший способ — перестартовать memcached.
avatar
А! Эта команда для описанного случая, когда memcached настроен через сокет.
Есть более универсальная утилита memcflush но её надо отдельно ставить, они приходит с пакетом libmemcached-tools
avatar
Установил без проблем. Авторизацию админом не проходит. Висит и всё. Переустановка не помогла. centos 6.4_x64 apache
avatar
с НЕ Debian помочь ни чем не смогу, к сожалению.
avatar
Ждем следующей части!?
avatar
up
avatar
Последняя часть уже полтора месяца болтается у меня в черновиках, всё руки не доходят дописать, простите. Но особенно важного там ничего не будет — чуть чуть про FTP и backup-ы.
avatar
Как раз бэкапы и интересуют. Пожалуйста, включите туду-лист восстановления из бэкапа.
avatar
Не знаю толком, где спросить, поэтому спрошу тут.

В общем, настраивал сервер по этому мануалу. Автору, кстати, огромное спасибо.

Я ЛС ставлю не с нуля, а переношу с шаред-хостинга. Поэтому, скопировал файлы сайта, сделал дамп.

И вот когда дошло до импорта базы через HediSQL, то произошел облом — так ни разу база полностью и не загрузилась. Программа просто виснет в процессе.

Хотел было поставить phpmyadmin, однако же система ругается:

# apt-get install phpmyadmin
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 phpmyadmin : Depends: libapache2-mod-php5 but it is not going to be installed or
                       php5-cgi but it is not going to be installed or
                       php5 but it is not going to be installed
E: Broken packages


ЧТо делать-то?..
avatar
Вроде импортировал из консоли. Но все-таки, как установить phpmyadmin?
avatar
HediSQL у вас не вис, просто удаленный импорт большой базы занимает очень много времени. Поэтому import/export всей базы и надо делать из консоли, как вы и сделали в итоге. Это просто быстрее на два порядка.
avatar
Всем снова здравствуйте!

Еще раз хочу выразить автору серии статей благодавность. Благодаря ему, этому сообществу, гуглу и такой-то матери, мне-таки удалось настроить VPS и перенести туда свой сайт на LS 0.5.1.

И все бы ничего, но как-то странно стал работать плагин от netlanc Image Preview.

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

Если смотреть элемент отладчиком хрома, то можно зметить, что куда-то делся атрибут src

нет превьюшки =(

Все Ок!

Подскажите, пожалуйста, в какую сторону копать?
avatar
UPD: нормальны скриншоты. раз два
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.