logsmith / log-flume
Log Flume
Requires
- aws/aws-sdk-php: 3.24.2
README
这允许开发者通过Amazon S3在机器之间同步WordPress媒体库。
它也可以用于备份网站或在不同服务器之间移动网站
Log Flume如何与S3通信
设置将要求您将这些常量添加到您的wp-config.php文件中
- LOG_FLUME_REGION
- LOG_FLUME_ACCESS_KEY_ID
- LOG_FLUME_SECRET_ACCESS_KEY
您可以通过创建IAM用户来获取这些详细信息。以下是我们的指南,介绍了如何设置IAM亚马逊用户并获得所需的访问和密钥。
安装
1. 通过导航到您的项目并在终端中运行以下命令将WordPress插件添加到您的composer文件中
composer require logsmith/log-flume
2. 通过管理界面激活插件,或者只需运行
wp plugin activate log-flume
3. 将您的凭据添加到您的wp-config文件中。
并将以下常量添加到您的wp-config文件中
define('LOG_FLUME_REGION','eu-west-2'); //London
define('LOG_FLUME_ACCESS_KEY_ID','');
define('LOG_FLUME_SECRET_ACCESS_KEY','');
4. 然后,最后运行(您需要上面的常量)
wp logflume check_credentials
5. 如果检查成功,您就可以开始设置log flume了
wp logflume create_bucket <bucket_name>
bucket_name
通常是您正在工作的网站地址('website.local')
您还将被要求回答创建存储桶?[y/n]
- 如果这是全新设置,请输入'y'。选择'N'则不执行该操作。
6. 同步时间!
wp logflume sync
存储桶名称通常是您当前使用的网站地址
使用log-flume备份实时网站
Log-flume可以用于备份实时站点以及同步开发资源。
1. 安装和设置log-flume
在本地版本的网站上运行log-flume(使用上面的“安装”指南)。
2. 登录到实时环境
通过SSH连接到实时环境,导航到您的WordPress安装。
3. 检查本地凭据在实时环境中的工作情况
wp logflume check_credentials
运行以查找任何问题。
4. 为实时环境设置存储桶
始终将开发和实时环境分开。
wp logflume create_bucket <bucket_name>
使用实时URL作为存储桶名称创建一个新的存储桶。例如
wp logflume create_bucket atomicsmash.co.uk
5. 设置SQL文件的自动删除
根据您运行此命令的频率,SQL文件会迅速累积。您可以设置S3文件夹生命周期以自动删除超过X天数的文件。
wp logflume autodelete_sql <number_of_days>
我们通常保留备份30天
wp logflume autodelete_sql 30
6. 设置自动备份(cron作业)
要使备份命令定期运行,您需要设置cron作业。使用类似以下内容
/usr/local/bin/wp logflume backup_wordpress --path=/path/to/www.website.co.uk/
如果您在项目中使用composer,那么WordPress核心文件可能位于子文件夹中,请修改路径以反映这一点。如果WordPress位于"/wp/"中,则cron作业如下所示
/usr/local/bin/wp logflume backup_wordpress --path=/path/to/www.website.co.uk/wp
如果您使用forge,请简单地将其添加到服务器调度面板中
函数
logflume sync [--direction=]
此函数运行
sync
和数据库备份。
logflume backup_wordpress
此函数运行
sync
和数据库备份。
logflume create_bucket <bucket_name>
创建了处理S3上媒体所需的所需存储桶和存储桶设置。最好使用当前的主机名。
logflume select_bucket <bucket_name>
使用此命令更改log-flume当前同步到的存储桶。
logflume check_credentials
执行简单的S3功能以确保可以访问选定的存储桶
logflume autodelete_sql
设置S3生命周期,在经过一定天数后自动从SQL文件夹删除。
故障排除
你是否收到了类似以下的错误:PHP致命错误:未捕获错误:类 'Aws\S3\S3Client' 在 /path/to/file 中未找到
请确保您正在引入由composer生成的autoload.php。我们通常将其添加到wp-config文件的开头
require( dirname( __FILE__ ) . '/vendor/autoload.php' );