пятница, 19 июня 2009 г.

Устанавливаем PIL

Установка PIL на CentOS тоже оказалось не простым занятием, почему-то не нашлось необходимых кодеков для JPEG. Из-за этого поле ImageField не переваривало jpeg-овские файлы.

Для начала easy_install pil ничего кроме "увы" не дало. Больший успех дало:
#~: easy_install --find-links http://www.pythonware.com/products/pil/ Imaging

Однако после инсталляции Django все равно pil не находил. Скачал исходный архив pil. Попробовал отсетапить.
Проблема с jpeg кодеком не рещилась не хватало библиотек. Если вы уже отбильдили - первое - удалите бильд.
Разахивируйте заново и дальше по шагам

yum install freetype freetype-devel jpeg jpeg-devel libpng libpng-devel

cd Imaging-1.1.6

В setup.py прописываем пути к jpeg библиотекам.

python setup.py build_ext -i

python selftest.py

python setup.py install

четверг, 18 июня 2009 г.

Маунтим ресурс на Samba

По тем или иным причинам бывает необходимо подмаунтить на свою систему папку с расшаренного ресурса Samba. Возможно это ваш девелоперский сервак c вашей пакой чекаута и каждый день вводить команду крайне утомительно. Открываем /etc/fstab и вводим туда следующую строчку.

//resorce/folder /your/machine/folder cifs uid=502,gid=504,credentials=/your/home/dir/.mysmbcredentials,dir_mode=0777,file_mode=0777 0 0

Список вполне прозрачен: подключаемый ресурс папка к которой вы маунтите, сетевая система, id пользователя, id группы, файлик куда мы положим наш логи и пароль(вместо этого мы моглибы прямо в fstab прописать логи и пароль), режим работы с папками, режим работы с файлами. Последние два параметра для нас сейчас не представляют большого интереса, просто поставьте их значение 0 0.

Возможно в другом рецепте вместо сетевой системы cifs вы увидете smbfs. smbfs считается устаревшим о чем скорее всего система вам напомнит сообщением вроде smbfs deprecated.

Последнишаг создаем в совей домашней директории тот самы файл для идентификации и просто вписываем:

username=ваш_логин_к_самба_ресурсу
password=ваш_пароль_к_самба_ресурсу

Перезапускаем и получаем удовольтсвие.

пятница, 12 июня 2009 г.

Включаем InnoDb под Linux

Открываем /etc/my.cnf

Добавляем

[mysqld]
# InnoDB settings
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:100M:autoextend
set-variable = innodb_buffer_pool_size=100M
set-variable = innodb_additional_mem_pool_size=10M
innodb_flush_log_at_trx_commit=1


Убираем skip-innodb.

Перезагружаем - пользуемся.

воскресенье, 24 мая 2009 г.

CentOS - SFTP доступ

Некоторым пользователям предпочтительней дать не полный доступ, а только права на перенос файлов. FTP...? Несекьюрное решение. С точки зрения поставленной задачи и безопасности оптимальным было бы решение на базе SFTP. Оригинальное решение тут Для реализации воспользуемся rssh - оболочкой работающей на базе OpenSSH. Качаем свежий пакет отсюда. Инсталлируем rpm -ivh rssh-2.3.2-1.2.el5.rf.i386.rpm Открываем файл конфигурации  /etc/rssh.conf раскомментируем строку allowsftp Создадим пользователя с оболочкой rssh useradd -m -d /home/test -s /usr/bin/rssh test passwd test Заходим через доступный нам клиент по sftp и радуемся жизни.

пятница, 22 мая 2009 г.

CentOS PHPUnit

Не захотел сразу становиться PHPUnit

[root@xxx ~]# pear install phpunit/PHPUnit
phpunit/PHPUnit requires PHP extension "dom"
phpunit/PHPUnit can optionally use PHP extension "json"
phpunit/PHPUnit can optionally use PHP extension "xdebug" (version >= 2.0.0)


Собственно для решения вполне достаточно победить первую зависимость

Под CentOS вводим

yum -y install php-xml

Таким образом, мы установили расширение dom.

Memcached on Cent OS

Установка memcached тоже прошла не без приключений. Оригинал решения здесь.

Итак скачали и установили libevent
Скачали и устанавливаем memcached
Скорее всего конфигурационный скрипт не нашел libevent и нам приходится указывать дополнительным параметром его нахождение

./configure --with-libevent=/usr/local/lib/

Пытаемся запустить
memcached

Получаем ошибку
error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

По каким-то соображениям новый libevent не зарегистрировал себя в системе. Исправляем этот косяк.

Создаем следующий файл
# vi /etc/ld.so.conf.d/libevent-i386.conf

В нем прописываем путь находения файла libevent-1.4.so.2
В моем случае
/usr/local/lib
файл сохраняем и закрываем.

Для обновления информации вводим
ldconfig

И запускаем memcached!

Linux: генерация рандомной строки для пароля

 cat /dev/urandom | tr -dc '[:alnum:]' | fold -w ${1:-20} | head -n 1