Инклуд конфигов Sphinx

Операционные системы 24.07.2009

sphinx

Встала проблема объединения конфигурационных файлов Sphinx'a, погуглив не нашел решения на уровне приложения и решил сделать своё.

Создаем каталог «sphinx», где будем хранить все конфигурационные файлы sphinx'a:

mkdir /usr/local/etc/sphinx

Далее, складываем туда все файлы конфигов с разных хостов, например:

/usr/local/etc/sphinx/adw0rd.ru.conf
/usr/local/etc/sphinx/pyha.ru.conf

и убираем оттуда директивы «indexer» и «searchd».

Теперь, создаем там файлы «indexer.conf» для настройки индексатора и «searchd.conf» для настройки демона сфинкса:

/usr/local/etc/sphinx/indexer.conf
/usr/local/etc/sphinx/searchd.conf

Примерное содержимое файла «indexer.conf»:

indexer
{
        mem_limit = 32M
}

Примерное содержимое файла «searchd.conf»:

searchd
{
        address = 127.0.0.1
        port = 3312
        log = /var/log/sphinxsearch/searchd.log
        query_log = /var/log/sphinxsearch/sphinx-query.log
        read_timeout = 5
        max_children = 30
        pid_file = /var/run/sphinxsearch/searchd.pid
}

Далее, пишем скрипт, объединяющий наши файлы конфигов:

#!/bin/sh
/bin/cat /usr/local/etc/sphinx/*.conf

и указываем этот файл как конфигурационный файл сфинкса в «/usr/local/etc/rc.d/sphinxsearch»:

: ${sphinxsearch_conffile="/usr/local/etc/sphinx.conf.sh"}

Примеры использования

Индексация:

indexer --config /usr/local/etc/sphinx.conf.sh --all
indexer --config /usr/local/etc/sphinx.conf.sh --rotate

Запуск демона

searchd --config /usr/local/etc/sphinx.conf.sh
/usr/local/etc/rc.d/sphinxsearch start

Установка и настройка Trac на FreeBSD

Базы данных, Инструменты, Операционные системы 20.07.2009

trac

Trac — это инструмент управления проектами и отслеживания ошибок в программном обеспечении. Он использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами.

Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion, а так же, через плагины, к Mercurial, git, Bazaar и другим. Trac написан на языке программирования python и в настоящее время распространяется по модифицированной лицензии BSD.

http://ru.wikipedia.org/wiki/Trac

Возможности

  • Возможность просмотра всех изменений в svn и trac-проекте.
  • Можно создавать подпроекты, например для портала это будет «Разработать сервис фотографий», «Разработка форума» или «Реконструкция поискового-модуля». И для каждого будут отдельные группы тикетов.
  • Просмотреть изменения кодов проекта в svn-ревизиях и сравнивание их.
  • Создание, просмотр и закрытие тикетов.
  • Управление пользователями, участвующие в разработке.
  • Wiki-движок, с помощью которого можно создавать как справочную информацию, так и документацию по проекту в целом.

Так же имеется куча плагинов для Trac, с помощью которых вы легко расширите функционал!

Установка

Для развертывания Trac нам понадобится:

  • Apache 2.2 — но вы можете так же развернуть и на Apache 1.3 или на Nginx, к примеру
  • mod_python3 — это для Apache 2, а для 1.3 надо просто «mod_python»
  • Subversion — либо другие системы контроля версия, например Mercurial, git или Bazaar
  • py-subversion — для работы из Python с Subversion
  • MySQL — можете также использовать SQLite или PgSQL. Подробнее http://trac.edgewall.org/wiki/DatabaseBackend
  • Ну и сам Trac разумеется :)

Читать полностью »

#chown на корень страшнее чем #rm -rf /

Операционные системы 15.07.2009

chown

Ну вот, в продолжении первой части тупняка появилась часть вторая! Нет, теперь не пыха пострадала, а другой сервер, для которого я производил реконструкции.

Видимо надо менять клаву, второй раз точку не смог нажать... а ведь нажимаю! Уж лучше бы я сделал «rm -rf /»... :)

К делу, я поторопился и вместо

# chown adw0rd:wheel ./*

сделал что, угадаете? :)

А вот что:

# chown adw0rd:wheel /*

Я естественно не заметил ничего, а продолжил работу... потом мне надо было ребутнуть сервак.
И наступила ночь... :)

Прозрение

После ребута, захожу под adw0rd'ом на сервер, выполняю «su», а он мне говорит

su: not running setuid

Сразу погуглил и рванул в /usr/bin/ и смотрю что там с su:

# ll su

смотрю, а хозяин то adw0rd, думаю что за шутки! O_o
начал лазить по серваку... а там везде хозяин adw0rd, и меня осенило! я забыл долбаную точку!

Как решил проблемы

Ну раз я теперь хозяин всего, то пошел редактировать sshd конфиг, дабы разрешить руту доступ...

# vi /etc/ssh/sshd_config

Отыскал строчку

#PermitRootLogin no

и заменил на

PermitRootLogin yes

ребут сервака и sshd не могу сделать от adw0rd, su тоже не пускает... в итоге захожу в панель хостера и жму ремот-ребут

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

Ну собственно все, теперь все работает :)

Добавление плагина в каталог плагинов WordPress.org

Wordpress и плагины 03.07.2009

wordpress

Добавил плагин Яндекс.Фотки в каталог плагинов WordPress.org: http://wordpress.org/extend/plugins/yandex-fotki/. И решил поделиться как это сделать попунктно...

Для добавления (и не только) плагина вам необходимо сначала зарегистрироваться на сайте WordPress.org. После процедуры регистрации вам необходимо авторизоваться на сайте.

Добавление плагина

Для добавления плагина перейдите по ссылке http://wordpress.org/extend/plugins/add/ и заполните поля формы.

На текущий момент сайт WordPress'а не поддерживает русский язык в названии плагина, превращая его в hex-код (%20%68...), поэтому называйте на английском.

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

Вам придется подождать несколько часов до того как вашу заявку промодерируют и вам пришлют реквизиты доступа к svn-репозиторию вашего плагина.

Работа с SVN-репозиторием

Приступаем к созданию вашего репозитория:

  • Делаем чекаут (ссылка вам придет по e-mail).
  • Создаем в каталоге «/tags» подкаталог «release-1.0», где 1.0 — версия вашего плагина.
  • Копируем в каталоги «/tags/release-1.0» и «/trunk» исходные файлы плагина.

Дополнительная информация: http://wordpress.org/extend/plugins/about/svn/

Читать полностью »

Восстановление структуры таблиц InnoDB

Базы данных 02.07.2009

mysql-logo

Бывает, что при перемещении базы sql-дамп не получается создать и остаются только файлы «*.frm», вы их заливаете в каталог «/var/db/mysql» и в надежде что заработают innodb-таблицы приходите в отчаянье, потому что они не работают...

Например при mysqldump, может выпасть ошибка:

Got error: 1146: Table `table_name` doesn't exist when using LOCK TABLES

Вам поможет этот хитрый трюк

Создаёте базу данных «my_test»:

mysql> CREATE DATABASE my_test;
mysql> USE my_test;

после чего, создаёте там соответствующую названию файлу «table_name.frm» пустую таблицу:

mysql> CREATE TABLE `table_name` (`id` INT PRIMARY KEY) ENGINE=Innodb;

после, замените созданный вами файл в тестовой таблице «my_test» исходным файлом таблицы:

cp /var/db/mysql/database_name/TABLE_NAME.frm /var/db/mysql/my_test/TABLE_NAME.frm

А теперь посмотрим структуру нашей таблицы:

mysql> USE my_test;
mysql> SHOW CREATE TABLE TABLE_NAME;

и вы увидите структуру, а дальше можете делать дамп или что вы там делали!

Также вы можете перенести все ваши побитые таблицы и переименовать базу в прежнее имя (удалив при этом старую естественно).

З.Ы. Почитайте полезную статью Восстановление данных InnoDB в MySQL