islandora / islandora-starter-site
Islandora网站的模板项目。
Requires
- php: ^7.4 || ^8
- composer/installers: ^1.9
- cweagans/composer-patches: ^1.7
- discoverygarden/dgi_image_discovery: ^1
- drupal/admin_toolbar: ^3.1
- drupal/advanced_search: ^2.0.0@beta
- drupal/better_exposed_filters: ^6.0
- drupal/citation_select: ^2.0@beta
- drupal/coi: ^4.0
- drupal/config_update: ^2.0@alpha
- drupal/context: ^5@RC
- drupal/controlled_access_terms: ^2
- drupal/core-composer-scaffold: ^10.1
- drupal/core-recommended: ^10.1
- drupal/facets: ^2
- drupal/field_group: ^3
- drupal/field_permissions: ^1
- drupal/field_report: ^2.1
- drupal/flysystem: ^2.2@alpha
- drupal/fpa: ^4.0
- drupal/hal: ^1.0||^2.0
- drupal/islandora: ^2.8.1
- drupal/islandora_mirador: ^2
- drupal/openseadragon: ^2
- drupal/pathauto: ^1.12
- drupal/pdf: ^1.1
- drupal/rest_oai_pmh: ^2.0@beta
- drupal/search_api_solr: ^4.2
- drupal/taxonomy_manager: ^2.0
- drupal/term_merge: ^2.0@beta
- drupal/twig_tweak: ^3.2
- drupal/views_data_export: ^1.2
- drupal/views_field_view: ^1.0@beta
- drush/drush: ^12
- islandora-rdm/islandora_fits: dev-8.x-1.x as 1.x-dev
- islandora/views_nested_details: ^1.0
- library/pdf.js: ^2.4
- mjordan/islandora_workbench_integration: dev-main
Requires (Dev)
- drupal/config_inspector: ^2.1
- drupal/devel: ^5.0
- drupal/restui: ^1.21
Conflicts
- drupal/core: <=8
- drupal/drupal: *
This package is auto-updated.
Last update: 2024-09-11 08:01:20 UTC
README
Islandora Starter Site
为Islandora网站提供的Drupal配置起点。
什么是起点网站?
起点网站是一个可定制的Drupal网站,展示了Islandora的功能。它可以作为您网站的模板,但一旦开始使用,您的网站(及其所有配置)将由您管理。就像Microsoft Word文档的模板一样,您在开始使用模板之后所做的更改不能且不会自动转移到您的副本(在这种情况下,您的Islandora网站)中。如果您需要此类服务,请查看我们的服务提供商。但是,如果您愿意,我们将努力记录和传达更改。
起点网站包含设置Drupal网站的说明,但一些功能需要外部服务的存在,如Fedora、Solr等(见下面的安装说明)。
起点网站现在使用类似语义的版本控制,但这只是为了与安装它的工具兼容。当起点网站需要其创建环境(Playbook/ISLE)的新功能时,它将更改主要版本。
快速安装
要启动一个完全功能性的Islandora起点网站以及支持它的(非Drupal)工具和服务,请尝试以下Islandora部署工具之一
- Islandora Playbook - 基于Ansible,可在本地与VirtualBox和Vagrant一起工作。
- 使用
starter
(默认)或starter_dev
选项
- 使用
- ISLE-DC - 基于 Docker
- 使用
make starter
或make starter_dev
选项
- 使用
- ISLE 网站模板 - 基于 Docker
- 默认的安装说明使用起点网站。
手动安装
起点网站中的配置文件假定有一整套外部服务。如果您不需要所有外部服务(如Fedora),则可以跳过它们,但您也需要调整Drupal配置。此类部分安装超出了本文件的范畴。
先决条件
- 已安装PHP和Composer
- 已安装并配置了数据库服务器
- 起点网站安装了MySQL/MariaDB/Percona(
mysql
)、PostgreSQL(pgsql
)和SQLite(sqlite
)的驱动程序。使用其他(贡献)驱动程序需要额外的安装/配置,且超出了本文件的范畴。
- 起点网站安装了MySQL/MariaDB/Percona(
- Fedora Commons (FCRepo)已安装
- Syn已安装并使用密钥进行了配置。
- 已安装Triplestore
- 已安装Cantaloupe
- 期望IIIF URL可解析,并接受完整的URL作为资源ID。如果URL不是
http://127.0.0.1:8080/cantaloupe/iiif/2
,则需要设置(见使用步骤5)。
- 期望IIIF URL可解析,并接受完整的URL作为资源ID。如果URL不是
- ActiveMQ/Alpaca/Crayfish安装
- 期望ActiveMQ在
tcp
URL上监听STOMP消息。如果不是默认的tcp://127.0.0.1:61613
,则需要设置(见使用步骤5) - 队列(及其基础(微)服务)配置得当
- 期望ActiveMQ在
- 兼容Drupal的Web服务器
- 已安装FITS Web Service和CrayFits
- 更多详细信息请参阅
islandora_fits
模块的README/文档
- 更多详细信息请参阅
- 安装了Solr服务器或可用,并已设置核心
- 有关Drupal的Search API Solr模块的更多详细信息。
- 如果不在
127.0.0.1:8983
,或者核心名称不是ISLANDORA
,则需要设置相关信息(参见使用步骤5)
使用方法
-
基于此存储库创建一个项目
composer create-project islandora/islandora-starter-site
这应该
- 获取代码和所有PHP依赖项,
- 搭建站点,并确保
default
站点的settings.php
指向我们包含的配置,以便进行下一步。
-
在站点的
settings.php
中配置Flysystem的fedora
方案$settings['flysystem'] = [ 'fedora' => [ 'driver' => 'fedora', 'config' => [ 'root' => 'http://127.0.0.1:8080/fcrepo/rest/', ], ], ];
将
http://127.0.0.1:8080
更改为指向您的Fedora安装。 -
安装站点
composer exec -- drush site:install --existing-config
在此步骤之后,您应该配置您的Web服务器以将
web/
目录作为其文档根。 -
向
fedoraadmin
角色添加(或创建)用户;例如,为默认的admin
用户分配角色composer exec -- drush user:role:add fedoraadmin admin
-
配置外部服务的位置。
使用任何方法(GUI、drush cset
、settings.php
中的配置覆盖...)更改以下Drupal配置为您的值
-
通过以下方式之一(或通过某些组合)使Syn/JWT密钥可供我们的配置使用
- 将私钥符号链接到
/opt/islandora/auth/private.key
;或者, - 将适当的定位设置为
key.key.islandora_rsa_key key_provider_settings.file_location
(使用步骤5中列出的方法或/admin/config/system/keys/manage/islandora_rsa_key
)
- 将私钥符号链接到
-
运行带有
islandora
标签的迁移,以填充一些分类,指定针对具有fedoraadmin
角色的用户--userid
composer exec -- drush migrate:import --userid=1 --tag=islandora
这将为您提供一个带有以下内容的起始Islandora站点
- 一个基本的节点包,用于表示存储库内容
- 一些媒体类型,用于在Fedora中存储内容
- RDF和JSON-LD映射,用于各种实体以支持在Fedora中的存储、Triplestore索引和客户端请求。
安装后清理
-
卸载您未使用的数据库驱动模块;例如,如果您使用
mysql
来使用兼容MySQL的数据库,则应明确卸载pgsql
(PostgreSQL)和sqlite
(SQLite)模块composer exec -- drush pm:uninstall pgsql sqlite
已知问题
安装期间的警告/错误
一些模块目前对hook_install()
调用时的系统状态有一些不良的期望,因此发出了一些消息
$ composer exec -- drush site:install --existing-config --db-url=mysql://user:***@localhost/db
You are about to:
* DROP all tables in your 'db' database.
Do you want to continue? (yes/no) [yes]:
>
[notice] Starting Drupal installation. This takes a while.
[notice] Performed install task: install_select_language
[notice] Performed install task: install_select_profile
[notice] Performed install task: install_load_profile
[notice] Performed install task: install_verify_requirements
[notice] Performed install task: install_settings_form
[notice] Performed install task: install_verify_database_ready
[notice] Performed install task: install_base_system
[notice] Performed install task: install_bootstrap_full
[error] The Flysystem driver is missing.
[warning] Could not find required jsonld.settings to add default RDF namespaces.
[notice] Performed install task: install_config_import_batch
[notice] Performed install task: install_config_download_translations
[notice] Performed install task: install_config_revert_install_changes
[notice] Performed install task: install_configure_form
[notice] Performed install task: install_finished
[success] Installation complete. User name: admin User password: ***
$
有两个“意外”的消息
[错误] Flysystem驱动程序丢失。
- 似乎来自
flysystem
模块的hook_install()
实现,其中它尝试确保所有定义的方案都处于可用的状态;然而,所有模块尚未启用(在特定情况下,islandora
实际上并未启用,因此fedora
驱动程序是未知的),因此导致发出此消息。当命令退出时,islandora
模块是启用的,因此此消息应该被忽略。
- 似乎来自
[警告] 找不到所需的jsonld.settings以添加默认RDF命名空间。
- 似乎来自islandora模块的
hook_install()
实现,其中它尝试修改jsonld模块的jsonld.settings
配置对象以添加一些命名空间;然而,由于使用--existing-config
安装模块时配置尚未安装,因此它未能找到要修改的目标配置。由于导出,jsonld.settings
已经包含修改(撰写时),因此此警告可以忽略。
- 似乎来自islandora模块的
总结:这两个消息似乎可以忽略。
补丁
如果需要补丁(外部或内部),可以使用composer-patches插件自动应用。Starter Site中包含的任何补丁都应在此部分中完全描述(包括何时应删除它们)。
- 目前没有。
持续项目维护
预计将使用Composer来管理Drupal及其扩展,包括Islandora模块系列。Drupal项目已经记录了该空间中的许多交互,所以我们只在这里列出并总结。
-
"安装"描述
- Composer的
create-project
命令,如上所述,用于使用此"入门站点"项目安装;以及 - 如上所述的
drush site:install
/drush si
命令,用于通过命令行安装Drupal。
- Composer的
-
"管理",描述
- Composer的
require
命令,用于向您的项目添加额外的依赖项 - 更新,链接到Drupal的核心和模块的附加文档
通常,使用Composer的
update
命令根据composer.json
中的规范更新扩展,并根据需要使用Composer的require
命令更改这些规范以跨越主要版本边界。 - Composer的
还建议监控和/或订阅Drupal的安全通告,以了解何时可能需要更新。
文档
有关此生态系统的更多文档可在Islandora文档网站上找到。
故障排除/问题
遇到问题或解决了问题?请查看Islandora Google Groups以获取解决方案。
开发
如果您想贡献,请通过参加我们每周的技术电话来参与。我们很高兴听到您的声音!
如果您想为项目贡献代码,您需要签署Islandora Foundation的贡献者许可协议或企业贡献者许可协议。有关更多信息,请参阅islandora-community wiki上的贡献者许可协议页面。
我们建议使用islandora-playbook开始。
通用入门站点开发流程
对于本入门站点的开发,我们预计将采用某种特定的流程,以避免其他功能和模块渗入基本配置。预期的流程应该是
-
使用入门站点配置环境
- 此时,可能需要用启动站点的代码库克隆来替换环境中的启动站点安装,以避免手动将更改复制到克隆中。
-
导入启动站点的配置
-
这应该会覆盖配置过程所做的任何配置,包括禁用任何不应一般启用的模块,并安装那些应该启用的模块。
-
这可以通过启动站点目录中的命令来完成,例如
composer exec -- drush config:import sync
-
-
执行所需更改,例如
- 使用
composer
管理依赖项- 如果在更新任何Drupal扩展后,应随后运行Drupal的更新过程,以防有更新钩子需要运行,这些钩子可能会更新配置。
- 在网站上执行配置
- 使用
-
导出网站的配置,以捕获任何更改的配置
composer exec -- drush config:export sync
-
将
config/sync
目录(及其内容)和composer.json
、composer.lock
文件复制到启动站点的git仓库克隆中,提交它们,推送到分支并创建一个pull request。- 如果环境中的启动站点安装被代码库克隆替换,您应该可以跳过复制步骤,只需提交您的更改,推送到分支并创建一个pull request到上游仓库。
定期,预计将在原始仓库上发布/铸造/标记版本;然而,重要的是要注意,计划不支持跨启动站点版本的自动化更新。话虽如此,我们计划包括变更日志,说明自上次发布以来引入的更改如何影响希望将更改/引入的功能纳入自己网站的用户。
开发模块
一些模块包含在我们的require-dev
部分中,但未安装到Drupal网站上,因为它们可能具有通用性,但尤其是在开发方面。包括:
config_inspector
:帮助识别定义的架构和活动配置之间的潜在问题。devel
:在开发期间用于杂项任务的块和标签restui
:核心rest
模块的配置辅助程序
这些模块可以通过GUI或CLI启用;然而,在执行任何类型的配置导出之前,它们应该被禁用,以避免其启用状态泄漏到配置中。