Как обновить 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 (уровень абстракции файла).