Urs*_*Urs 10 typo3 typo3-4.5 typo3-6.2.x
将TYPO3 4.5(或6.1)升级到6.2的建议步骤是什么?我有一个mac,我的网站在共享的Linux帐户上运行.
Urs*_*Urs 26
以下是我想要分享的升级实践的分步指南.感谢https://jweiland.net/typo3/vortraege/typo3camp-berlin-2014.html上的指南,这对我帮助很大.
请注意,这些是我的个人经历,可能适用于您的环境,也可能不适用.小心对待一切.
我区分"快速"和"长"升级.通过"长"升级,您可以进行两次升级.首先,升级实时站点的副本,使所有扩展和模板正常工作,当您准备就绪时,使用在第一步中修改的文件声明内容冻结,重新进行升级.对于"快速"升级,您可以立即声明内容冻结,执行升级和测试,然后直接部署到测试或实时环境.
BE][adminOnly] = 0)时,不要忘记检查该网站是否有用户提供的内容?如果是这样,要么禁用提交它的可能性,要么记下在启用升级后的站点后必须重新导入的表.提示:在当地工作.我只能在mac上使用MAMP Pro(一定要获得专业版).始终要知道您正在使用哪个站点(以及使用哪个DB),顺便说一句!注意:OS X文件系统是不区分大小写的,在部署到Linux时可能会很糟糕(见下文).对于数据库管理,我更喜欢http://www.sequelpro.com/到phpMyAdmin来完成大多数任务.尽管与phpMyAdmin相比,它有一些缺少的功能,但是进行备份或快速浏览表格非常方便.将dbs导入实时服务器也非常可靠 - phpMyAdmin可以经常停止.
请注意是否[SYS][UTF8filesystem]已设置:通过流行的(S)FTP客户端(如Coda或Transmit(未测试Cyberduck))将文件传输到OS X可能会损坏包含UTF-8文件名的文件名.因此,部署时,指向此类文件的所有链接都将无效.将它们打包成存档,以便传输或使用scp.首先避免设置.
创建本地TYPO3实例.如果你在同一个位置保留一个"旧"和"新"核心是很实用的,所以你可以通过符号链接轻松地在它们之间切换.创建并连接本地数据库.
提示:如果您正在使用MAMP,则必须将所有文件(除了您的应用程序的模板和配置文件(如Sublime))列入_www:_www.我发现为〜/ .bash_profile中的sudo chown定义一些别名很有用,
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的域登录.如果您已登录该域,则adminPanel仅显示!当您在那里时,也会添加options.clearCache.system = 1到管理员的TS,因此您也可以在生产模式下清除系统缓存.
安装http://typo3.org/extensions/repository/view/smoothmigration并运行它.修复您现在可以解决的问题,例如DB中的UTF8问题.复制剩余的报告并将其保存在word文件或类似文件中 - 升级后无法运行smoothmigration
浏览所有扩展程序.我们需要它们吗?您可以查看插件是否与(例如)一起使用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我们将有扩展的很短名单了.那很好!
备份数据库并在安装工具中进行DB-Compare.注意:请勿触摸稍后导入所需的扩展数据(tt_news,powermail,dam).如果你敢,你可以重命名或删除其他100%过时的数据.
研究BE中的"Reports"模块并采取建议的操作
如果您有耐心,请检查网站上的链接是否断开 - 转换为FAL时可能会出现问题.
是否有可以删除的内容/页面?(例如古代测试页,重复等?)如果你胆敢的话删除它.
不要忘记:递归清空所有页面的垃圾桶(模块"垃圾箱").无需迁移已删除的内容.参看 https://forge.typo3.org/issues/62360一次删除多个项目
要点:更新参考索引(在"DB Check"模块中).它必须在升级之前完美.
再次进行备份
- >将核心切换到6.2
重新加载后端,您将进入安装工具.要连接到数据库,您可能必须输入"localhost"而不是127.0.0.1作为预填充
安装工具:检查文件夹结构和系统环境,使其全部为绿色.读取系统环境直到底部:"红色"项目位于顶部,但"蓝色"项目(推荐)位于底部(例如,缺少系统区域设置,如果使用UTF8-Filesystem则需要该系统区域设置).
提示:不要太急于APC,6.2中的可用性检查并不完美,参见 https://forge.typo3.org/issues/64030(如果您的共享主机依赖于suPHP,则无法使用它).
安装工具:运行第一个向导.只是第一个.不要运行"将启用RTE的字段的所有文件链接迁移到FAL".
重要提示:以管理员身份登录后端.转到文件列表,必要时刷新文件树.现在在其设置中将filemounts(fileadmin ...)设置为"Use case sensitive identifiers".否则,您最终可能会在sys_file中以小写形式显示所有文件名,这在live linux系统上不起作用.
此外,File Abstraction Layer: Update storage index在调度程序中运行任务并更新引用索引.
安装工具:完成其余的升级向导.要调试无法迁移的损坏链接,请使用https://forge.typo3.org/issues/64122(6.2.10 up)中的解决方法
提示:如果在所有向导完成后似乎没有完成某些事情,您可以在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
Run Code Online (Sandbox Code Playgroud)
编辑:一个更全面的列表在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中是否存在错误.
如果您之前没有这样做("长"升级),请在扩展后安装扩展程序并修复必须修复的内容(谷歌错误).如果需要,请手动安装 https://github.com/medialis/realurl_clearcache.
你使用imagemap_wizard吗?https://github.com/lorenzulrich/imagemap_wizard并从https://forge.typo3.org/issues/58212添加css修复
提示:顺便说一句,我在所有网站上使用的扩展:realurl_clearcache,nc_staticfilecache,sourceopt,ke_search.在大多数网站(基于功能),当然:新闻,电力邮件.
不要忘记:检查非管理员用户的后端权限.可能需要为FAL(文件抽象层)的表和字段添加权限.如果必须修改内容,请使用模拟编辑器用户尽早发现问题.
通过"语言"模块更新翻译,以便编辑器获得翻译后端和扩展
提示:还要确保正确设置"页面树权限"组,参见http://typo3.uni-koeln.de/typo3-admin-access-default.html?&L=0
提示: 这是我添加到所有用户的userTSConfig的片段.
通过一切.如果你有时间和预算,让网站更好,使用webpagetest.org来发现性能漏洞,清理.htaccess,合并资产,检查管理工具中的页面渲染时间,更新前端依赖关系,检查404处理,移动模板to typo3conf/ext/templates(最佳搜索 - 替换db转储中的所有路径!),整理用户和组,将所有模板从db移到include,清理模板结构等等 - 这一切都取决于你的时间可用于该网站.
进行备份.再次.
在实时服务器上测试它!或者,如果它不是一个可以承受一些停机时间的高调网站,只需上线,将文件(没有typo3temp)和db移动到服务器,设置符号链接,清除所有缓存等.
在实时系统上,检查安装工具.可能你必须适应一些php.ini设置.并将配置预设设置为"生产".
重建参考索引
选中"报告".关于区分大小写问题,您现在可能会在这里看到缺少的引用 - 您还没有在Mac上看到这些引用,因为文件系统不区分大小写.此外,您还可以查询sys_file的missing = 1.您可以重新运行上面提到的调度程序FAL任务,以查看它可以修复一些文件名.如果没有其他方法,您仍然可以将所有文件重命名为小写,参见 如何将所有文件重命名为小写?
检查cronjobs和调度程序任务(转到调度程序模块中的"检查配置",查看是否存在cli用户).啊,还看看你是否正在运行当前的php版本.另请检查您是否禁止Google在robots.txt中抓取实时版本
您是否必须配置一些备份例程或更新脚本?现在做.
如果它还没有工作,不要惊慌.可能它只是缓存.或者是其他东西.
当站点运行满意一段时间后,运行另一个dbcomp并删除所有旧表.
等待.我忘记了什么?稍后会添加.