phptek / silverstripe-exodus
从任何网站到 Silverstripe 的完全自动化内容迁移。
Requires
- brittainmedia/phpcrawl: ^0.9
- phptek/phpquery: dev-master
- silverstripe/cms: ^4
- silverstripe/reports: ^4
- symbiote/silverstripe-queuedjobs: ^4
Requires (Dev)
- phpunit/phpunit: ^9
Replaces
- phptek/staticsiteconnector: *
- silverstripe/staticsiteconnector: *
This package is auto-updated.
Last update: 2024-09-18 22:22:01 UTC
README
简介
Exodus 是一个遵循 ETL 标准(提取 转换 载入)的内容迁移工具。它可以从几乎任何网站上获取内容,无论其底层 CMS 技术如何,并将其作为原生内容对象(SiteTree
、File
等)导入到 Silverstripe 实例中。
Exodus 会爬取源网站的 DOM 并将匹配的 URL 缓存到本地文件系统。然后通过去除文件扩展名、斜杠和特定实现字符串来规范化页面-URL,并运行站点抓取,将内容作为原生 Silverstripe 对象导入到您的站点树和资产层次结构中。
请查看文档索引。
工作原理
提取 相当于模块的“爬取”模式。给定一个 URL,该工具将爬取目标网站并将匹配的 URL 集合缓存在本地文件系统中。
转换 是对爬取模式中缓存的 URL 进行规范化的过程,这些 URL 是源系统(Drupal、WordPress 或 Plone)独有的。这是自动发生的,与在主“URL 处理”选择中做出的选择有关。这可能需要尝试和错误,直到爬取过程完成。
载入 相当于模块的“导入”模式,这是爬取设置调整的辛勤工作得到回报的地方,允许您将每个缓存的 URL 中的内容导入到您的站点树和资产存储中。
请查看文档索引。
迁移
请查看迁移文档。
要求
- PHP ^7||^8
安装
composer require --dev phptek/silverstripe-exodus
您需要设置 PHP 以允许长时间运行的进程。根据需要爬取的目标网站中的 URL 数量以及您的配置,您可能需要 20-30 分钟。因此,根据您的设置配置以下内容:
# Tell PHP itself to allow for long-running processes in php.ini
max_execution_time 72000
# Tell php-fpm to not stop reading after 20m in nginx.conf
fastcgi_read_timeout 72000;
# Tell php-fpm to increase the no. of available child process up from the default of 5 in www.conf
pm.max_children = 25
请参阅包含的迁移文档,该文档详细说明了如何配置工具以执行内容迁移。
请查看其余的文档。
历史
该模块最初于 2012 年由当时的 Silverstripe Ltd 首席执行官 Sam Minnee 编写,当时称为“静态站点连接器”模块。当时成功地在数十个场合用于导入公司当时正在构建的新 Silverstripe 项目的内 容,此后其他 Silverstripe 员工对其进行了改进。
大约在 2015-2016 年,Sam 将该模块存档,随后由 Russell Michell 重新拾起并改进。
2022 年,Russell 发现需要这个工具来处理即将到来的项目,并再次修改它以与 Silverstripe v4 兼容。
贡献者
按提交次数排序
此外,还要感谢 Marcus Nyholt 对外部内容模块的使用,Exodus 就是基于此模块开发的。该模块当前状态实际上包含了 nyeholt/silverstripe-external-content
包,并以子目录的形式集成,而不是使用 Composer。
...这样做更简单。
支持我
如果你喜欢你所看到的,请支持我!我接受比特币