MODx Evolution, DirectResize 0.9 и php 5.3 - дружба навек
Недавно переезжал на новый сервер, и вроде ПО старого сервера и нового не очень сильно отличалось, но с одной заковыкой пришлось изрядно попотеть.
Итак, переезд с php 5.2 на php 5.3 не предвещал беды, тем более голый MODx и там, и там крутится абсолютно одинаково. Перетащил файлы, базу, зашел на главную страницу - все ОК, начал перетаскивать следующий сайт, а тучи уже начали сгущаться... Если коротко, то картинки обработанные DirectResize 0.9 перестали отображаться. При нажатии на картинку выходит куча ошибок phpthumb. Решение оказалось элементарным, хотя и пришлось убить полдня на изобретение велосипедов и прочтение кучи форумов (на этой куче, кстати, решения не нашел, может у них другой DirectResize?):
- качаем новый phpthumb отсюда: http://phpthumb.sourceforge.net/#download
- удаляем все в папке: /assets/snippets/phpthumb/
- распаковываем в эту папку содержимое скачанного архива
- открываем файл /assets/plugins/directresize/directResize.php
- ищем следующее выражение: "&src=" и заменяем на "&src=/" (у меня это 438-я строка)
- торт готов.
В поисках этого слэша, я перебрал кучу настроек php, настройки phpthumb. В DirectResize не искал, потому что demo-пример, идущий в комплекте с phpthumb на моем новом сервере тоже не заработал, потерял кучу времени.
P.S. DirectResize 0.8 и вообще, все что выдает ошибки, связанные с ereg, eregi и прочими переносятся еще проще (если сайт в UTF-8 и есть доступ к php.ini или apache.conf):
1-й способ (у Вас есть доступ к apache.conf) добавляем строки, выделенные жирным шрифтом:
<VirtualHost ... > ServerName ... ... php_admin_value mbstring.func_overload 7 php_admin_value mbstring.internal_encoding UTF-8 ... </VirtualHost>
2-й способ (у Вас есть доступ к php.ini) добавляем в этот самый php.ini следующие строки:
mbstring.func_overload = 7 mbstring.internal_encoding = UTF-8