Как обновить TYPO3 4.5 до 6.2

Каковы рекомендуемые шаги для обновления TYPO3 4.5 (или 6.1) до 6.2? У меня есть Mac, и мой сайт работает под общей учетной записью Linux.

2 ответа

Решение

Вот пошаговое руководство из моей практики повышения квалификации, которым я хотел бы поделиться. Спасибо за руководство на https://jweiland.net/typo3/vortraege/typo3camp-berlin-2014.html, которое мне очень помогло.

Обратите внимание, что это мой личный опыт, который может относиться или не относиться к вашей среде. Тщательно относитесь ко всему.

Я различаю "быстрые" и "длинные" обновления. При "длинных" обновлениях вы делаете обновление дважды. Во-первых, вы обновляете копию живого сайта, работаете со всеми расширениями и шаблонами, а когда вы готовы, вы объявляете о заморозке контента, повторно выполняя обновление, используя файлы, измененные на первом шаге. Для "быстрого" обновления вы сразу же объявляете заморозку контента, выполняете обновление и тестирование, а затем непосредственно развертываетесь в тестовой или реальной среде.

Настройте сайт локально

  • Когда вы будете готовы заморозить содержимое (BE][adminOnly] = 0), не забудьте проверить, есть ли на сайте контент, добавленный пользователем? Если это так, либо отключите возможность его отправки, либо отметьте, какие таблицы необходимо повторно импортировать после включения обновленного сайта.

Подсказка: работайте локально. Я могу сослаться только на использование MAMP Pro (не забудьте получить версию Pro) на Mac. Всегда помните, на каком сайте (и с какой БД) вы работаете, кстати! И внимание: файловая система OS X нечувствительна к регистру, что может обескураживать при развертывании в Linux (см. Ниже). Для администрирования базы данных я предпочитаю http://www.sequelpro.com/ phpMyAdmin для большинства задач. Это очень удобно для создания резервных копий или быстрого просмотра таблиц, хотя в нем есть несколько недостающих функций по сравнению с phpMyAdmin. Он также чрезвычайно надежен для импорта баз данных на работающий сервер, где phpMyAdmin может часто зависать.

  • Осторожно, если [SYS][UTF8filesystem] установлено: передача файлов в OS X через популярные (S)FTP-клиенты, такие как Coda или Transmit (не проверенные Cyberduck), может повредить имена файлов, содержащие имена файлов UTF-8. Таким образом, все ссылки на такие файлы будут недействительными при развертывании. Упакуйте их в архив перед передачей или используйте scp. Избегайте настройки в первую очередь.

  • Создайте свой локальный экземпляр TYPO3. Это практично, если вы храните "старое" и "новое" ядро ​​в одном месте, поэтому вы можете легко переключаться между ними по символической ссылке. Создайте и подключите локальную базу данных.

Подсказка: если вы работаете над MAMP, вам нужно будет упаковать все файлы (кроме шаблонов и файлов конфигурации ваших приложений (например, Sublime)) в _www:_www. Я нашел полезным определить некоторые псевдонимы для sudo chown в ~/.bash_profile, например alias chownmamp="sudo chown -R _www:_www ." и наоборот вашему собственному пользователю. Другая возможность может быть временно chmod 777 все - при развертывании, с особой осторожностью это удаляется (find . -type f -exec chmod 644 {} \;find . -type d -exec chmod 755 {} \;)

  • Дублируйте сайт и базу данных, чтобы сохранить не обновленную версию для сравнения - даже после развертывания

  • Инициируйте локальное git-репо, не забудьте добавить.gitignore для временных данных. Совершайте время от времени!

Подсказка: если вы используете разные имена хостов для своего локального и живого сайта, замените их при необходимости. Для командной строки я нашел grep -rl 'www.site.ch' ./ | xargs sed -i 's/www.site.ch/www.localsite.dev/g' полезно. Но, конечно, вы можете сделать это в вашей IDE или редакторе тоже. Не забудьте также проверить realurl_conf.php и.htaccess. Для быстрого запуска также можно использовать настоящие имена хостов, поэтому вам не нужно ничего заменять (но вы не сможете сравнивать сайты с одного компьютера).

  • Теперь вы сможете войти в бэкэнд и в инструмент установки

Подсказка: на MAMP у меня были проблемы с $TYPO3_CONF_VARS['BE']['warning_email_addr'] что не позволило войти в инструмент установки с ошибкой 500, так как не удалось отправить электронное письмо. Удалите этот параметр в localconf.php для локального обновления, если это произойдет.

Подготовить обновление

  • Сделайте резервную копию файлов и БД. (делать частые дб дамп позже тоже)

  • Важно: Установите инструмент> Анализатор базы данных> Очистить таблицы: очистите все кэши, журналы, а также данные истории (если все в порядке с вами). Чем меньше база данных, тем легче будет выполнить обновление.

  • Включите интерфейс.

  • Также убедитесь, что у вас есть панель администратора. Очень полезно переопределить кэширование TYPO3 и устранить узкие места производительности. Кроме того, вы можете надежно форсировать рендеринг TS при каждой перезагрузке. Задавать config.admPanel = 1 на странице TS, включите его в TS вашего администратора с помощью admPanel=1 и войдите с доменом, с которого вы будете просматривать FE. Панель администратора отображается только в том случае, если вы вошли в этот домен! Пока вы там, также добавьте options.clearCache.system = 1 в TS администратора, так что вы можете очистить системный кеш также в рабочем режиме.

  • Установите http://typo3.org/extensions/repository/view/smoothmigration и запустите его. Исправьте проблемы, которые вы можете исправить сейчас, например, проблемы с UTF8 в БД. Скопируйте оставшийся отчет и сохраните его в текстовом файле или аналогичном - вы не сможете больше выполнять плавную миграцию после обновления

  • Пройдите все расширения. Нужны ли они нам вообще? Вы можете узнать, используется ли плагин с (например) SELECT * FROM tt_content WHERE list_type = 'news_pi1' или глядя на все cType = 'list' записи в tt_content. Если он не используется, рассмотрите возможность удаления расширения. Или его можно заменить на лучшее расширение или пересобрать вручную / через tt_content? (Например, карусель, я бы предпочел не поддерживать расширение для этого. Но проверьте бюджет! Все занимает время.

  • Я избавляюсь от indexed_search, как ke_search это очень надежная альтернатива, которая быстро настраивается.

Подсказка: для FAL пользователю _cli_scheduler нужны права на каждое монтирование файла, которое вы хотите проиндексировать с помощью ke_search, иначе индексация через планировщик не удастся.

  • Основная задача: проверить наличие обновлений расширений. Если доступно совместимое обновление расширения, сделайте это. Но сначала проверьте, работает ли он со старым и новым сайтом: http://typo3.org/extensions/repository/view/realurl: This version works for TYPO3 4.5.0 - 6.2.999 - если это не так, не обновляйте еще.

  • Обязательно удалите realurl_clearcache, версия TER сломается на 6.2

  • Когда вы закончите удаление, удалите все оставшиеся локальные расширения. Вам не нужно удалять sysexts.

  • в typo3conf/ext у нас будет довольно короткий список расширений. Это хорошо!

  • Сделайте резервную копию БД и сделайте сравнение БД в инструменте установки. ВНИМАНИЕ: не трогайте данные расширения, которые вам понадобятся для последующего импорта (tt_news, powermail, dam). Если вы решитесь, вы можете переименовать или удалить другие, 100% устаревшие данные.

  • Изучите модуль "Отчеты" в BE и выполните рекомендуемые действия

  • Если у вас есть терпение, проверьте наличие битых ссылок на сайте - они могут создавать проблемы при переходе на FAL.

  • Есть ли контент / страницы, которые можно удалить наверняка? (Например, древние тестовые страницы, дубликаты и т. Д.?) Если хотите, удалите их.

  • Не забудьте: очистить корзину (модуль "Корзина") для всех страниц рекурсивно. Нет необходимости переносить удаленный контент. Ср https://forge.typo3.org/issues/62360 чтобы удалить сразу несколько элементов

  • Важно: Обновите ссылочный индекс (в модуле "Проверка БД"). Это должно быть ИДЕАЛЬНО перед обновлением.

  • Сделайте эту резервную копию... снова

Сделать обновление

  • -> Переключить ядро ​​на 6.2

  • Перезагрузите бэкэнд, вы попадете в инструмент установки. Чтобы подключиться к БД, вам может потребоваться ввести "localhost" вместо 127.0.0.1, как указано ранее.

  • Установите инструмент: проверьте структуру папок и системную среду, сделайте все это зеленым. Читайте Системную среду до конца: "Красные" элементы находятся вверху, а "синие" элементы (рекомендуется) находятся внизу (например, отсутствует языковой стандарт системы, который необходим, если вы используете UTF8-Filesystem).

Подсказка: не слишком рвитесь с APC, проверка доступности в 6.2 не идеальна, ср. https://forge.typo3.org/issues/64030 (вы не можете использовать его, если ваш общий хостинг зависит от suPHP).

  • Установить инструмент: Запустите первый мастер. Просто первый. НЕ запускайте "Перенос всех файловых ссылок полей с поддержкой RTE в FAL".

  • Важно: Войдите в бэкэнд как администратор. Перейдите в список файлов, при необходимости обновите дерево файлов. Теперь установите в настройках filemounts (fileadmin...) значение "Использовать идентификаторы с учетом регистра". В противном случае вы можете получить имена файлов в нижнем регистре в sys_file, что не будет работать в реальной системе Linux.

  • Также запустите задачу File Abstraction Layer: Update storage index в планировщике и обновите ссылочный индекс.

  • Инструмент установки: Пройдите через все остальные мастера обновления. Для отладки неработающих ссылок, которые не могут быть перенесены, используйте обходной путь с https://forge.typo3.org/issues/64122 (6.2.10 и выше)

Подсказка: если после завершения работы всех мастеров что-то кажется неполным, вы можете снова включить мастера обновления в LocalConfiguration.php в разделе ['INSTALL']['wizardDone'], (Например, если вся таблица sys_file_reference пуста и в таблице tt_content нет изображений - удалите строку для TceformsUpdateWizard, так что он может работать снова).

  • Важно: установить инструмент: все настройки: деактивировать адаптер содержимого! В противном случае вы будете работать в медленном режиме совместимости и не будете выполнять обновление целиком.

  • Проверьте "Отчеты". Сделай все это зеленым!

  • Установите инструмент: Проверьте рендеринг изображения (я предпочитаю GD), установите подходящие пресеты конфигурации

Подсказка: проверьте typo3conf/AdditionalConfiguration.php и убедитесь, что в нем нет значений, которые переопределяют значения из LocalConfiguration.php. Я имел это при обновлении 6.1->6.2, и, следовательно, не смог включить журналы ошибок (devIPmask был переопределен все время).

  • Основная задача: обновить и установить расширения, имеющие обновления, несовместимые со старым ядром.

Подсказка: вот несколько случайных замен, которые мне пришлось сделать для совместимости с 6.2:

require_once(PATH_tslib . 'class.tslib_pibase.php‘);
-> if (!class_exists('tslib_pibase')) require_once(PATH_tslib . 'class.tslib_pibase.php');

require_once(PATH_t3lib . 'class.t3lib_scbase.php‘);
-> require_once(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('backend'). 'Classes/Module/BaseScriptClass.php‘);

t3lib_div::GPvar()
-> \TYPO3\CMS\Core\Utility\GeneralUtility::_GP()

mysql_num_rows($res)
-> GLOBALS['TYPO3_DB']->sql_num_rows($res)

t3lib_div::intInRange
-> t3lib_utility_Math::forceIntegerInRange

t3lib_div::view_array()
-> t3lib_utility_Debug::viewArray 

t3lib_div::testInt
-> t3lib_utility_Math::canBeInterpretedAsInteger

РЕДАКТИРОВАТЬ: гораздо более полный список находится на https://github.com/FriendsOfTYPO3/compatibility6/blob/master/Migrations/Code/ClassAliasMap.php

  • Обновление от DAM? Используйте https://github.com/b13/t3ext-dam_falmigration, следуя указаниям по установке и использованию планировщика и использованию. Имейте в виду, что с MAMP вы должны запускать MAMP PHP из командной строки, например /Applications/MAMP/bin/php/php5.5.18/bin/php ./typo3/cli_dispatch.phpsh extbase help

  • Перемещение tt_news в tx_news? У меня была проблема с импортером, когда не все переводы были импортированы. Сейчас есть более новая версия.

  • Обновление Powermail? Здорово, есть апдейтер! Спасибо! Я также столкнулся с проблемами с переводами. В одном случае их можно решить, нажав кнопку "Локализация" для формы.

  • rlmp_tmplselector: либо используйте https://github.com/jweiland-net/rlmp_tmplselector/ либо переместите выбор типа страницы в базовый макет ядра.

Подсказка: в последнем случае позаботьтесь, чтобы выбрать шаблон страницы в соответствии с выбранным макетом BE, никогда не используйте.if, всегда используйте CASE. См. С TYPO3 be_layout, как правильно выбрать шаблон внешнего интерфейса (с точки зрения производительности)?

  • Основная задача: шаблоны должны быть обновлены. Просто несколько вещей: Новый IMAGE / FILES TS, config.doctype=html5 (не html_5), заменить все HTML Объекты по TEXT, Используйте браузер объектов TypoScript (TSOB), по крайней мере, убедитесь, что в TS нет ошибок.

  • Если вы еще этого не сделали ("Длинное" обновление), установите расширение за расширением и исправьте то, что должно быть исправлено (ошибки Google). Установите https://github.com/medialis/realurl_clearcache вручную, если вам это нужно.

  • Вы используете imagemap_wizard? https://github.com/lorenzulrich/imagemap_wizard и добавьте исправление CSS из https://forge.typo3.org/issues/58212

Подсказка: кстати, расширения, которые я использую на всех сайтах: realurl_clearcache, nc_staticfilecache, sourceopt, ke_search. На большинстве сайтов (основанных на функциях), конечно: новости, powermail.

  • Не забывайте: проверьте бэкэнд-разрешения пользователей без прав администратора. Может потребоваться добавить права для таблиц и полей FAL (уровень абстракции файла). Если вам нужно изменить контент, используйте смоделированного редактора для раннего обнаружения проблем.

  • Обновляйте переводы с помощью модуля "Язык", чтобы редакторы получали переведенные Backend и Extensions.

Подсказка. Также убедитесь, что группа "Права дерева страниц" настроена правильно, см. http://typo3.uni-koeln.de/typo3-admin-access-default.html?&L=0

  • Могут быть проблемы с именами файлов, содержащими специальные символы, такие как умляуты, иногда приводящими к неработающим ссылкам на файлы (я использую Integrity или Scrutiny для Mac для проверки всего сайта), иногда только в уродливых именах файлов. Проверьте и обработайте вручную (если FAL работает, вы можете просто переименовать их в бэкэнд), если это необходимо.

Подсказка: вот фрагмент, который я добавляю ко всем пользователям userTSConfig.

  • Пройдите через все. Если у вас есть время и бюджет, сделайте веб-сайт лучше, используйте webpagetest.org, чтобы выявить дыры в производительности, очистить.htaccess, объединить ресурсы, проверить время отрисовки страниц в инструменте администратора, обновить зависимости внешнего интерфейса, проверить обработку 404, переместить шаблоны в typo3conf/ext/templates (лучший поиск - замените все пути в дампе базы данных!), приведите в порядок пользователей и группы, переместите все шаблоны из базы данных в списки включений, очистите структуру шаблонов и т. д. и т. д. - все зависит от времени, когда вы иметь в наличии для этого сайта.

  • Сделайте резервную копию. Снова.

Протестируйте и разверните

  • Проверьте это на живом сервере! Или, если это не высокоуровневый сайт, который может позволить себе некоторое время простоя, просто включите его, переместив файлы (без typo3temp) и дБ на сервер, установив символические ссылки, очистив все кэши и т. Д.

  • В действующей системе проверьте инструмент установки. Возможно, вам придется адаптировать некоторые настройки php.ini. И установите предустановку конфигурации на "Производство".

  • Перестройте ссылочный индекс

  • Проверьте "Отчеты". Что касается проблемы чувствительности к регистру, вы можете увидеть здесь отсутствующие ссылки - вы не видели их на Mac, поскольку в файловой системе не учитывался регистр. Также вы можете запросить sys_file за missing = 1, Вы можете повторно запустить задачу FAL планировщика, упомянутую выше, локально, чтобы увидеть, что она может исправить некоторые имена файлов. Если нет других средств, вы можете переименовать все файлы в нижний регистр, ср. Как переименовать все файлы в нижний регистр?

  • Проверьте задачи cronjobs и планировщика (см. Также "Проверка конфигурации" в модуле планировщика, посмотрите, существует ли клиент cli). Ах, также посмотреть, если вы используете текущую версию PHP. Также проверьте, не запрещаете ли вы Google сканировать живую версию в файле robots.txt.

  • Вам нужно настроить некоторые процедуры резервного копирования или обновления скриптов? Сделай это сейчас.

  • И не паникуйте, если он еще не работает. Наверное это просто кеш. Или что-то другое.

  • Когда сайт работает в течение некоторого времени, запустите другой dbcomp и удалите все старые таблицы.

  • Подождите. Что я забыл? Добавлю что позже.

Проверьте бэкэнд-разрешения пользователей без прав администратора. Может потребоваться добавить права для таблиц и полей FAL (уровень абстракции файла).

Другие вопросы по тегам