Вот здесь пишут, что это ошибка пакета php5-imagick версии 3.1.0RC1, а в версии 3.1.0RC2 якобы исправлено. Но ты, по-моему, писал, что разые версии ставил, и баг все равно проявляется. Видимо, какой-то кочующий баг, который и в более поздних версиях вылезает.
Но там же есть хак для обхода этого бага. На тестовом скрипте этот хак прокатил, попробую это в библиотеку добавить, посмотрю, что получится.
Я тоже. Но раз один файл у Вас точно не обновлен, то возникают подозрения, что и другие файлы не всегда обновляются. И, насколько я помню, пару раз Андрей Вам на это уже указывал. Не исключаю, что при таком неполном обновлении у Вас может оказаться дикая мешанина файлов разных версий, и это, разумеется, не может работать стабильно.
Вот, в частности, первая ошибка говорит о том, то один из этих файлов у Вас не обновился:
common/plugins/ls/classes/modules/viewer/Viewer.class.php
engine/classes/modules/viewer/Viewer.class.php
И я советовал бы разобраться, почему это происходит. Возможно, что-то с правами у Вас не так (напр., у каких-то файлов и/или папок один владелец, а обновляете от имени другого).
И, кстати, а плагин Ls Вы для чего используете? Какие-то плагины от Лайвстрит работают на сайте?
1. Я всегда прошу максимально подробно описывать ошибки. Из Вас же приходится подробности вытягивать клещами. Сообщения об ошибках гораздо информативнее, чем «А-а-а, опять все поломалось». Но Вы на гитхабе пишете одно, а здесь «внезапно» возникают тыщи ошибок в логах.
2. После обновления движка файлы с ошибками лучше удалять, если не можете разобраться, где старые ошибки, а где новые, чтоб не путаться самому и не путать разработчиков. Например, самая первая ошибка, что здесь приведена — ее не может быть после обновления с гитхаба, которое Вы выполнили. Либо обновление у Вас прошло как-то криво.
3. По плагину gc Вам уже говорили, что он для версии 1.0+ создавался, вероятно, есть небольшие проблемы с совместимостью с версией 1.1. О конкретных проблемах с конкретным плагином надо писать отдельно — на странице плагина в каталоге, отдельным топиком, автору в личку — на выбор, но так, чтоб автор плагина это увидел и мог отреагировать. Но Вы, как обычно, упорно идете своим путем, видимо, в надежде, что и так все все знают, понимают, и вообще мысли читают.
Отвечая на заданный вопрос: ошибок не должно быть вообще. Если они появляются, то каждую из них нужно смотреть и анализировать.
Я объяснил, в чем недостаток Вашего предложения, и дважды задал вопрос, как предлагаете этот недостаток устранять, и даже сделал альтернативной предложение. Но, похоже, Вам нужно только так, как лично Вам хочется и никак иначе, а что-то иное обсуждать, взвешивать все плюсы и минусы, и искать какие-то альтернативные варианты — это все Вам не интересно. Вы, по-моему, даже не читаете толком, что Вам отвечают. Не, так диалог не строится
Если кому интересно, то проблема была в том, что конфиг одного из плагинов был сохранен в формате «UTF-8 c BOM».
Казалось бы, при чем тут капча? Я понимаю это так: сайт работает на niginx + php-fpm. И при загрузке файлов конфига, загружался, кроме прочего, и этот файл с BOM, и эти злосчастные три байта улетали в выходной буфер сервера. А потом, при выводе сгенерированной движком капчи, они встраивались в бинарный изображения, ломая формат картинки.
Интересно то, что при работе с apache в подобных случаях возникают ошибки от того, что идет отправка заголовков функцией header(), в то время как уже пошел вывод клиенту. А вот nginx, видимо, работает иначе, BOM-коды буферизирует, но клиенту сразу не отправляет, поэтому ошибок явных при использовании header() не возникает.
Если б это было так, то не было бы такого числа доработок движка, которые идут постоянно.
Я уже как-то объяснял свою позицию относительно пожеланий чего-то добавить в движок. Если на двух Ваших сайтах нужен какой-то функционал, то не факт, что он будет нужен на сотнях других сайтов, которые работают на Альто.
И уж тем более я критично отношусь к предложениям, когда высказывается «хочу», а зачем, для чего, что это даст — непонятно.
Выше я уже задал вопрос: Например, в тело топика вставлено 10 кртинок, а в фотосете их 5. И что писать в «числе изображений» — 5, 10, 15? Есть сайты, где фотосет используется часто, а есть такие, где его вообще нет или используется редко. И что там даст число фотографий? Смотрит юзер на топик, видит в нем одну фотку и надпись «в топике 1 изображение», и у него вполне может возникнуть ощущение, что его за полного дебила держат, который не умеет считать даже до одного. Считаете, это увеличит лояльность аудитории?
Да как-то я не вполне уверен, что нужно это вшивать в каждый шаблон. Особенно с учетом того, что изображения могут и в тело топика загружены, и в фотосет, а сам фотосет может как единым набором к топику цепляться, так и раскидываться частями по всему его «телу». Например, в тело топика вставлено 10 кртинок, а в фотосете их 5. И что писать в «числе изображений» — 5, 10, 15?
Мне кажется, что надо как-то иначе показывать, что к топику фотосет прицеплен. Напр., в списке топиков у каждого топика с фотосетом выводить первую картинку с числом общего количества изображений.
Согласен, что фича для каких-то сайтов может быть очень насущна. Но, во-первых, фича должна быть отключаемая, т.к. нужна все же не всем. А, во-вторых, нужно продумывать, как это реализовать в интерфейсе. Сделать, как Вы предлагаете — кнопка прямо на рамке всплывающего окна — не знаю, получится ли, т.к. окно это формируется сторонним скриптом, и я не уверен, что можно туда легко встраивать свои кнопки.
В общем, нужна сначала продуманная схема реализации, а там видно будет — встраивать ли это в коробку или отдельным плагином делать.
Да вот пытаюсь сообразить. Можно попробовать так: в файле common/classes/actions/ActionCaptcha.class.php найти:
$oCaptcha = new KCAPTCHA();
$this->Session_Set('captcha_keystring', $oCaptcha->getKeyString());
И закомментировать строку:
$oCaptcha = new KCAPTCHA();
//$this->Session_Set('captcha_keystring', $oCaptcha->getKeyString());
После этого попробовать еще раз вернуться к началу и открыть изображение по адресу site.com/captcha/. Если картинка появится, значит, точно что-то неладное с сессией
demo.altocms.com/new/25.html
Но там же есть хак для обхода этого бага. На тестовом скрипте этот хак прокатил, попробую это в библиотеку добавить, посмотрю, что получится.
Вот, в частности, первая ошибка говорит о том, то один из этих файлов у Вас не обновился:
common/plugins/ls/classes/modules/viewer/Viewer.class.php
engine/classes/modules/viewer/Viewer.class.php
И я советовал бы разобраться, почему это происходит. Возможно, что-то с правами у Вас не так (напр., у каких-то файлов и/или папок один владелец, а обновляете от имени другого).
И, кстати, а плагин Ls Вы для чего используете? Какие-то плагины от Лайвстрит работают на сайте?
2. После обновления движка файлы с ошибками лучше удалять, если не можете разобраться, где старые ошибки, а где новые, чтоб не путаться самому и не путать разработчиков. Например, самая первая ошибка, что здесь приведена — ее не может быть после обновления с гитхаба, которое Вы выполнили. Либо обновление у Вас прошло как-то криво.
3. По плагину gc Вам уже говорили, что он для версии 1.0+ создавался, вероятно, есть небольшие проблемы с совместимостью с версией 1.1. О конкретных проблемах с конкретным плагином надо писать отдельно — на странице плагина в каталоге, отдельным топиком, автору в личку — на выбор, но так, чтоб автор плагина это увидел и мог отреагировать. Но Вы, как обычно, упорно идете своим путем, видимо, в надежде, что и так все все знают, понимают, и вообще мысли читают.
Отвечая на заданный вопрос: ошибок не должно быть вообще. Если они появляются, то каждую из них нужно смотреть и анализировать.
Казалось бы, при чем тут капча? Я понимаю это так: сайт работает на niginx + php-fpm. И при загрузке файлов конфига, загружался, кроме прочего, и этот файл с BOM, и эти злосчастные три байта улетали в выходной буфер сервера. А потом, при выводе сгенерированной движком капчи, они встраивались в бинарный изображения, ломая формат картинки.
Интересно то, что при работе с apache в подобных случаях возникают ошибки от того, что идет отправка заголовков функцией header(), в то время как уже пошел вывод клиенту. А вот nginx, видимо, работает иначе, BOM-коды буферизирует, но клиенту сразу не отправляет, поэтому ошибок явных при использовании header() не возникает.
Я уже как-то объяснял свою позицию относительно пожеланий чего-то добавить в движок. Если на двух Ваших сайтах нужен какой-то функционал, то не факт, что он будет нужен на сотнях других сайтов, которые работают на Альто.
И уж тем более я критично отношусь к предложениям, когда высказывается «хочу», а зачем, для чего, что это даст — непонятно.
Выше я уже задал вопрос: Например, в тело топика вставлено 10 кртинок, а в фотосете их 5. И что писать в «числе изображений» — 5, 10, 15? Есть сайты, где фотосет используется часто, а есть такие, где его вообще нет или используется редко. И что там даст число фотографий? Смотрит юзер на топик, видит в нем одну фотку и надпись «в топике 1 изображение», и у него вполне может возникнуть ощущение, что его за полного дебила держат, который не умеет считать даже до одного. Считаете, это увеличит лояльность аудитории?
Мне кажется, что надо как-то иначе показывать, что к топику фотосет прицеплен. Напр., в списке топиков у каждого топика с фотосетом выводить первую картинку с числом общего количества изображений.
В общем, нужна сначала продуманная схема реализации, а там видно будет — встраивать ли это в коробку или отдельным плагином делать.
И закомментировать строку:
После этого попробовать еще раз вернуться к началу и открыть изображение по адресу site.com/captcha/. Если картинка появится, значит, точно что-то неладное с сессией