2023年11月24日发(作者:)

Joomla! 3.3 - 基础指南10Joomla! 全站备份、迁移工具

Akeeba Backup 使用详解

Akeeba Backup 原名 JoomlaPack,第一个版本是针对 Joomla! 1.0.x 平台

的。当时 Joomla! 发布了新闻来介绍这个Joomla! 平台的一键还原工具。

从最初的 JoomlaPack 到最新的 Akeeba Backup,软件的操作界面变化不

大,新版本更加美观,AJAX 特效更加丰富,不过熟悉旧版的用户在新版本不会

有迷失感,因为整个操作程序基本没变。

Akeeba Backup 的工作原理

先将全部的文件系统原样打包,保持其目录/文件结构不便;新增

/installation 目录(这个目录在核心安装完后就删除了,现在为了恢复原样,

必须创建)并按照核心安装包的规则,在里面包含一个 SQL 文件,这个 SQL

件就是当前网站数据库的备份;然后在 /installation 目录里面通过相关文件

引导用户完成安装(恢复)过程的操作。

Akeeba Backup 几个关键概念

1、临时目录

Akeeba Backup 的备份过程相当于提取、组装、打包的多个操作依次执行,

这些操作都需要有一个位置来存放中间环节的临时文件,因此就需要一个临时目

录。默认是使用 Joomla 自带的 /tmp 目录。我们也推荐使用该目录。

2、输出目录

备份结束之后,必须将备份结果保存在服务器上某个位置(除非你设置的是

直接通过 FTP 传输备份结果,或者直接备份到”云存储“网盘)。这个存放位

置就叫做”输出目录“。默认是 /administrator/components/com_akeeba/backup

这个目录,不过我们认为该目录路径太深,不方便下载,推荐修改为 /tmp 这个

目录。

提醒一点:不管是 /administrator/components/com_akeeba/backup 这个

目录,还是 /tmp 这个目录,都是可以通过 http 协议访问到的路径。因此就存

在被黑客扫描攻击的可能。因此,如果你的服务器上还有 www 根目录之外的路

径(例如在 public_html 目录之外),推荐将备份结果保存在那里,安全性更

高。

3、文件拆分

Akeeba Backup 的整个备份打包过程都是在服务器端执行的。为了避免对大

型网站执行备份时,对较大文件的读写导致 PHP 超时(timeout)错误,Akeeba

Backup 广泛使用了”文件拆分“技巧:就是对大文件每次读取一个片段,然后

就写入磁盘,接下来启动新的会话(session),再读取一个片段,写入一个片

段„„ 如此循环,直到将大文件处理完,再进行下一个文件。对数据库的备份

也是如此,每个 session 只处理一个片段。

Akeeba Backup 这么做,主要是想避免”超时错误“。不过,有些服务器的

配置相当好,这种情况下,拆分片段会使得备份过程冗长,因此 Akeeba Backup

允许用户在后台自己调整文件片段大小。

文件拆分还有一个问题,就是会导致 MySQL 数据库的备份结果不是一个单

一的 .sql 格式文件,而是很多小片段,文件格式也不是 .sql(只有第一个片

段的文件扩展名是 .sql这样的数据库备份结果无法通过 BigDump 数据库导

入工具 来处理。因此,你如果希望将来通过 BigDump 来恢复 Akeeba Backup

作的数据库备份结果,就必须对备份方案进行设置,让它在备份 MySQL 数据库

时,不拆分文件,这一点我们在视频教程中有清楚的演示。

4JPA 压缩格式

在最早的时候,JoomlaPack 使用 zip 格式来保存备份结果。但是很快作者

Nicholas K. Dionysopoulos 就发现,zip 格式处理较大文件时,可能会出错。

他深入研究后发现,这是 zip 格式自身的算法导致的,与操作系统等外界因素

无关。网站备份就是为了”数据安全“,如果把数据交给一个并不安全的 zip

式来保管,那还有什么意义?

那么,该使用何种压缩文件格式呢?.gzip/.gz 格式不存在 zip 格式的那

种问题,但是 Nicholas 考虑到并非每个服务器上都能制作 gzip 格式文件,

如在 IIS 服务器上就比较难。因此,他最后自创了 JPA 这个全新的压缩文件格

式。

JPA 压缩文件无法通过常见的 WinRAR 或者 7-zip 来解压。因为这是

Akeeba Backup 带来的全新文件格式。为了解决解压问题,Akeeba 团队提供了

两种方案:一种是在线解压工具,就是通过直接运行服务器端的

(需手动上传)工具来解压;另一种是桌面解压工具,叫做 Akeeba eXtract

Wizard(分别有针对 Windows/Mac/Linux平台的版本),该软件可以直接在 PC

上解压 JPA 压缩包。

5、目录/文件 除外

在你的 Joomla! 网站中,很显然并非每一个文件/目录都是非常珍贵而需要

备份的。例如,/cache 目录里面没有什么重要内容,即使全部删除也不会影响

网站运行,因为前台页面一打开,就会生成新的缓存内容。那么,就没必要将

/cache 目录备份起来,徒增备份结果的文件体积。

与此类似的还有 /tmp 临时目录。这里原本没有什么重要内容,除非你自己

上传了什么文件进去。

因此,Akeeba Backup 默认已经自动排除了对 /cache /tmp 目录(包括

其中的子目录、文件)的备份。

如果你的网站上还存在一些不需要放进备份包的文件或目录(例如你可能在

根目录下放了一部 500MB 的电影,只是为了给朋友们提供一个临时下载途径,

你肯定不希望把这个电影也放入网站备份包吧?),你就可以通过 Akeeba

Backup 提供的”文件和目录排除“功能来设置。

Akeeba Backup 的操作过程

安装 Akeeba Backup;从后台进入 Akeeba Backup 并点击”立即备份“按

钮;等待数分钟后,看到备份成功的消息,然后下载并保存你的备份结果。就这

么简单。

如果你使用默认方案时仍然出错,这时才需要通过设定参数来进行处理。

般都是由于服务器配置太差导致超时错误,或者路径设置不正确。如果你仔细检

查这些参数,很容易就弄好了。

某些比较繁忙的站长,或许同时管理多个网站,那么 Akeeba Backup 也提

供了配套的远程备份工具,叫做 Akeeba Remote Control,你可以通过该工具对

多个 Joomla 网站同时进行备份管理。

Akeeba Backup 还允许通过 Cron 计划任务来进行”定时自动备份“。这要

求站长必须熟悉 Apache 服务器上的 Cron 操作。

Akeeba Backup 甚至还提供了”前台备份“功能,就是通过访问特定的 URL

来触发备份操作。为了避免这个功能被他人恶意利用,Akeeba Backup 要求站长

给前台备份网址添加保密字串,这样就提高了安全性。