Обновление MODX 2.8.6 и внезапные проблемы с PHP 7.4
Друзья, спешу донести до вашего внимания две новости.
1. Вышло небольшое обновление MODX до версии 2.8.6.
Список изменений для желающих можно посмотреть здесь. Особо крупных изменений и критичных изменений по безопасности в нем нет. Исправили несколько багов, местами несколько неприятных для разработчиков. Обновили библиотеки PHPThumb и Smarty.
2.Сразу несколько человек столкнулись с проблемами после обновления. Как оказалось текущая версия PHPThumb не поддерживает PHP 7.4 и устанавливая свежий MODX на базе PHP 7.4 вы получаете целый ряд незабываемых впечатлений при работе.
github.com/modxcms/revolution/issues/16468
Не торопитесь обновляться.
По сути основная проблема заключается в использовании любых компонентов на основе PHPThumb. Их несколько pThumb, phpThumbOn, phpThumbOf. Они все под капотом дергают системную библиотеку, встроенную в ядро MODX.
Кроме того отказываются генерироваться и отображаться эскизы изображений в админке.
Проблема усугубляется тем, что PHP 7.4 это основная версия для MODX 2.8.x
Большинство русскоязычных компонентов используют в работе библиотеку PDOTools, которая никогда не тестировалась на совместимость с PHP 8.0 и выше. Можно столкнуться с неожиданными сюрпризами.
Всех любителей самого свежего призываю не торопиться обновляться. Вы ничего не потеряете. Это мелкое исправление багов, не более того.
Ну а тем, кто уже успел сломать сайт — поднимайте версию PHP до 8.0 и помогайте с обратной связью. Будем подгонять компоненты под PHP 8.0 — куда деваться.
1. Вышло небольшое обновление MODX до версии 2.8.6.
Список изменений для желающих можно посмотреть здесь. Особо крупных изменений и критичных изменений по безопасности в нем нет. Исправили несколько багов, местами несколько неприятных для разработчиков. Обновили библиотеки PHPThumb и Smarty.
2.Сразу несколько человек столкнулись с проблемами после обновления. Как оказалось текущая версия PHPThumb не поддерживает PHP 7.4 и устанавливая свежий MODX на базе PHP 7.4 вы получаете целый ряд незабываемых впечатлений при работе.
github.com/modxcms/revolution/issues/16468
Не торопитесь обновляться.
По сути основная проблема заключается в использовании любых компонентов на основе PHPThumb. Их несколько pThumb, phpThumbOn, phpThumbOf. Они все под капотом дергают системную библиотеку, встроенную в ядро MODX.
Кроме того отказываются генерироваться и отображаться эскизы изображений в админке.
Проблема усугубляется тем, что PHP 7.4 это основная версия для MODX 2.8.x
Большинство русскоязычных компонентов используют в работе библиотеку PDOTools, которая никогда не тестировалась на совместимость с PHP 8.0 и выше. Можно столкнуться с неожиданными сюрпризами.
Всех любителей самого свежего призываю не торопиться обновляться. Вы ничего не потеряете. Это мелкое исправление багов, не более того.
Ну а тем, кто уже успел сломать сайт — поднимайте версию PHP до 8.0 и помогайте с обратной связью. Будем подгонять компоненты под PHP 8.0 — куда деваться.
Поблагодарить автора
Отправить деньги
Комментарии: 19
Да, вчера столкнулся с такой проблемой на 1 проекте, решилось выдачей прав 777 на папку cache_image, прописанием этой папки в сис. настройках (почему то слетела) и очисткой кэша вручную. Не знаю, были ли какие то действия правильными или в целом нужными, но по крайней мере генерация превью в админке и на фронте заработала. В медиа источнике к сожалению, превью не отображаются местами, но это мне не мешает и заказчику не помешает тоже, ибо он будет грузить все изображения через MixedImage.
Ну и добавлю, что всё работает на phpThumbOn. И да, его я тоже переустанавливал на всякий случай.
Ну и добавлю, что всё работает на phpThumbOn. И да, его я тоже переустанавливал на всякий случай.
Быстрое решение, без перехода на php 8
github.com/modxcms/revolution/issues/16468#issuecomment-1708335830
В файле core/model/phpthumb/phpthumb.class.php на 317
Заменяем
github.com/modxcms/revolution/issues/16468#issuecomment-1708335830
В файле core/model/phpthumb/phpthumb.class.php на 317
Заменяем
public function __set(string $name, mixed $value): void {
наpublic function __set(string $name, $value): void {
Добавлю, что у меня в modx3 с phthump эта функция (точнее в логах ошибка связанная с этой функцией) была в файле /core/vendor/james-heinrich/phpthumb/phpthumb.class.php также на 317 строке
У меня на PHP 7.3 тоже «заглючило». Перевел сайт на «восьмую» версию. На сайте очень активно используется pdoTools. Пока «полет нормальный».
А откуда информация, что «...PHP 7.4 это основная версия для MODX 2.8.x»? В документации ко второй версии MODX рекомендуется PHP 7.2 или выше, а минимальная вообще 5.6.x.
А откуда информация, что «...PHP 7.4 это основная версия для MODX 2.8.x»? В документации ко второй версии MODX рекомендуется PHP 7.2 или выше, а минимальная вообще 5.6.x.
3.0.4 тоже после обновления «обсиренилась» пока не поднял php до 8.0, после повышения вроде всё пришло в норму. PdoTools и MIGX работают нормально.
На всякий случай, даже 8я версия PHP уже устарела и получает только обновления безопасности.
www.php.net/supported-versions.php
www.php.net/supported-versions.php
Да я сначала поставил 3 на 8.2, но потом понизил до 7,4, поскольку не все расширения работали. Сейчас смотрю некоторые подтянули, на 8.0 вроде все работают, которые у меня стоят. Но на php 8.1 сайт «пукнул» пару символов и сдох вообще.
От компонентов зависит. сам MODX3 прекрасно работает на 8.1
Я сейчас делаю модуль интернет-магазина MiniShop3 на 8.1 — ничего нигде не пукает
Я сейчас делаю модуль интернет-магазина MiniShop3 на 8.1 — ничего нигде не пукает
Лечение проблемы c фотками в phpthumb для MODX 2.8.6 для версии php 7.4 через костыль:
Убираем слово mixed в строке 317 в файле core/model/phpthumb/phpthumb.class.php
Спасибо @Иван Климчук за наводку.
Убираем слово mixed в строке 317 в файле core/model/phpthumb/phpthumb.class.php
Спасибо @Иван Климчук за наводку.
Так то во втором комментарии это уже написано.
Тоже столкнулся с проблемой после обновления. Перестали создаваться превьюшки галереи MS2. Причем видел этот пост, но поскольку phpThumb у меня не стоял — я подумал, что меня это не касается. Однако умные люди в чате объяснили, что phpThumb в ядро MODX вшит, независимо от того установлен он или нет)) Подсказали и метод лечения — взять папку
core/model/phpthumb
из установочного архива MODX 2.8.5 и перезалить на свой, обновленный до 2.8.6 сайт. После этого все опять нормально заработало.
Изначально ставил MODX 2.8.6 на PHP 8.2 (на более младших версиях PHP получал ругань от Composer). Обнаружилась проблемка в генерации превью плагином UserFiles — при загрузке юзером превью в области вывода списка файлов видно, но при перезагрузке страницы его уже нет. Несмотря на выставленный в настройках компонента формата для превью jpg, при загрузке оно записывается как
Остальные превьюхи в файлменеджере MODX и через pThumb видны. Плагин использует dropzone — может быть это причиной такой баги?
<img alt="..." src="data:image/png;base64,и много букв" />
.Остальные превьюхи в файлменеджере MODX и через pThumb видны. Плагин использует dropzone — может быть это причиной такой баги?
Уже поправил, обновление доступно в modstore.pro
еще нашел что в MODX 2.8.6 на PHP 8.2 не отображаются превью в приложении Gallery
хотя насчет Gallery пока вопрос снимается — проверил на Mohost — галерея нормально грузит превьюхи и на PHP 8.1
Нарыл возможную причину — версия MySQL 8.0 у моего хостера, написал в саппорт с просьбой понизить до 5.1, отпишусь о результатах.
Нарыл возможную причину — версия MySQL 8.0 у моего хостера, написал в саппорт с просьбой понизить до 5.1, отпишусь о результатах.
Так и есть, понизили версию MySQL и проблема с галереей ушла, можно удалить мой комменты по этому поводу.
Обновился до MODX 2.8.6 и наступили проблемы с сохранением родителя с вложенными ресурсами, без вложений сохраняет ок. Когда включаешь php 7.4 все сохраняет. В итоге проблемы с сохранением вызывал плагин autoredirector — после удаления плагина сохранение заработало. Есть проблемы с работой msGallery если попытаться обновить превьюхи под php 7.4 — идет бесконечная загрузка, с php 8 и выше все ок.
В итоге проблемы с сохранением вызывал плагин autoredirectormodx.pro/help/24408#comment-141539
Спасибо! easyRedirects тоже хорошо справляется с перенаправлением, только прописывать урлы нужно вручную
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.