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

php следите за параметрами

поимел геморой с неработающими post запросами.

а php.ini добрый человек прописал

post_max_size = 11Mb

казалось бы в чем ошибка. Добрый php молча обнулит такую запись, но вам об этом не скажт просто у вас не будет post запросов, потому что мегабайты обозначают как 11M, одним символом.

понедельник, 22 июня 2009 г.

perl -X функции

if (-e $filename) { print "Файл существует.\n"; }
if (-z $filename) { print "Файл существует и он пустой.\n"; }

if (-r $filename) { print "У меня есть право на чтение файла.\n"; }
if (-w $filename) { print "У меня есть право на изменение файла.\n"; }
if (-x $filename) { print "У меня есть право на выполнение файла.\n"; }
if (-o $filename) { print "Я владелец файла.\n"; }

if (-f $filename) { print "$filename - это обычный файл.\n"; }
if (-d $filename) { print "$filename - это каталог.\n"; }
if (-l $filename) { print "$filename - это символическая ссылка.\n"; }
if (-p $filename) { print "$filename - это FIFO.\n"; }
if (-S $filename) { print "$filename - это сокет.\n"; }
if (-b $filename) { print "$filename - это блок-ориентированное спец. устройство.\n"; }
if (-c $filename) { print "$filename - это символьное спец. устройство.\n"; }
if (-t $filename) { print "Файловый манипулятор открыт для терминала.\n"; }

if (-u $filename) { print "У файла установлен бит setuid\n"; }
if (-g $filename) { print "У файла установлен бит setgid\n"; }
if (-k $filename) { print "У файла установлен бит запрета (бит-липучка)\n"; }

if (-T $filename) { print "Это текстовый файл.\n"; }
if (-B $filename) { print "Это двоичный файл.\n"; }

$size = -s $filename;
print "Размер файла: $size.\n"; }

$modification_time = int(-M $filename);
print "Со времени последнего изменения файла прошло $modification_time дней.\n";

$access_time = int(-A $filename);
print "Со времени последнего чтения файла прошло $access_time дней.\n";

$ctime = int(-C $filename);
print "Со времени последнего изменения файлового дескриптора прошло $ctime дней";

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

geli remove boot promt

geli инициируют раздели по умолчанию при загрузке, для remote server подобное поведение не допустимо

решение

geli configure -B /dev/da0s1d.eli

вторник, 2 июня 2009 г.

mysql 5.4-6.0 compile error

при сборке mysql версий 5.4 и 6.0 на freebsd 6.4 вылетала ошибка компилятора


/var/tmp//ccdN1bO7.s: Assembler messages:
/var/tmp//ccdN1bO7.s:1571: Error: bad register name `%sil'
/var/tmp//ccdN1bO7.s:1697: Error: bad register name `%dil'
/var/tmp//ccdN1bO7.s:1915: Error: bad register name `%dil'
/var/tmp//ccdN1bO7.s:2804: Error: bad register name `%dil'
/var/tmp//ccdN1bO7.s:3647: Error: bad register name `%sil'

решение.
1. ставим из портов gcc42, появятся бинарники gcc42 и g++42
2. ./configure CC=gcc42 CXX=g++42
3. make ; make install
4. profit!

понедельник, 1 июня 2009 г.

lighttpd digest auth

lighttpd.conf

раскомментарить mod_auth

добавить в секцию host или URL

auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
auth.debug = 2


auth.require = ( "/" =>
(
"method" => "digest",
"realm" => "Restricted Area",
"require" => "valid-user"
))

затем в консоли

htdigest -c /etc/lighttpd/.passwd "Restricted Area" login
chown www:www /etc/lighttpd/.passwd
chmod 400 /etc/lighttpd/.passwd

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

custom сборка eaccelerator

1.  /usr/local/php-525/bin/phpize
2. ./configure --prefix=/usr/local/eaccelerator --with-eaccelerator-shared-memory --enable-eaccelerator=shared --with-eaccelerator-sessions --with-eaccelerator-content-caching --with-eaccelerator-userid=80 --with-php-config=/usr/local/php-525/bin/php-config

не работает в если php собрано с cgi  SAPI

вторник, 5 мая 2009 г.

wget stalled

при скачке с yandex репозитариев почему то wget постоянно впадает в stalled

решение просто
wget -c -t 100 -T 3

-t 100 из-за того что для больших файлов переконнект происходит так часто что стандартных 20 попыток не хватает.

cpan install

инсталяция модулей из CPAN

запустить шел
perl -MCPAN -e shell

поиск модуля

i /строка/

установка
install Имя_Модуля

среда, 15 апреля 2009 г.

freebsd статистика

top -mio - показать I/O по процессам
top -S - показать ситемные процессы в топе (по дефолту они не показываются)
gstat - нагрузка на диски
systat -io start 1
diskinfo -t da0 - тест на дисковую производительность
tunefs -p /var/ - информация о настройках файловой системы
vmstat -z чего не хватает
vmstat -i прерывания по устройствам
netstat -i ошибки на интерфейсах
systat -ifstat - интенсивность передачи трафика
netstat -inb - передано через интерфейс в байтах
netstat -w1 - количество пакетов/ошибок/байт на интерфейсе

стибрил тут

dns loss check

Оценить количество потерянных dns запросов можно, например, по счетчику "dropped due to full socket buffers" в netstat -s -p udp

среда, 1 апреля 2009 г.

find tips

найти суммарный размер файлов к которым обращались за последние три дня

find . -type f -atime -3 -exec ls -lad {} \;|awk ' BEGIN {s=0}; {s += $5;} END {print s;}'

 
найти количество строк в файлах определенного типа

find . -type f \( -name "*.php" -o -name "*.tpl" -o -name "*.js" -o -name "*.xml" -o -name "*.css" -o -name "*.html" \) -exec cat {} \; |wc -l

четверг, 19 февраля 2009 г.

freebsd acl operate

setfacl -m u:username:rwx - установить ACL
getfacl dir/file - посмотреть текущие
setfacl -d -m u::rwx,g::---,o::rwx dir/file -выставить дефолтные ACL

так как ACL нет возможно выставить рекурсивно во FreeBSD,   пользуем find
find . -type d -exec setfacl -m u:username:rwx {} \;

среда, 11 февраля 2009 г.

vim tips

.vimrc

set cindent shiftwidth=4 - Включает отступы в стиле C , но жутко бесит когда надо вставлять куски кода с отступами, вызывает смещение каждой вствляемой строки, что в свою очередь лечится
set paste в консоли vim

сохраниение по Ctrl+s
map <C-S> :wa<CR>
imap <C-S> <Esc>:wa<CR><Ins><Right>

понедельник, 9 февраля 2009 г.

transport.db issue

Или о вреде апдейтов, жил был postfix суко долго жил, пока до него не добрались мои шаловливые ручки, а точнее меня как обычно ввела диссонанс его устаревшая версия. Собственно обновился, потом ещё и ещё, и хрен с ним, спустя какое то время потребовалось изменить transport, меняем конфиг делаем postmap transport, затем postfix reload и... почта перестает ходить o_O. возвращаю назад сохраненный бинарник transport.db все работает. До конца так и не удалось выяснить в какой конкретно версии произошли изменения, да и экспериментировать на продакшн сервере, крайне опасно для зарплаты, но ларчик открывался просто

было
transport_maps = btree:$config_directory/transport
стало
transport_maps = hash:$config_directory/transport

postmap по умолчанию генерит Berkley DB методом хранения hash, а никак не btree.

понедельник, 2 февраля 2009 г.

freebsd acl

Enable ACL

Команда tunefs может быть применена на отмонтированной либо доступной только для чтения файловой системе. Это означает, что, обычно, Вы должны загрузиться в однопользовательском режиме перед запуском команды
/sbin/tunefs -a enable /fs ,
где /fs обозначает точку монтирования файловой системы (/, /usr, и так далее). Если Вы не имеете доступа к терминалу машины (например, в случае машины, находящейся на colocation), Вы можете добавить вызов команды tunefs в начало файла /etc/rc для включения ACL при последующей загрузке.
Если Вы используете файловую систему UFS2, включение ACL закончено. Для включения ACL необходима только строчка opions UFS_ACL, встроенная по умолчанию в GENERIC-конфигурацию ядра.

спер тут

понедельник, 19 января 2009 г.

firefox image issue

на некоторых виодекартах возникает проблема с отображение изображений в firefox3 (поехавшая прозрачность, черная картинка при изменения размера)

лекарство:
в xorg.conf секцию device добавить

Option "XAANoOffscreenPixmaps" "on"

пятница, 19 декабря 2008 г.

freebsd base update

обновление базовой системы freebsd

1. cvs -d anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs co -rRELENG_6_4 src (если хочется ветку stable, RELENG_6) , альтернативный вариант Here

2. Переносим текущую папку /usr/src в /usr/src.bk
3. Распаковываем свежие исходники /usr/src
4. Копируем из /usr/src.bk/sys/i386/conf/КОНФИГ_ЯДРА в /usr/src/sys/i386/conf/
5. Долго и упорно читаем файл /usr/src/UPDATING, если требуется правка ядра правим
6. make -s -j 4 buildworld (идем пить чай)
7. make -s -j 4 kernel KERNCONF=КОНФИГ_ЯДРА
6. mergemaster -p , смотрим думаем выбираем
7. стопим jail (если есть), и вообще все что лишнее, комментируем автозапуск
8. reboot
9. make installworld
10. make delete-old
10.1  make delete-old-libs (дважды подумать , софт придется пересобирать)
11. mergemaster
12. крестимся,ребут
13. загружаемся, запускаем, по очереди необходимые сервисы, кроме всего что связано с jail
14. смотрим на функционал
15. make installworld DESTDIR=/js/JAIL_NAME
16. mergemaster -i -C -D $JAIL (jail mergemaster)
17. запускаем jails

distclean

чиста старых distfile в FreeBSD

portsclean --distclean

четверг, 4 декабря 2008 г.

fastcgi php wrapper

wrapper для lighttpd

#!/bin/sh
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS

#export PHP_FCGI_MAX_REQUESTS=0
exec /usr/local/bin/php-cgi