Blog.Lysov.ru
msgbartop
My own blog
msgbarbottom

25 Aug 10 Ограничения PCRE в PHP5

Столкнулся с проблемой что не парсятся длинные страницы, методом подбора выяснил что размер максимально парсящейся страницы 120кб, оказалось что в настройках PHP по умолчанию стоит ограничение в 100000 символов.
Вот кусок кода для выявления этой ошибки.

< ?php
preg_match...
 
if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    echo 'Ошибка превышен предел';
}
?>

проблема решается увеличением параметра pcre.backtrack_limit в php.ini

pcre.backtrack_limit=1000000

Tags: , , , , ,

17 Mar 08 установка pecl extensions

Случаются такие ситуации что phpize выдаёт нечто подобное

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.

помогают такие вот команды

export PHP_AUTOCONF=autoconf213
export PHP_AUTOHEADER=autoheader213

Tags: ,

27 Feb 08 Косяк с url fopen

Работал работал хостинг рос и ширился, и в один прекрасный день перестали работать все операции связанные с вызовом gethostaddr.

Один и тот же скрипт запущенный в режиме cli выполняется, а как модуль
apache не хочет определять имена хостов.
Помогает добавление в /etc/hosts необходимых url-ов.

Включил debug режим error лога, а там

host: isc_socket_create: not enough free resources

Это говорит о том что апач превысил лимит открытых файлов :(

lsof | grep -c httpd
12790

а при этом в

sysctl -a | grep kern.maxfiles
kern.maxfiles: 12328
kern.maxfilesperproc: 11095

Вот собственно и проблема, решить которую можно двумя способами
1. Уменьшить количество открытых файлов
2. Увеличить лимиты

Я уменьшил количество, путем удаления лишних логов (было по 4 на хост стало по 2)
тем самым отсрочив немного эту проблему.

lsof | grep -c httpd
7244

Tags: , , , ,

27 Feb 08 Обновление wordpress

Обновил wordpress до 2.3.3 после чего он перестал работать

в error.log валилось

ALERT - canary mismatch on efree() - heap overflow detected (attacker 'xxx.xxx.xxx.xxx', file '.../wp-includes/taxonomy.php', line 12),

такие ошибки обычно выдает suhosin patch.

помогло добавление в .htaccess строчки:

php_value zend.ze1_compatibility_mode Off

Tags: ,