R1Soft CDP с ядром 2.6.35
При попытке собрать модуль под ядро Linux 2.6.35 r1soft-cki выдаёт примерно следующий текст:
Waiting |
No binary module found
Gathering kernel information
Gathering kernel information complete.
Creating kernel headers package
Checking '/tmp/r1soft-cki.1286865605' for kernel headers
Unable to find a 'include/linux/autoconf.h'. This file is required to build a kernel module
Unable to find a valid source directory.
Please install the kernel headers for your operating system.
To install kernel headers execute:
apt-get install linux-headers-`uname -r`
Очевидно, что все требуемый пакеты установлены, иначе не было бы данной статьи. Не менее очевидно, что модуль ядра r1soft-cki в таких условиях создать не может. Далее »
Окт
2010
SJ Object Cache: еще более быстрое объектное кэширование для WordPress
После года тестирования наконец-то вышла первая стабильная версия плагина SJ Object Cache.
SJ Object Cache — альтернатива плагину WP File Cache, поддерживающая APC, eAccelerator, xCache, Zend Disk Cache, Zend Shared Memory Cache, memcache и memcached.
В отличие от WP File Cache, SJ Object Cache ориентирован на VPS/VDS и выделенные сервера.
Далее »
Окт
2010
Дельта-бэкапы баз данных
На одном из серверов с большим числом пользователей у нас настроено автоматическое создание резервных копий баз данных — четыре раза в день. Стоит отметить, что размер сжатых резервных копий всех баз данных превышает 400 мегабайт. Таким образом, за один день на резервные копии баз данных уходит около двух гигабайт дискового пространства. Две недели — почти 30 гигабайт. Расточительство.
Для экономии места мы изобрели велосипед под названием «дельта-бэкап» (известный как разностный бэкап, differential backup) — мы храним одну полную резервную копию базы данных и список изменений.
Ввиду того, что клиентские сайты используют WordPress, разностное резервное копирование баз данных позволяет сэкономить очень много дискового пространства. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: нетСен
2010
Исправляем Simple Tags 1.8
Традиционное исправление ошибок в плагине Simple Tags.
Ошибки всё те же:
- отсутствует поддержка многобайтовых символов (в частности, UTF-8) в автоматических ссылках;
- вызов
register_uninstall_hook()при каждом обращении к блогу.
Радует, что проблему с автоматическими ссылками меток автор всё же поправил
Это то, ради чего данный плагин установлен. Далее »
Сен
2010
Core Control: лечим некорректное отображение методов в модуле cron
Есть один замечательный плагин для разработчиков, называется Core Control. Данный плагин позволяет контролировать различные аспекты работы WordPress: транспорт HTTP (например, расширение PHP HTTP, cURL, потоки PHP и т.п.), протоколирование HTTP-запросов, контроль обновлений ядра, плагинов и тем, способы доступа к файловой системе, а также отображение запланированных задач. Далее »
Автор: Vladimir, опубликовано в: Патчи, комментариев: 1Сен
2010
Scope Guard средствами C++0x: часть 2
В прошлой части была рассмотрена реализация Scope Guard средствами C++0x. Благодаря шаблонам с переменным количеством параметров (variadic templates), реализация на C++0x получилась несколько проще, чем в оригинале, так как один и тот же шаблонный класс может использоваться для создания Scope Guard с различным количеством параметров.
Но, как было отмечено, предыдущая реализация не являлась оптимальной в плане количества строк. Можно сделать проще и короче. Далее »
Автор: Vladimir, опубликовано в: C/C++, комментариев: 4Апр
2010
FogBugz 7 и nginx
На днях переводил один сервер с Apache 2 на nginx, хочу поделиться рабочей конфигурацией nginx для FogBugz 7. Далее »
Автор: Vladimir, опубликовано в: nginx, Администрирование, комментариев: нетАпр
2010
Upstart, fork и daemon
У Upstart есть одна известная ошибка: неверное использование expect fork/expect daemon может подвесить initctl, после чего всякие start/stop/restart/reload <service> просто перестанут работать. Для полноты картины отмечу, что такой подвисший сервис не получится остановить и через /usr/sbin/service или /etc/init.d. Весёлая ошибка, но это еще не всё.
Есть еще одна тонкость: если программа использует fork(), то в конфигурационном файле upstart должна присутствовать строка expect fork. По аналогии можно подумать, что если программа использует daemon(), то в конфигурационном файле upstart должна присутствовать строка expect daemon. А вот и нет! Далее »
Апр
2010
Scope Guard средствами C++0x: часть 1
Scope Guard — одно из средств автоматического освобождения ресурсов при выходе за пределы видимости переменной, с ними связанной. Scope Guard предоставляет базовую гарантию безопасности исключений. Авторами этой идеи (по-видимому) являются Andrei Alexandrescu и Petru Marginean. Если вы с этой статьёй еще не знакомы, то очень рекомендую к прочтению.
Реализация Scope Guard довольно простая, но из-за того, что C++ не поддерживал шаблоны с переменным количеством параметров, приходилось создавать несколько шаблонов — в зависимости от того, сколько аргументов принимает функция, выполняющая освобождение ресурсов. Далее »
Автор: Vladimir, опубликовано в: C/C++, комментариев: 2Апр
2010
Борьба с ботами-взломщиками средствами rsyslogd
В предыдущих частях статей цикла «Скажи «Нет!» взломщику» со взломщиками мы боролись при помощи связки swatch + iptables: swatch проводил анализ системного журнала сообщений, iptables использовался для блокировки непрошеных гостей.
Тем не менее, используя swatch на нескольких серверах, я не могу сказать, что я полностью им доволен: слишком уж он хрупок. Завершение дочернего tail приводит к тихой гибели самого swatch, в системе могут оставаться зомби и т.п.
Одна из альтернатив — использование rsyslogd. Далее »
Апр
2010

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

