FastNetMon

Friday, 30 April 2010

Debian, PHP и Suhosin Patch

Всем известно, что PHP в Debian не простой, а с претензией на безопасность (прошу прощения за сумбурное смешение слов "безопасность" и "PHP"). Но далеко не всем известно, что работает он "молча", то есть если он и исправляет какие-то проблемы, то делает это молча, без записи в логи. Также есть ряд скриптов, которые ломаются от Сухосина и это никак не отражается в логах.

Для того, чтобы Suhosin начал писать в логи необходимо в php.ini добавить следующее:
; suhosin looging enabled
suhosin.log.sapi = 511


А вот примеры его записей в логи (взято из кода):

zend_suhosin_log(S_MEMORY, "possible memory corruption detected - unknown llist destructor");
zend_suhosin_log(S_MEMORY, "linked list corrupt on efree() - heap corruption detected");
zend_suhosin_log(S_MEMORY, "canary mismatch on " MFUNCTION " - heap overflow detected");


Вот ссылочка с описанием всех параметров:
http://www.hardened-php.net/suhosin/configuration.html

Option MultiViews not allowed here

Проблема возникает из-за того, что Multiviews не включается в AllowOverride All и его надо указывать явно. Ниже привожу фикс для Дебы.

Открываем конфиг:
vi /etc/apache2/conf.d/secure.conf


Там видим:
AllowOverride FileInfo AuthConfig Limit Indexes Options


Корректируем:
AllowOverride FileInfo AuthConfig Limit Indexes Options=All,MultiViews


Перезапускаем Апача:
/etc/init.d/apache2 restart


Все ок :) источник фикса: http://mathiasbynens.be/notes/apache-allowoverride-all

Что делать, если на FastVPS.ru нету доступа к бэкап FTP серверу?

Если у Вас выделенный сервер и Центос, то переконфигурировать сеть на статическую настройку вместо dhcp :) Тогда все и заработает :)

Если не знаете, как это сделать, пишите нам в саппорт =)

О программистах

Наверное, никто не имеет такого отвратительного мнения о программистах, как хостеры. Мы-то видим, как это говно тормозит и сваливаем несваливаемые сервера при посещаемости 3 человека / неделя, мы-то видим, как люди завязывают софт на десятки модулей (крайне часто даже нестандартных) без особой надобности, мы-то видим, как люди умудряются написать свой скрипт, чтобы он один из сотен и тысяч скриптов (угу, около нескольких сотен только участвовало в тестировании нашего хостинга на совместимость), только он один не работал с дебияновским патчем сухосин.

Ненавижу.

Универсальный cat, zcat

Часто требуется грепать одновременно и сжатые посредством gz текстовые файлы (уже отротейченые) и одновременно обычные, не сжатые текстовые файлы.

Скажем, есть логи:

/var/www/xx/data/logs/xx.com.error.log
/var/www/yy/data/logs/yy.com.error.log
/var/www/zz/data/logs/yy.com.error.log


И рядом с ними еще ряд логов в формате gz:
/var/www/xx/data/logs/xx.com.error.log.0.gz
/var/www/yy/data/logs/yy.com.error.log.0.gz
/var/www/xx/data/logs/zz.com.error.log.0.gz


Задача - их надо отфильтровать посредством одного pipe канала, то есть чтобы и сжатые файлы и несжатые превратились в текст и были выана на stdout.

С gz все очевидно - их умеет выводить команда zcat. С текстовыми все также ясно как день - их выводит cat. Но как объединить этот функционал в одной команде? Очевидный вариант - попробовать вывести zcat ом текствовый файл:

Увы, это не сработает:
find /var/www/*/data/logs | egrep 'error.log$' | xargs cat | zcat
gzip: stdin: not in gzip format
xargs: cat: terminated by signal 13


Увы, я не нашел способа совместить функционал команд, но написал скрипт на баше для этого:
for i in `find /var/www/*/data/logs | grep 'error.log'`; do file $i | grep -q 'gzip compressed data'; if [ $? -eq 0 ]; then zcat $i ; else cat $i; fi ; done

Wednesday, 28 April 2010

Ubuntu 9.10 внутри контейнера OpenVZ, как заставить работать сеть?

Есть хак, крутой и красивый :) Называется - /etc/vz/dists, матчасть по нему тут: http://blog.shaggy-cat.ru/2010/03/openvz_25.html или http://wiki.openvz.org/Configuring_container_creation

Суть в том, что шаблон http://download.openvz.org/template/precreated/ubuntu-9.10-x86_64.tar.gz от отсюда: http://download.openvz.org/template/precreated/ не работает. Точнее он работает, но внутри контейнера не поднимается сеть и все тут.

А при попытке ручного запуска/перезапуска сети получаем следующий облом:

/etc/init.d/networking restart
* Reconfiguring network interfaces...
/etc/network/interfaces:15: interface lo declared allow-auto twice
ifdown: couldn't read interfaces file "/etc/network/interfaces"
/etc/network/interfaces:15: interface lo declared allow-auto twice
ifup: couldn't read interfaces file "/etc/network/interfaces"
...fail!


Виной тому некорретный файл /etc/networking/interfaces.template. Его можно просто удалить и все заработает, но тогда придется юзать нестандартные шаблоны, что не тру. Поэтому мы отучим OpenVZ "видеть" этот файл тимплейта.

Копируем болванку от Ubuntu:

cp /etc/vz/dists/ubuntu.conf /etc/vz/dists/ubuntu-9.10.conf


Теперь зададим свой скрипт для прописывания IP машине:

vi /etc/vz/dists/ubuntu-9.10.conf

Далее вносим патч:
-ADD_IP=debian-add_ip.sh
+ADD_IP=ubuntu-910-add_ip.sh


После этого копируем скрипт прописывания IP машине:
cp /etc/vz/dists/scripts/debian-add_ip.sh /etc/vz/dists/scripts/ubuntu-910-add_ip.sh


Делаем тестовый перезапуск
vzctl --verbose restart 57821
И убеждаемся, что запускается скрипт ubuntu-910-add_ip.sh

Далее корректируем скрипт:
vi /etc/vz/dists/scripts/ubuntu-910-add_ip.sh


Комментируем строки, отвечающие за чтение шаблона:
#if [ -f ${CFGFILE}.template ]; then
# cat ${CFGFILE}.template >> ${CFGFILE}
#fi


Вуаля, теперь перезапускаем VE и наслаждаемся рабочей сеткой :)

PHP такой PHP

pear.php.net is using a unsupported protocal - This should never happen.

Monday, 26 April 2010

Сайт АвиаНовы лежит

Ну пипец: http://host-tracker.com/check_res_ajx/4782722-0/share/

Ап: поднялсо :)

DEVCONF::Ruby - пройдет 17 мая в Москве - приезжает автор Rails 3, Merb, DataMapper и jQuery

17 мая в Москве пройдет конференция, посвященная разработке на языке Ruby: DEVConf::Ruby())

Приезжает автор Ruby - Yehuda Katz

Программа конференции:

"Community Engine" или как сделать социальную сеть за 15 минут. Михаил Бараблин
Как не затрачивая человеко часы, дни и месяцы получить стандартную ункциональность форума, личных сообщений, фото-галлерей и всего что присуще социальным сетям в своем новом веб-проекте?
Tequila - язык для продвинутой генерации JSON Евгений Хлызов.
Докладчик расскажет о проблемах возникающих при использовании стандартного в Rails подхода к генерации JSON и способах их преодоления с помощью движка шаблонов Tequila
Rails 3 Choices: The Devil Is In The Details - Yehuda Katz
Ехуда Кац (Yehuda Katz) ведущий разработчик Rails 3, Merb, DataMapper и jQuery. Так же он является контрибьютором таких проектов, как Rubinius и Johnson, и работает над своим собственным проектом Thor.
Оптимизация ruby on rails проектов Дмитрий Галинский
Существует моного способов ускорения вашего Rails приложение, раскажу про некоторые из них. Кэширование с автоматической инвалидацией, работа с callback функциями в моделях, использование Rack для некоторых задач, перенос части запросов из Mysql в Sphinx.
Rubinius - Ruby, написанный на Ruby - Иван Самсонов
Rubinius - альтернативная реализация языка Ruby, написанная на Ruby.
В докладе будут освещены следующие вопросы: история создания, устройство интерпретатора, архитектура виртуальной машины, обзорное сравнение производительности, план развития на ближайшее будущее.

Разработка приложений для Facebook.com на ruby on rails - Алекс Дмитриев
В этом докладе я поделюсь опытом разработки приложений для социальной сети Facebook на базе платформы Ruby on Rails, расскажу о проблемах, которые могут возникнуть при разработке и развертывании приложений, а так же о том, как эти проблемы решать и какие инструменты для этого использовать.
Rails 3, Ruby 1.9.1 и русские буквы - Павел Голубев
Какие проблемы возникают при использовании Rails 3 на Ruby 1.9.1 с русским языком и кодировкой UTF8.
Использование jQuery с Rails - Yehuda Katz
Rails 3 has added support for choosing a JavaScript library, but did you know that the jQuery driver exposes additional client-side functionality. In this talk, Yehuda will show how you can extend the built-in functionality with existing behavior, as well as useful patterns for using jQuery with normal Rails applications.

http://feedproxy.google.com/~r/org/LOR/~3/3qjznbTlDEA/4817040

DEVCONF::Perl пройдет 17 мая в Москве

17 мая в Москве пройдет конференция, посвященная разработке на языке Perl: DEVConf::Perl())

Программа конференции:

Мифы Perl - Алексей Капранов
Технический директор ООО «НадоБы», бывший руководитель почты Рамблера, организатор конференций YAPC::Russia, активный участник Moscow.pm, докладчик, хакер
Прямо сейчас Перл переживает то, что называют Apple-moment, — возрождение в стиле Apple.

Новые версии ядра языка выходят стабильно каждые 2 месяца, расцвели многочисленные фреймворки для самых разных стилей программирования, CPAN остаётся не только самой большой библиотекой открытого кода в мире, но и самой быстро растущей.

Perl: За и Против - Валерий Студенников
Сравнение великого и могучего языка Perl с другими языками для разработки серверного ПО (web-приложения, сетевые демоны, cron-скрипты).

Open source бизнес и Perl внутри - Руслан Закиров
Администрирует и поддерживает http://rt.cpan.org — трекер багов для Perl-модулей.
Новые начинания в Perl 5 - Piers Cawley (BBC, UK)
Доклад охватывает основные изменения в синтаксисе Perl, которые делают работу с Perl приятнее. Речь пойдет о: MooseX::Declare, TryCatch, Moose::Autobox. Будет показано, как они вместе с другими современными модулями Perl омоложивают язык прямо на глазах.
Вторая жизнь CGI-скриптов - Наим Шафиев
Опишу, как можно ускорить то, что, казалось, будет вечным тормозом — CGI (несмотря даже на рост производительности современных машин).
Prescience and time travel - Perl 6 - Карл Мэсак (Carl Mäsak)
программист из Швеции, принимающий активное участие в разработке компилятора Perl 6 Rakudo
В этом докладе будут представлены статический анализатор кода, а также отладчик с функцией путешествий во времени. Они написаны на Perl 6, который является «постепенно-типизируемым», самособираемым, дружественным к парсерам языком, всё ещё переживающим младенчество, но подающим большие надежды.

Perl 5.12 и 5.10 за 30 минут - Андрей Шитов
организатор конференций YAPC::Russia, активный участник Moscow.pm Обзор новшеств в последних версиях Perl.
Mojolicious. Веб в коробке! - Анатолий Шарифулин
ведущий программист в компании «Точка кипения». Лидер RostovOnDon.pm. Организатор «South Perl» Mojolicious – революционный и красивый веб-фреймворк, развивается очень быстро, уже поддерживается интерфейс PSGI и протокол WebSockets.
Регистрация на DEVCONF::Perl - самую большую встречу Perl'овиков уже открыта. http://devconf.ru/register/index/perl/


http://feedproxy.google.com/~r/org/LOR/~3/C2H3_QJy-yY/4816923