WordPress定时自动备份到阿里云OSS
很多WordPress站长都遇到过服务器硬盘故障或误操作导致数据丢失的情况,手动备份又容易忘记。
把备份文件自动传到阿里云OSS,既能定时执行,又能异地保存,是性价比很高的方案。
本文从零开始,带你在宝塔面板环境下完成WordPress定时自动备份到阿里云OSS的全部设置,最终实现每天凌晨自动上传备份文件,并能在OSS控制台看到结果。
准备工作:插件、OSS和权限
开始之前,需要确认三件事:服务器已经安装宝塔面板,WordPress站点运行正常,并且拥有一个阿里云账号。
如果还没有OSS Bucket,请先登录阿里云OSS控制台创建一个,地域选择离你服务器最近的,读写权限设为“私有”,这样更安全。
接着在WordPress后台安装备份插件。
推荐使用“UpdraftPlus”或“BackWPup”,两者都支持定时任务和OSS存储。
以UpdraftPlus为例,在插件市场搜索安装并启用。
然后获取阿里云OSS的AccessKey。
进入阿里云RAM访问控制,创建一个子用户,只授予OSS读写权限,生成AccessKey ID和AccessKey Secret。不要直接使用主账号的AccessKey,权限过大不安全。
配置插件连接阿里云OSS
在WordPress后台左侧菜单找到“设置”->“UpdraftPlus Backups”,点击“设置”标签页。
在“备份计划”中,勾选“文件”和“数据库”,并设置备份频率为“每天一次”,保留备份数量根据你的OSS容量决定,一般建议保留最近7份。
切换到“远程存储”标签,在“选择远程存储方式”下拉框中选择“阿里云OSS”。
部分插件版本可能显示为“S3 Compatible”,也可以使用。
接着填写以下信息:
- AccessKey ID:填入刚才生成的子用户AccessKey ID
- AccessKey Secret:填入对应的Secret
- Bucket名称:你的OSS Bucket名称
- 端点(Endpoint):格式为
oss-cn-地域名.aliyuncs.com,例如oss-cn-hangzhou.aliyuncs.com - 存储路径:可以留空,或填写如
wordpress-backup/这样的目录
填写完成后点击“测试存储”按钮。
如果提示成功,说明配置正确。
如果失败,请检查AccessKey权限和Bucket地域是否正确。
设置定时任务并手动触发一次
UpdraftPlus默认使用WordPress的伪定时任务,但为了更可靠,建议在宝塔面板中添加一个系统计划任务。
进入宝塔面板“计划任务”,添加任务:
- 任务类型:访问URL
- 任务名称:WordPress备份触发
- 执行周期:每天凌晨3点
- URL:
https://你的域名/wp-cron.php?doing_wp_cron
保存后,可以立即手动执行一次,观察是否成功。
你也可以在UpdraftPlus设置页面点击“立即备份”按钮,选择“包括数据库和文件”,然后等待完成。
备份完成后,进入阿里云OSS控制台,查看对应的Bucket中是否出现了备份文件。
备份文件验证与常见报错处理
验证备份是否成功,不能只看插件提示,必须去OSS控制台确认文件存在且大小合理。 通常数据库备份文件在几MB到几十MB之间,文件备份则取决于你网站的大小。
如果文件大小为0或不存在,说明上传失败。
常见报错及解决方法:
- “Error: Access Denied”:检查AccessKey是否具有OSS读写权限,或Bucket权限是否为私有但未授权。
- “cURL error 28: Connection timed out”:服务器无法连接OSS端点,检查服务器网络或安全组是否放行443端口。
- 备份文件过大导致超时:在UpdraftPlus设置中增加“分块上传”选项,或调大PHP最大执行时间。
另外,不要将备份文件保存在服务器本地太久,避免占用磁盘空间。
可以在插件中设置“保留本地备份”为0份,只保留远程备份。
让备份更可靠的几个细节
如果网站访问量较大,建议将备份时间设置在凌晨低峰期。
同时,定期检查OSS中的备份文件能否正常下载和解压,确保备份可用。
对于重要网站,可以同时配置两个远程存储位置,比如阿里云OSS和另一个云存储,实现双重保险。
完成以上步骤后,你的WordPress网站就会每天定时将文件和数据库备份到阿里云OSS,即使服务器出现故障,也能快速从OSS恢复数据。
记得每隔一段时间手动验证一次备份完整性,避免备份文件损坏而不自知。