kdebindings и ruby1.9

Злосчастное обновление ruby до 1.9 сломало не только watir, но и мои плазмоиды.

Полдня провёл в попытках разобраться с ситуацией – при загрузке rubygems вываливается трэйс, смысл которого в:
undefined method `synchronize’ for #<Mutex:0xab1cd2> .

Нашёл несколько сообщений с описываемой проблемой «встроенного ruby» , но решения по всей видимости нету.

Поэтому пришлось установить «старый» ruby и собрать kdebindings с ним:

tar -zxf kdebindings-*.tgz
cd kdebindings-*
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_KROSSRUBY=off -DENABLE_PYKDE4=off -DRUBY_INCLUDE_PATH=/opt/ruby4kde/lib/ruby/1.8/i686-linux/ -DRUBY_LIBRARY=/opt/ruby4kde/lib/libruby.so -DRUBY_EXECUTABLE=/opt/ruby4kde/bin/ruby ..
make && make install

Unknown table engine ‘InnoDB’

Обновление mysql до 5.1 вылилось в такое вот сообщение.

Выполнение mysql -uroot -e”show engines” подтвердило – действительно unknown.

После разных пересборок, шаманств и плясок с бубном решение всё-таки нашлось – оказывается innodb теперь плагин и его надо загружать. Для чего необходимо добавить в строку запуска mysqld следующие параметры:

–plugin-load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so

хардварные проблемы софтварно не решаются?

Пару месяцев назад я стал владельцем новенького ноутбука. И поскольку разработчики сВисты приложили максимальные усилия к тому,
чтобы пользоваться их детищем стало невыносимо я решил вопрос довольно радикально – установил Slackware, собрал всё что нажито непосильным трудом в ~ и стал жить припеваючи. Скучно не было (если трудностей не будет – мы себе их создаём).
Проблем было много. Интересных и не очень. Но вчера столкнулся с особо любопытным случаем:

Ситуация – разъём для наушников. Втыкаю в него jack. А динамики продолжают вещать. Громко и жизнерадостно. Первая мысль – ну йокарный бабай, купил кривой удлинитель – попробовал другой: звук и в наушниках и динамиках, вторая – мазафакашыт, раздраконил разъём.
Третья – а он вообще работал когда-нибудь? В итоге ворох мыслей привёл к тому, что я перезагрузился в сВисту – там звук, как и задумано, раздаётся только из наушников.

До того момента я был уверен (да и большинство тех, кто дочитал до этой строки, наверное тоже пока уверены) что динамики отключаются МЕХАНИЧЕСКИ – тот самый jack разрывает цепь, приподнимая контакт. Ан нет – наука не стоит на месте.

P.S.
Собственно ларчик просто открывался (открывался в документации с исходниками ядра) – нужно было в modprobe.conf добавить нужный option model= для моей карты (какая именно модель нужна я узнал из документации, найдя там свой кодек)

Update:
А вот рецепт для freebsd.

04.05.08  |   | стань первым

Sendmail & shared hosting

Суть проблемы – на хостинге много пользователей (сайтов) и один apache (с mod_php), а с какого-то аккаунта шлют спам (через формочки, которые есть практически на каждом сайте – типа feedback и т.п.). Где-то это получается удачно (умудряются добавитб заголовок bcc и список из пару сотен (почему-то бразильских) e-mail-ов) где-то не очень и все кракозябрица отправляется в теле письма адресату, указанному в скрипте (который в свою очередь пересылает её нам, с вопросом – “а чО эта такое?”). Надо начинать бороться.

На прошлой неделе решил добавить в php.ini (httpd.conf) параметр mail.force_extra_parameters = “-fshell_user_name”.
Это помогло выявить некоторые кривые скрипты и уведомить авторов(владельцев) о том что пора исправлять ошибки.
Но поскольку этот параметр легко переписывается пятым параметром в функции mail, то всё вычислить не удаёься.

Сегодня пошёл другим путём – написал враппер на php (/usr/sbin/sendmail.php и указал его как sendmail_path в php.ini), который проверяет откуда был запущен sendmail, логирует и отправляет письмо дальше к реальному бинарнику. Это помогло найти проблемные(дырявые) скрипты на сайтах, но не решает проблемы рассылки спама с сайтов.

Сегодня же увидел ещё один метод рассылки – на неком сайте есть “доска объявлений”, после отправки объявления, скрипт отправляет его (объявление) на e-mail “добавляющему”. Ну и кто-то умный и большой фигачит автоматом объявление и меняет адреса… владельцам сайта похоже пох.. всё равно, что там твориться, а спам идёт и идёт…

У меня теперь есть возможность создавать кучу фильтров во враппере и отправлять левые письма в топку /dev/null (например если в тексте встретилось сочетание “bcc: “, но всё-таки интересно как решают подобные проблемы “крупные хостеры” (и решают ли они их). Как например в условиях shared hosting-а (если php установлен как модуль apache) делают лимиты на количество отправляемых писем в час с одного аккаунта ? Как борются со спамерами ? И ещё куча вопросов :) или “крупные” хостеры, ставят php как [fast]cgi и такими проблемами не озадачиваются ? ;o)

Technorati Tags: , , , ,

13.03.06  |   | 4 comments

20 ways to Secure your Apache Configuration

на opennet-e новость и ссылка на статью

Буквально в двух словах – предлагают отключить ВСЁ (забыли только в crontab добавить каждую минуту apachectl stop делать)
Не спорю – будет секурно,а кому будет нужен такой apache ?
Из реальных советов только mod_security советуют поставить ( и не пишут где набрать для него хороших правил – без них это просто ещё один «unnecessary module», которые советую вырубать), в chroot загнать – тоже спорно(на мой взгляд) для статических сайтов (на которые по сути и рассчитаны видимо эти «советы») это решение №1, а «динамический» вогнать в chroot довольно трудоёмкая задача(почти полсистемы копировать чтобы работали php,perl и т.п.) – проще сделать jail ( а проще ли? – удобнее точно), ну и собственно рекомендуют отключать «нафикненужные» модули, что я думаю подразумевается любым  вменяемым администратором.

Из совершенно непонятных мне советов:
(в вольном переводе)
Отключить .htaccess (правильно – если у Вас один сайт – один сервер, а если это публичный хостинг тогда писать «рулесы» по требованию клиента? а не заезамучаешься?)
но это не главное – дальше говорят – «а если всё-таки нужны .htaccess – сделайте, но назовите это файл как-нибудь по-другому, например .httpdoverride», дальше приводят правило, которое итак есть в httpd.conf… – а смысл в переименовании ? что измениться ? чтоб никто не догадался ?
страусиная философия –  прячем череп в песок, чтоб не так страшно было, когда будут убивать….

Lower the Timeout value – крайне спорно!!! , хотя может для буржуев это и актуально, у нас же пока большая часть пользователей пользуются убогими модемами(или убогими ATC) и уменьшив таймаут, мы рискуем кинуть их всех через известный орган…

P.S.
плевать на «вредные советы»
я хочу нормальное решение(без ugly hack-ов) для хостинга web-проектов (в данном случае php+any_webServer), такое чтобы было «шустрое» как mod_php (этим я подразумеваю что php as cgi или fastcgi конечно рабочее, но в скорости многократно проигрывает) и «секурное» – чтобы каждый VirtualHost был под своим юзером….
мечты-мечты…

Мечты подкрепились недавним очередным релизом Peruser MPM for apache 2 – хорошее начало, но имеет ряд существенных ограничений – надо отключать KeepAlive – а это неминуемое падение прозводительности (которое в принципе я решил путём отдачи статики через ngnix ) и ряд офигенных глюков PHP, в частности проблемы с GD и MSSQL которые я получил, попробовав настроить такую конструкцию на dev-сервере, оно понятно, об этом предупреждают создатели PHP, но до слёз обидно

P.P.S.

ещё пару советов в общую коллекцию:
Порежьте сетевой кабель на куски и сожгите его в безлунную ночь под ржание сивой кобылы.
Разъбейте все внешние (и внутренние тоже) накопители об стенку, осколки закопайте на Поле Чудес
Спите в презервативе – БЕЗОПАСТНОСТЬ ПРЕВЫШЕ ВСЕГО

Перво{ах}

офигеваю – три bind-а на разных машинах, один мастер – 2 слейва, настройки “из коробки” (ну почти), но всяко на слейвах одинаково всё.Один notify принимает от мастера, другой нет (или мастер ему их не шлёт[что вероятнее всего]).

уже вдвоём ставим эти сервера в позу ра лотоса, но не работает.

Скоро убъю себя об стенку

UPDATE: проблема решилась прямой записью

also-notify(ip.of.the.ns1; ip.of.the.ns2;) ;

перечитал мануал – бинд при включенных notify шлёт всем серверам перечисленным в зоне как NS. почему он слал их только первому – загадка.
Пути софтварные неисповедимы…. ©