+0.62
Рейтинг
0.50
Сила

Антон

Исправление ошибки мобильной версии плагина Компании

Пока еще не готова мобильная версия плагина, но уже известно как исправить проблему из-за которой топики компаний открываются с ошибкой.
Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'menu.main.tpl' in 'nav.tpl'' in E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatebase.php:127 Stack trace: #0 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_template.php(288): Smarty_Internal_TemplateBase->fetch(NULL, NULL, NULL, NULL, false, false, true) #1 E:\www\domains\test\r10\templates\compiled\mobile\071fdd5b85056e33e325611e03241c050a84d9d8.file.nav.tpl.php(54): Smarty_Internal_Template->getSubTemplate('menu.main.tpl', NULL, NULL, NULL, NULL, Array, 0) #2 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatebase.php(180): content_51168d7642c5b8_26229961(Object(Smarty_Internal_Template)) #3 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_template.php(288): Smarty_Internal_TemplateBase->fetch(NULL, NULL, NULL, NULL, false, false, true) #4 E:\www\domains\test\r10\templates\compiled\mobile\5274d1dbb4725efda7bc453e43869f54ea5398f9.file.header.tpl.php(201): Smarty_Internal_Template->getSubTemplate('nav.tpl', NULL, NULL, NULL, NULL, Array, 0) #5 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatebase.php(180): content_51168d76146716_97210804(Object(Smarty_Internal_Template)) #6 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_template.php(288): Smarty_Internal_TemplateBase->fetch(NULL, NULL, NULL, NULL, false, false, true) #7 E:\www\domains\test\r10\templates\compiled\mobile\c710cafe668729bbd09d441c709278855b551652.file.topic.tpl.php(36): Smarty_Internal_Template->getSubTemplate('header.tpl', NULL, NULL, NULL, NULL, Array, 0) #8 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatebase.php(180): content_51168d75f1e702_48219556(Object(Smarty_Internal_Template)) #9 E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatebase.php(374): Smarty_Internal_TemplateBase->fetch('E:\www\domains\...', NULL, NULL, NULL, true) #10 E:\www\domains\test\r10\engine\modules\viewer\Viewer.class.php(328): Smarty_Internal_TemplateBase->display('E:\www\domains\...') #11 [internal function]: ModuleViewer->Display('E:\www\domains\...') #12 E:\www\domains\test\r10\engine\classes\Engine.class.php(558): call_user_func_array(Array, Array) #13 E:\www\domains\test\r10\engine\classes\Router.class.php(439): Engine->_CallModule('Viewer_Display', Array) #14 E:\www\domains\test\r10\engine\classes\Router.class.php(137): Router->__call('Viewer_Display', Array) #15 E:\www\domains\test\r10\engine\classes\Router.class.php(137): Router->Viewer_Display('E:\www\domains\...') #16 E:\www\domains\test\r10\engine\classes\Router.class.php(127): Router->Shutdown(false) #17 E:\www\domains\test\r10\index.php(34): Router->Exec() #18 {main} thrown in E:\www\domains\test\r10\engine\lib\external\Smarty\libs\sysplugins\smarty_internal_templatebase.php on line 127


Эти изменения я внес в github мобильного шаблона github.com/venticello/lstemplate-mobile/commit/4ada3f5d2a5d6e923b4a629b8a90f16e21a6a5ea подправьте у себя и плагин компании будет работать на мобильной версии.

Livestreet CMS в облаках Infobox

infoboxКомпания Infobox предоставила возможность бесплатно (до 1 февраля) тестировать их облачные сервера, в этой статье напишу как я сделал распределенную систему. Решил сделать два http-сервера и один сервер под базы данных. На самом деле, для не нагруженных проектов можно держать на одном сервере базу данных и http-сервер, а на втором только http-сервер подключать по необходимости, но мне было интересно построить именно такую систему, чтобы при увеличении нагрузок, на нее перейти.
Читать дальше →

Ошибки установки APC

Если при сборке apc из исходников
sudo pecl install apc

возникают ошибки
/pear/temp/APC/apc.c:488: error: 'apc_regex' has no member named 'nreg'
...
make: *** [apc_compile.lo] Error 1

нужно установить
apt-get install libpcre3-dev


Если не находит phpize то нужно установить
apt-get install php5-dev


Если после установки на сайте ошибки вида
require_once() [function.require-once]: apc_cache_find
Notice: require_once() [function.require-once]: apc_cache_make_file_entry: entry->data.file.filename

то при установке нужно было выключать встроенную отладку
Enable internal debugging in APC [no]: no

Решение проблем Munin

В логах ошибки mailstats:
mailstats: /var/lib/sendmail/sm-client.st: No such file or directory	
mailstats: /var/lib/sendmail/sendmail.st: No such file or directory


Решение:
# grep StatusFile /etc/mail/sendmail.cf
O StatusFile=/var/lib/sendmail/sendmail.st

создаем файлы
# touch /var/lib/sendmail/sm-client.st
# touch /var/lib/sendmail/sendmail.st


вызываем mailstats, рисуется табличка, значит все ок.

А вы уверены что у вас все работает правильно?


Советую всем проверить файл /logs/sql_error.log где установлен livestreet там встречаются интересные ошибки которые возникают в работе сайта, но вы их не видели.
Например с помощью просмотра лога я выявил что в 1.0.1 не удаляются комментарии переписки, если сообщения шли не один за другим, а деревом.
Лечится это одной строчкой, добавил коммит в git livestreet
Ошибка происходит из-за того что есть констрейнт который проверяет целостность комментариев, и так как функция удаляет последовательно он ругается
Cannot delete or update a parent row: a foreign key constraint fails 
(`prefix_comment`, CONSTRAINT `prefix_topic_comment_fk` 
FOREIGN KEY (`comment_pid`) REFERENCES `prefix_comment` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE)

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

Дружим плагин "Компании" и NiceURL

При использовании плагина NiceURL топик компании показывается без «шапки» компании, что не очень красиво и удобно.
Чтобы это исправить откройте файл \plugins\niceurl\classes\hooks\HookUrl.class.php
найдите строку
if ($oTopic->getBlog()->getType()=='personal') {

и сделайте конструкцию вида:
if ($oTopic->getBlog()->getType()=='personal') {
   Router::Action($sActionRewrite,$oTopic->getId().'.html',array());
} elseif($oTopic->getBlog()->getType()=='company') {
   Router::Action('company',$oTopic->getBlog()->getUrl(),array('blog',$oTopic->getId().'.html'));
} else {
   Router::Action($sActionRewrite,$oTopic->getBlog()->getUrl(),array($oTopic->getId().'.html'));
}

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

Если у вас ошибки циклической переадресации ссылок, то активируйте плагин NiceURL после плагина компании и все будет работать.

Защита сервера от перебора паролей. Установка и настройка Fail2ban

Защита сервера, fail2banЕсли вы посмотрите лог аутентификации сервера /var/log/auth.log вы увидите, что там частые неудачные попытки авторизации на сервер, под разными именами или только под root, боты постоянно щупают сервера на слабость защиты. Есть вероятность что все таки подберут пароль, а так же их обращения негативно влияют на производительность сервера и увеличивают логи. Чтобы этого избежать поставьте простую программу fail2ban, это займет не больше чем 5 минут, она при трех неудачных попытках подбора пароля злоумышленником будет блокировать его доступ к серверу, на определенное вами время.
Читать дальше →

Как сменить URL с 'company' на любой другой

Если вы решили использовать плагин «Компании» под особый проект возможно потребуется изменить URL на более красиво звучащий, например на 'game'.
Открываем конфиг файл плагина \plugins\company\config\config.php
И меняем настройку:
Config::Set('module.company.prefix', 'company'); 	// префикс для компаний (ссылка в URL)

на
Config::Set('module.company.prefix', 'game'); 	// префикс для компаний (ссылка в URL)

А если требуется еще поменять URL списка компаний, то в конфиг нужно добавить строку, например
Config::Set('router.rewrite.companies', 'games');

и список компаний будет отображаться по адресу сайт.ру/games/

Как подружить плагин "Sitemap" и плагин "Компании"

По умолчанию в плагине sitemap не отображаются топики компаний, чтобы они там отображались необходимо в файле плагина sitemap доработать файл \plugins\sitemap\classes\modules\topic\Topic.class.php
в нем есть функция фильтра которая показывает какие топики нужно отображать в карте сайта:
protected function _getFilterForTopics() {
        return array(
            'blog_type' => array(
                'open', 'personal',
            ),
            'topic_publish' => 1,
        );
    }


нужно в нее добавить блоги типа company, в итоге получится
protected function _getFilterForTopics() {
        return array(
            'blog_type' => array(
                'open', 'personal', 'company',
            ),
            'topic_publish' => 1,
        );
    }

И теперь топики компаний будут отображаться.