mysyslog.ru

27 Август 2009

PHP PCRE Functions kills apache childprocess

написано в рубрике: Новости — constantine.malov @ 11:13

Apache + mod_php + pcre functions = apache child pid exit signal Illegal instruction

Разработчики попросили разобраться с проблемой. Рри использовании preg_replace при определенном размере строковой переменной, над которой совершались всякие pcre преобразования, apache падал с сообщением  “apache child pid 3232 exit signal Illegal instruction”.

Паттерн, которым обрабатывали строку и правда был страшен, и первым делом я попросил разработчиков его переписать, но оказалось, что они его выдрали из Zend Framework… Да и вот так падать apache не должен в любом случае.

Нашел на php.net bug, очень похожий на мой случай, и еще несколько сообщений. Но решения там не было, кроме слов, что скорее всего дело в размере стека, который выделяется процессу apache.

Первым желанием было подправить stacksize в FreeBSD, но оказалось, что он и так 64MB… Так что осталось только одно – пинать библиотеку pcre. В man pcrestack есть упоминание, что pcre можно собрать с заменой использования стека на кучу. В man pcrebuild есть нужная опция: –disable-stack-for-recursion.

Дальше пересобираем библиотеку pcre и apache, за одно еще расширение php для pcre функций…

10 Август 2009

Как включить ssh на allied telesis AT8000GS

написано в рубрике: hardware — Метки: , — constantine.malov @ 10:38

Оказалось, все очень просто

  1. console# configure
  2. console(config)# crypto key generate rsa
  3. console(config)# ip ssh server

После чего нужно запретить telnet как класс:

  1. console(config)# management access-list accesstoconsole
  2. console(config)# permit vlan 1 service ssh
  3. console(config)# deny vlan 1 service telnet
  4. console(config)# end
  5. console(config)# management access-class accesstoconsole
  6. console(config)# end

Работает на WordPress