Апгрейд Movable Type (3.x -> 4.x), часть первая

После десятка экспериментов на кошках, была отработана (и проделана на данном блоге) процедура апгрейда на Movable Type 4.x с третьей версии. В общих чертах она совпадает с рекомендованой авторами MT4, хотя имеются, конечно, и всякие локальные отклонения.

В пошаговом виде процедура выглядит так: После десятка экспериментов на кошках, была отработана (и проделана на данном блоге) процедура апгрейда на Movable Type 4.x с третьей версии. В общих чертах она совпадает с рекомендованой авторами MT4, хотя имеются, конечно, и всякие локальные отклонения.

В пошаговом виде процедура выглядит так:

  1. Запрещаем комментарии и тракбэки, чтобы в процессе апгрейда база данных не менялась.
  2. Бэкапим все: файлы, базу данных, конфиг Apache. Все что найдем.
  3. Удаляем из конфига Apache все настройки, связанные с mod_perl. Пока поживем под CGI, а со временем перенесем под nginx+FastCGI. Без этого каждый чих может потребовать перестарта апача (особенно весело будет, когда в разных копиях httpd будет разная версия MT.pm).
  4. Удаляем плагины по списку из описания процедуры апгрейда (nofollow, OpenID server, OpenID comments, Texitile и так далее), убеждаемся что из списка плагинов они пропали. Заодно полезно удалить и неиспользуемые плагины (у меня, например, они накопились в большом количестве).
  5. Распаковываем дистрибутив MT4 (я взял MT4.01 RC2) рядом с cgi-bin/mt
  6. Накладываем мои патчи русификации (взятые отсюда). Напоминаю, что они касаются дирификации (превращения русских букв в латинские в URL) и русских дат (русские даты будут, если настройки даты для блога - итальянские).
  7. Копируем новый MT поверх старого:
    <b>cp -Rp MT-4.xx/* cgi-bin/mt/</b>
  8. Заходим на http://your-blog/cgi-bin/mt/mt.cgi убеждаемся, что нам предлагают все поапгрейдить, соглашаемся, апгрейдим.
  9. Разрешаем комментарии и тракбэки в настройках блога, делаем Publish для всего
Вся процедура, после должной тренировки, укладывается в пару минут (плюс время на Publish).
В результате мы получаем работающий на новом движке блог с некоторыми особенностями:
  • Часть плагинов надо поапгрейдить. Частично (как CCode/TCode) они могут сказать об этом на закладке Plugins (кстати, в 3-й версии ругань была видна сразу, а в 4-й нужно смотреть свойства каждого отдельно). Частично - нужно самому догадаться (скажем MTNotifier стал Comments Subscribe, вместо MTLJPost нужно ставить Crosspost).
  • Темплейты - все старые. Процедура их замены - отдельное мучение о котором мы расскажем в следующих сериях. Соответственно, часть плагинов, рассчитанных на новые темплейты (таких, как Simple Threaded последней версии) пока ставить нельзя.
  • Все файлы (картинки и т.п.) нужно сделать assets-ами. Например, путем установки AssHAT и массового импорта.
  • В Dashboard часть сообщений (о дате модификации) - на испанском. Напоминаю, в 'date format settings' указан итальянский язык. Спишем на бету (Release Candidate).
  • После пере-паблишинга всего сайта полезно сходить к нем в DocumentRoot и выполнить там команду
    <b>find . -mtime +1 -type f</b>
    Другими словами, поискать файлы, которые после ребилда не изменились. Я у себя нашел много всего интересного, например лежащие "не там" картинки и промежуточные версии постов.