среда, 22 июня 2011 г.

CentOS. MySQL - ошибка при запуске (481)

В очередной раз поднимая очередной сервер, попал на ошибку запуска mysql. Ругался, что файл переводов ошибок содержит только 480 строк, а нужно - 481.

Как оказалось, установилась версия 5.0.92 из репозитория CentALT.

Так вот, если отключить репозиторий (я просто файл репозитория убрал) - то ставится 5.0.77, которая нормально запускается!

вторник, 21 июня 2011 г.

CentOS 5. Установка nginx

Сперва подключить репозиторий
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

потом установить
yum install nginx

среда, 8 июня 2011 г.

Gitolite - добавление пользователя

Добавить пользователя или другое рабочее место (например - лаптоп) - легко:

1. Сгенерировать rsa ключ
2. скопировать его на сервер в папку tmp
3. переключиться на пользователя, на котором успановлен gitolite (у меня - git)
sudo su - gitolite
4. добавить ключь gl-setup /tmp/user.pub

все!

вторник, 17 мая 2011 г.

пятница, 6 мая 2011 г.

Django + MongoDB

Рабочая связка

* django-nonrel
* django-mongodb-engine
* djangotoolbox (setup.py mongo-engine поставит сам)
* permission-backend-nonrel (вернет группы и права в систему доступа)

Работает админка. У моделей можно использовать OneToOneField и ManyToManyField.

Обязательно в settings.py добавить:
* djangotoolbox
* permission_backend_nonrel

Модели пишутся стандартно.

Минус - у моделей всегда id=ObjectId. Не смотрел, возможно ли это изменить.

Локализация

Русская локализация работает только если локаль в settings = ru.

Не забывать:
* создать каталог locale в корне проекта
* django-admin.py makemessages -l ru (создает файл для переводов)
* django-admin.py compilemessages

Начальная установка проекта

django-admin.py startproject mySite
правка settings.py
django-admin.py syncdb
зайти через консоль монго в django_site и выбрать id сайта ( db.django_site.findOne() ) - он нужен в settings (пример: "4dc3b2ef8ddf87288d00001d").

четверг, 24 марта 2011 г.

MongoDB обновление множества записей

Обнаружил неприятную особенность. При частом использовании:

update(
    query={Field:{$in:[x],$nin:[y]}},
    update={$addToSet:{Field:z}},
    multi=true
}

монго плодит кучу под-процессов (и соединений) и сильно лочит коллекцию. Что приводит к 90% локу и зависанию скрипта.

Скрипт - в цикле обновляет поля.

Помогает использование вместо мулти-обновления - обновления каждой записи по одной (под-цикл в скрипте).

Gitolite - удобно!

Очень советую использовать на сервере с git-репозиториями gitolite. Инструкция. Обязательно ставить под пользователем git.

Gitosis у меня не заработал - при push выдавал неизлечимую ошибку.