Gallery:迁移

来自站长百科
(重定向自Gallery:Migration
跳转至: 导航、​ 搜索

Pages that need review by other documentation team members.

由Gallery1迁移至Gallery2[ ]

事先需了解的信息[ ]

为了获得最佳的结果,请在开始后文步骤之前阅读整个页面。在进行中请做好记录(尤其要记录下遇到的错误)并未此份资料的完善尽可能地提出建议。

净化脚本find_orphansvalidate_albums是迁移前准备阶段的重要部分。这些脚本是与1.5版同时被推出的。如果你尚在运行1.5之前的版本的话,请考虑先进行必要的升级然后再回头来进行向Gallery2的升级。

概览[ ]

与Gallery1升级到某1.x版本相比,Gallery1到Gallery2的升级过程则有所不同。以下为你所需要进行的步骤:

  1. 准备迁移(确认Gallery1的完整性并创建一个备份)
  2. 在同一服务器上的另一个文件夹中进行Gallery 2的安装
  3. 准备好Gallery2以处理Gallery1的所有数据
  4. 将Gallery1的数据导入到Gallery2之中
  5. 从服务器上移除Gallery1
  6. (可选)确保在Gallery1中使用的旧URL于Gallery2中仍可使用

迁移前的准备工作[ ]

  1. 备份现有的Gallery 1相册。
  2. 如果之前没有下载备份的话,现在就下载它。
  3. 以管理员身份在你的Gallery网站中登录。
  4. 在Gallery1站点中运行find_orphans脚本(http://www.example.com/gallery/tools/find_orphans.php)。修复其所发现的任何问题。(注:find_orphans和validate_albums脚本在1.5版之前是不存在的)
  5. 在Gallery1站点中运行validate_albums脚本(http://www.example.com/gallery/tools/validate_albums.php)。修复其所发现的任何问题,否则的话迁移将无法成功完成。
  6. 如果这些工具无效的话,那么可能是你的g1损坏了或为g1所指派的内存不足。要为这些gallery工具指派更多的内存的话,在gallery目录下的".htaccess"文件中添加"php_value memory_limit 32M"即可。这个问题要作为首要问题进行修复,修复之后再修复这些工具所找到的问题,最后尝试进行迁移。
  7. 重命名你的Gallery应用程序文件夹(很可能是'../gallery')为"g1"(我们将为Gallery2的安装使用原始的gallery文件夹)。如有必要的话,修改你的web服务器配置以反映所作的更改。如果为面向Google的URL曾使用mod_rewrite的话,就有可能也需要对"g1"的.htaccess文件进行修改。
  8. 为g1文件夹中的'config.php'文件进行备份。
  9. 通过访问http://www.example.com/g1/setup/对Gallery1重新进行配置以反映所作的更改。另外,编辑你的'config.php' '.htaccess'文件,这样你的gallery将在新位置运行。(参见后文的注释来看看'config.php'中需要进行修改的语句)
  10. 访问你的Gallery1站点中所有的相册。(可选)

现在你的Gallery1准备工作就算是圆满结束了。


...那么接下来就该轮到Gallery v2了。

安装Gallery 2[ ]

  1. 将Gallery2安装到一个名为gallery的新建文件夹中(如解压gallery2并将其重命名为gallery)
  2. 运行Gallery2的安装程序。(参见:Gallery2安装的相关指导)(http://www.example.com/gallery/install/)。为你的存储目录选择一个为空的新文件夹。请勿选择Gallery1相册的文件夹,因为稍后我们将导入它们。
  3. 请勿将Gallery1的相册置入Gallery2的数据目录中,因为稍后我们将导入它们。
  4. 用安装时创建的管理员帐户登入到Gallery2站点中。
  5. 打开站点管理(site admin)。
  6. 在站点管理(site admin) -> 插件(Plugins)中,除非必要请禁用GD。因为GD会消耗大量内存并有可能会干扰Gallery1的数据导入。参见:图片处理库的安装
  7. 在站点管理(site admin) -> 插件(Plugins)中,激活URL rewrite module (URL重写模块)。(注:在安装过程中,Gallery2引导你关闭目录权限。因此你必须允许对.htaccess文件的访问以完成此步骤)
  8. 如果你希望将Gallery1中的用户评论一并导入的话,就请激活Gallery 2 comment module(评论模块)
  9. 安装并激活Gallery 2 Custom field(自定义字段)Hidden Items(隐藏项目)模块以确保所有的Gallery1数据都被导入到了Gallery2中。如果模块有缺失的话,请打开--> 插件(plugins) --> 获取更多插件(get more plugins)来下载它们并进行安装。
  10. 如果你不希望所有缩略图都呈矩(方)形的话(而是希望缩略图具有原始相片的长宽比),就确保Gallery2中的Square thumbs(矩(方)形缩略图)模块没有被激活。
  11. 确保安装了Plugin Migration。如果没有的话,就打开--> 插件(plugins) --> 获取更多插件(get more plugins)-> 迁移(Migration) -->并下载此插件。
  12. 创建一个测试用相册。
  13. 将图片上传到此测试用相册中。刷新页面来看看上传结果。
  14. 确认图片上传无误且缩略图都被创建了。

如果你的Gallery2安装有问题的话,请先将这些问题修复。要成功完成迁移,你要先确保安装了Gallery2并且能够正常运行才行。

数据的迁移[ ]

导入用户[ ]

  1. 打开站点管理(site admin) -> 导入Gallery1(import Gallery 1)(位于管理选项菜单(Admin Option menu)的底部)。
  2. 在选择Gallery(Select Gallery)页面上,输入Gallery1相册的dir路径(绝对文件系统路径)。(此路径在gallery1的config.php文件中)。点击提交(Submit)。
  3. 在选择对象(Choose Objects)页面上,选择你需要导入的Gallery1用户。点击提交(Submit)。
  4. 在确认导入(Confirm Import)页面上,确认你所有的用户都罗列在此页之中。(注: Gallery2默认有一个'guest'帐户,这是为未注册的游客所准备的。如果你的Gallery1中也有一个名为'guest'的帐户的话,那么在导入用户之前,你就应该将Gallery2的'guest'帐户命名为其他的名称,例如'g2_guest') 。点击提交(Submit)。
  5. 在导入(Importing)页面中会有一个橙色的进度条。在右上角应有一个内存指示器。
    1. 如果导入在此时失败的话:
      1. 无论如何也请记录下右上角内存指示器的信息。将此记录下的信息保存(复制+粘贴)下来。
      2. 注意是否在橙色进度条下显示"继续(Continue)"。
      3. 如果出现了错误,请立即将它们记录下来。将整个错误的文本信息保存(复制+粘贴)下来。
      4. 现在请参阅此页面中的疑难解答部分。疑难解答

现在你的用户就应被成功导入了。

导入相册数据[ ]

  1. 如果一切顺利没出问题的话,点击"导入更多数据(import more data)"
  2. 最终你应会被转到选择Gallery页面(Select Gallery)。上次的路径现在应该可以点击了。
    1. 点击并提交。
  3. 在选择对象(Choose Objects)页面上选择你要导入的相册。
    1. 如果项目(相片)有描述(Descriptions),为"设定描述(Set description)"选择"自定义字段(Custom field)"并输入"描述(Description)"。
  4. 选择一些相册作为导入测试(此步将复制所有这些相册,包括所有的文件)。点击提交(Submit)。
  5. 在确认导入(Confirm Import)页面上,确认你所有的用户都罗列在此页之中。点击提交(Submit)。
  6. 在导入(Importing)页面中会有一个橙色的进度条。在右上角应有一个内存指示器。
    1. 如果导入在此时失败的话:
    2. 无论如何也请记录下右上角内存指示器的信息。将此记录下的信息保存(复制+粘贴)下来。
    3. 注意是否在橙色进度条下显示"继续(Continue)"。
    4. 如果出现了错误,请立即将它们记录下来。将整个错误的文本信息保存(复制+粘贴)下来并参阅此页面中的疑难解答部分。疑难解答
  7. 如果相册的导入成功的话,你就可以将这些相册从Gallery1的相册目录中删除了。
  8. 点击"导入更多数据(import more data)"来继续导入操作,知道所有g1相册都被导入为止。一次导入百余兆的相片以防止达到最大内存消耗限制。
  9. 如果你打算让Gallery1站点保持在线的话,在导入完成之后,请将新的.htaccess文件置入旧的Gallery1 albums/目录之下。
    1. 如果在你Gallery1 albums/目录下已有一个名为".htaccess"的文件的话,请将其替换为新的.htaccess文件
    2. 如果在此albums/目录下尚无.htaccess文件的话,就将新的.htaccess文件复制到此目录下
    3. 新的.htaccess文件可在"站点管理(site admin)" -> "管理(Admin)->导入(import)->Gallery 1"中下载,而它需要被置入旧Gallery1的albums/目录中
    4. 如果你在开始导入之前禁用了GD的话,请在管理(Admin)->模块(Modules)页面中重新启用它。

保留Gallery1的URL[ ]

所有Gallery1的图片和相片/相册页面的URL在迁移到Gallery2之后仍有效,不过你得按照以下步骤进行操作才能达到此目的:

Keep the Migration Module[ ]

永远不要卸载Gallery 2 迁移(Migration)模块!此模块将记下Gallery1的URL映射到Gallery2 项目或URL的方式。如果此模块被卸载了,其所有的数据都会丢失并且你Gallery1的URL将不再有效。请保持此模块处于激活状态。如果它被禁用的话,那么URL指向服务在你重新激活此模块之前将无法运作。

我们建议在完成所有Gallery1数据的导入操作之后,为你的Gallery2数据库做好备份

启用G1->G2 URL Rewrite Rule(URL重写规则)[ ]

  • 我们假定你已安装并激活了URL Rewrite(URL重写)模块。
  • 打开站点管理(Site Admin) -> URL重写(URL Rewrite)并启用G1->G2映射(G1->G2 Mapping)规则。
  • 完成后记得点击保存(Save) : )

在Gallery1及相册文件夹中添加新的.htaccess文件[ ]

一旦相册导入完成,就请遵照站点管理(Site Admin) -> 导入:Gallery1(Import: Gallery 1)页面上URL重新定向(URL Redirection)的相关指导。

  • 一般说来,你需要添加一个.htaccess文件,它应含有与Gallery1 albums/文件夹中页面上所显示的内容。这样Gallery1的图片URL才能被指向到Gallery2并仍有效。
  • 你可以删除Gallery 1 albums/文件夹的内容,但文件夹本身及新的.htaccess文件必须处于适当的位置以保证旧URL的运作。
  • 如果Gallery2安装在一个不同的文件夹中(曾用于Gallery1安装的文件夹)的话,你需要保证旧Gallery1的文件夹位置不变(可以为空)并且需要将新的.htaccess文件置入该文件夹中,目的在于将所有的相册/ 相片页面的请求指向Gallery2。

注释[ ]

  • 你很有可能需要放宽PHP内存的限制,以使得导入能够成功完成。将memory_limit设置为32M可以满足含有4000张左右图片Gallery的需要。这就是gallery1设计的不足之处了。如果你能够为迁移过程将此限制放宽到64M或128M的话,那就再好不过了。

参见:常见问题:被允许的内存大小

  • Gallery1和Gallery2具有不同的相册及项目元数据字段和字段长度。如果你有相对较长的摘要或标题的话,那么默认的设定就很可能会截断它。导入过程允许你对映射进行修改。相对于默认情况来说,以下的映射表现得更好:
    • Filename9(文件名) -> Title(标题)
    • Caption(字幕) -> Summary(摘要)
    • Caption(字幕) -> Description(描述)
  • Gallery1的"隐藏"相册的概念通过Gallery2的 隐藏模块(hidden module)可用。请确保安装并激活了隐藏模块(hidden module),并确认各相册中的隐藏属性的General标签。
  • 在导入后进行特殊权限的确认。如果与Gallery1安装有任何出入的话,请告知我们。
  • 以下Gallery 1.x的config.php文件中的语句包含了路径入口,并很有可能需要进行编辑以进行迁移操作
    • $gallery->app->albumDir
    • $gallery->app->photoAlbumURL
    • $gallery->app->albumDirURL
    • $gallery->app->movieThumbnail
    • $gallery->app->userDir

如果你遇到了问题,请将该问题以文本的形式发布到gallery支持论坛中,并请在标题中包含进"import(导入)," "migrate(迁移)",或"migration(迁移操作)"的字样。请阅读完此页面以了解我们需要你提供的所有信息。

疑难解答[ ]

在遇到问题时做好记录!!! 查看支持页面获取更多有关Gallery的细节信息。阅读此部分内容,如果能够提供这些要求的内容的话,就能让别人更好更快地帮助你解决问题。

  • 如果迁移在某些时候中止,请记录下右上角的内存显示信息,无论其内容为何都请记录下来并将此记录下的信息保存(复制+粘贴)在某处。
  • 如果迁移被中止,注意是否在橙色进度条下显示"继续(Continue)"。
  • 如果出现了错误,请立即将它们记录下来。将整个错误的文本信息保存(复制+粘贴)在某处。
  • 如果迁移随时都可能中止的话,将中止时正在进行处理的相册和/或项目名称复制下来。将其粘贴保留。
  • 如果是在某特定相册中导入过程失败的话,请先尝试该相册自行导入。
  • 如果是在处理某特定图片或视频时导入过程失败的话,请先确认Gallery1站点中的这些图片或视频的原版本是否仍存在
  • 如果这些图片或视频仍存在的话,请将它(们)下载到你的计算机中并在导入过程之外上传至Gallery2站点中。无论此方法有效还是无效,都请告知我们。
  • 如果没有任何有关内存量信息显示的话,你必须共享浏览器的版本。
  • 如果你的问题是有关有无的非ascii字符的话,请提供导入所用的字符集名称。
  • 复制你所激活的所有模块的名称,并粘贴至某处保存下来。

将所有粘贴保存下来的内容复制到你的帖子中。

为你的Gallery1和Gallery2提供一个链接是很有帮助的。除非我们特别有要求,不然为一个zip文件提供链接通常并没有太大帮助。

如果没有发生错误而是出现空白的屏幕,超时或其他无法提供足够信息的问题,有可能的话,请检查你的apache错误日志并检查是否有类似'memory allocation error, tried to allocate x bytes.'的语句行。如果发现了类似的语句行的话,请告知我们;同样如果出现其他的语句行也请让我们知悉。

  • 如果你使用输入自定义G1字段的选项来获取G2的"摘要(Summary)"和"描述(Description)"入口的话,那么EXIF数据可能无法显示在G2中,这取决于你所作的设定。如果你确实想显示EXIF信息的话,请将这些选项"留空"而不应当"自定义字段(Custom fields)"。

PhpBB2->Gallery1的整合[ ]

对于所有其他整合的Gallery1.x版本来说,迁移代码的如此使用将会导致所有相册和相片的所有权复归于管理员帐户。同时所有的权限都会丢失。

对于phpBB2的用户来说,他们是幸运的。他们可以通过某个mod/hack来讲phpBB2->Gallery1.x相册迁移到phpBB2->Gallery2.x,而无需担心权限信息易主的问题。

参考:http://www.snailsource.com/forum/viewtopic.php?t=3571

请注意: 此hack仍处于BETA版本!因此没有任何保障或支持。因此任何风险自担。 --Websnail 2006年4月18日,03:11(PDT)