meb / wn-backup-plugin
备份 Winter CMS 的文件和数据库
Requires
- php: >= 7.4 || >= 8.0
- league/flysystem-webdav: >=1.0
- spatie/flysystem-dropbox: >=1.0
- spatie/laravel-backup: >=5.0
- symfony/process: >=3.4
This package is auto-updated.
Last update: 2024-09-26 13:27:20 UTC
README
介绍
此插件允许您创建文件和数据库的备份。它使用惊人的 Laravel 包 spatie/laravel-backup。这是 OC Panakour Backup 插件的分支 https://github.com/panakour/oc-backup-plugin
要求
此备份包需要 PHP 7.1 或更高版本,带有 ZIP 模块 和 Laravel 5.5 或更高版本。与 Windows 服务器不兼容。
插件需要空闲磁盘空间来创建备份。请确保您有 至少 与您要备份的文件总大小一样多的空闲空间。
如果您想备份 MySQL 数据库,请确保您的系统已安装 mysqldump
。
如果您想备份 PostgreSQL 数据库,请确保您的系统已安装 pg_dump
。
如果您想备份 Mongo 数据库,请确保您的系统已安装 mongodump
。
功能
- 只需单击一下,您就可以
- 备份整个应用程序。
- 仅备份数据库。
- 仅备份文件。
- 目前支持本地和 Dropbox 存储驱动程序。
- 支持各种数据库驱动程序(MySQL、PostgreSQL、SQLite 和 Mongo)。
- 您可以通过 UI 轻松包含和排除一些文件。
- 支持 gzip 以减小数据库大小。
使用方法
- 要配置备份系统,从后端导航到
设置 > 系统 > 备份
。 - 要创建第一个备份,从后端导航到顶部主菜单中的备份部分。从那里,您可以点击按钮创建和下载备份。
存储
Dropbox 使用方法
您需要先在 Dropbox 获取授权令牌。可以在 应用控制台 为任何 Dropbox API 应用生成令牌。更多信息请参阅 Dropbox 开发者博客。
然后将以下数组添加到 config/filesystems.php
文件中,包括您的令牌和应用程序名称
'disks' => [ ... 'dropbox' => [ 'driver' => 'dropbox', 'app' => 'app-name', 'authorizationToken' => 'generated-access-token', ] ]
请确保您已从设置中选择 Dropbox
选项。
Webdav 使用方法
然后将以下数组添加到 config/filesystems.php
文件中,包括您的令牌和应用程序名称
'disks' => [ ... 'webdav' => [ 'driver' => 'webdav', 'baseUri' => 'YOUR_WEBDAV_DOMAIN', 'path_prefix' => '/remote.php/dav/files/USERNAME/', //for nextcloud 'path_alias' => '', 'userName' => 'USER', 'password' => 'PASSWORD', ], ]
请确保您已从设置中选择 Webdav
选项。
导出数据库
mysqldump
和 pg_dump
用于导出数据库。如果它们没有安装在默认位置,您可以在 Winter 自己的 database.php
配置文件中添加一个名为 dump.dump_binary_path
的键。请 仅填写二进制文件的路径。不要包含二进制文件本身的名称。
如果您的数据库导出需要很长时间,您可能会超过默认的超时时间 60 秒。您可以通过提供一个指定命令可以运行多长时间(以秒为单位)的 dump.timeout
配置键来设置更高的(或更低的)限制。
以下是一个 MySQL 的示例
//config/database.php 'connections' => [ 'mysql' => [ 'driver' => 'mysql' ..., 'dump' => [ 'dump_binary_path' => '/path/to/the/binary', // only the path, so without `mysqldump` or `pg_dump` 'use_single_transaction', 'timeout' => 60 * 5, // 5 minute timeout 'exclude_tables' => ['table1', 'table2'], 'add_extra_option' => '--optionname=optionvalue', ] ],