当前位置: 首页 > news >正文

【Webtrees 手册】第 8章 - 网站管理员指南


Webtrees 网站管理员手册/指南

< Webtrees 手册
跳转到导航跳转到搜索

Webtrees 图标

信息

手册部分仍在建设中

请耐心等待或随意贡献自己的力量:-)。

第 8 章 - 网站管理员指南
<-  章节概述

目录

  • 1系统架构
    • 1.1客户
    • 1.2服务器
    • 1.3后端服务器
    • 1.4通信网络
  • 2服务器类型
    • 2.1共享服务器
      • 2.1.1托管
        • 2.1.1.1选择托管服务提供商
        • 2.1.1.2专门提供 Webtrees 托管服务的供应商
        • 2.1.1.3一般托管服务提供商
    • 2.2本地安装的服务器
      • 2.2.1视窗
      • 2.2.2MacOS
      • 2.2.3Linux
      • 2.2.4Synology 网络驱动器
      • 2.2.5树莓派
    • 2.3虚拟服务器
  • 3安装 webtrees
    • 3.1安装要求
      • 3.1.1系统环境
      • 3.1.2PHP
      • 3.1.3数据库
      • 3.1.4Web 服务器
      • 3.1.5互联网连接
      • 3.1.6电子邮件
      • 3.1.7网站管理员工具
      • 3.1.8程序员的工具
    • 3.2首次安装 webtrees
  • 4初始设置
    • 4.1设置语言
    • 4.2检查服务器
    • 4.3配置数据库连接
    • 4.4设置管理员帐户
    • 4.5配置.ini.php
    • 4.6测试安装
      • 4.6.1通过导入 GEDCOM 文件进行测试
      • 4.6.2测试电子邮件功能
    • 4.7扩展模块的安装
  • 5升级
    • 5.1从 webtrees 升级
      • 5.1.1Webtrees 的版本
      • 5.1.2自动升级
      • 5.1.3手动升级
      • 5.1.4根据原版本升级
    • 5.2升级扩展模块
  • 6漂亮的 URL
    • 6.1NGINX 的示例配置
    • 6.2Apache 的示例配置
  • 7数据安全和数据保护
    • 7.1安全通信连接
    • 7.2日志文件监控
    • 7.3访问保护
      • 7.3.1文件权限
      • 7.3.2.htaccess
    • 7.4阻止不必要的网站访问
      • 7.4.1访客类别
      • 7.4.2robots.txt 适用于信誉良好的机器人
      • 7.4.3默认阻止机器人
      • 7.4.4封锁整个网络或组织
      • 7.4.5阻止 IP 地址范围
      • 7.4.6防止用户输入率过高
      • 7.4.7垃圾邮件防护
    • 7.5曲奇饼
    • 7.6第三方服务
    • 7.7跟踪和分析服务
    • 7.8隐私政策和版本说明
  • 8搜索引擎优化
    • 8.1站点地图.xml
  • 9在 Joomla 中嵌入 webtree
    • 9.1Joomla 中的操作
    • 9.2网络树中的操作
  • 10Web 应用程序
    • 10.1webmanifest.json
  • 11家谱数据和数据库的备份
    • 11.1家谱数据备份
    • 11.2webtrees 数据库的备份
    • 11.3重新安装 webtrees 文件
  • 12将网站树移至新服务器
    • 12.1旧服务器上的活动
    • 12.2新服务器上的活动
  • 十三扩展模块
  • 14个别参考文献
子页面目录
隐藏
  • 升级说明 20
  • 升级说明 21
  • 升级说明 22
  • 扩展模块
  • 扩展模块/GVExport
  • 扩展模块/GVExport/版本历史
  • 扩展模块/扩展系列
  • 扩展模块/印记
  • 扩展模块/客户特定的关系名称
  • 扩展模块/法律声明
  • 扩展模块/收集容器
  • 扩展模块/TAM 和 Lineage
  • 扩展模块/TAM 和 Lineage/Lineage
  • 扩展模块/TAM 和 Lineage/Lineage/姓氏过滤器
  • 扩展模块/TAM 和 Lineage/TAM
  • 扩展模块/标记服务管理器
  • 扩展模块/Treeview-Extended

系统架构

系统架构(客户端、服务器、后端)

webtrees应用程序的系统架构包括客户端、服务器和带有GitHub上的webtrees存档的后端。

客户

客户端是安装了任何当前浏览器(Firefox、Chrome、Edge、Safari 等)的用户设备。可能的终端设备包括笔记本电脑、平板电脑或智能手机。根据用户在webtrees中的角色,除了浏览器之外,可能还需要其他本地安装的应用程序。

访客、会员和版主只需要一个浏览器即可访问所有webtrees功能。会员和主持人需要电子邮件选项来进行初始注册。管理员可以从webtrees向用户发送电子邮件 。

管理员还需要一个可以接收电子邮件的程序。这样他就会被告知有新用户申请了账户。一旦后端服务器上有新版本的webtrees可用,也会向管理员发送一条消息。

网站管理员需要一个 FTP 程序(FTP 客户端),以便他可以向服务器上传和下载数据。他需要一个可以管理webtrees数据库的程序。进一步的详细说明请参阅下一节“网站管理员工具”。

服务器

webtrees服务器可以是物理服务器或虚拟服务器。物理服务器主要可以是托管服务提供商提供的专用服务器或共享服务器(请参阅下一节“选择托管服务提供商”),也可以是家里的计算机,例如 PC、Raspberry Pi 或网络驱动器(请参阅下一节“本地安装的服务器”)。Docker 容器可以用作虚拟服务器。一种特殊的安装形式是客户端和服务器安装在同一设备上,即本地。

服务器的各个组件包括

  • 数据库
  • FTP 服务器
  • 证书存储
  • 使用程序文件驱动
  • Web 服务器
  • PHP解释器
  • 电子邮件服务器

Nuvola 笔.svg

还描述:所有服务器组件的确切功能,如有必要,请参考“要求”下的部分;特别是它如何与 http 压缩一起工作、如何与解释 PHP 一起工作以及如何与紧凑的 JavaScript 一起工作;是否还缺少服务器组件“JavaScript 解释器”?

Nuvola 笔.svg

Nuvola 笔.svg

通过表单发送的消息怎么样?内部通知和/或电子邮件?

Nuvola 笔.svg

后端服务器

webtrees后端服务器的源代码可在GitHub上找到。webtrees的当前版本和正在开发的版本都位于那里。几乎所有扩展模块也可以在 GitHub 上找到。在由管理员发起的自动升级期间,webtrees会自动从后端服务器下载新的webtrees版本到webtrees服务器。

webtrees定期检查后端服务器以查看是否有更新的版本可用。为此,dev.webtrees.net/build/latest-version.txt从后端服务器加载文件。每当访问任何webtrees页面时都会触发此检查操作;但该检测在24小时内仅进行一次。如果有可用的升级,管理员将通过电子邮件收到通知。此外,用户界面中的各个位置都会向登录的管理员显示一条消息。

为了概览全球安装的webtrees实例,在检查新版本期间还会传输包含webtrees服务器最重要参数的信息。传输的信息是

  • Webtrees安装的唯一匿名标识符
  • 已安装webtrees版本
  • webtrees使用的PHP版本[1]
  • webtrees使用的数据库类型和版本。

所获得的统计信息发布在此webtrees 页面上。

通信网络

大多数情况下,客户端计算机通过 Internet 连接与webtrees服务器进行通信。这应该尽可能快并且加密(https)。

与后端服务器的连接始终通过互联网进行,并且始终是加密的。

Nuvola 笔.svg

在上述整个技术术语部分中,添加维基百科链接

Nuvola 笔.svg

服务器类型

大多数webtrees服务器位于托管服务提供商或云服务提供商的数据中心,可通过互联网访问。您还可以在家运行webtrees服务器(请参阅以下部分“本地安装的服务器”)。

托管服务提供商提供的服务差异很大,因此您应该仔细考虑哪些选择标准对您来说很重要。第一个标准是决定服务器的类型

  • 更便宜的报价是基于与其他客户共享物理服务器(请参阅下面的“共享服务器”部分)。您在这里只有有限的权限,并且无法完全访问服务器的操作系统和文件系统。
  • 如果您想独占使用一台服务器,专用服务器是一个选择,但相应地也更昂贵。但是,其性能会比与其他客户共享的服务器更好。
  • 还有您专用的虚拟服务器(请参阅以下部分“虚拟服务器”)。这样的服务器是在物理服务器上创建的虚拟机(VM); VM 与其他虚拟服务器一起使用物理服务器的资源。

共享服务器

下表列出的优惠均基于与其他客户共享的服务器,即根据上面列表中的第一点。

Webtrees只需要一个数据库,因此下面列出的所有提供商都满足此要求。所有这些提供商还提供通过互联网的加密访问。大多数提供商还提供许多其他应用程序(例如WordPress)供安装,但这与webtrees的上下文无关。

在定义服务器类型的标准时,与家族树的大小无关,而与同时支持的用户数量有关。如果同时使用webtrees的用户少于 5 人,则共享服务器通常就足够了,并且下面列出的所有优惠都适用。除了价格之外,最重要的标准当然是提供商的稳定运行以及发生故障时热线的良好可访问性。这里值得评估其他用户的参考和评论。出于数据保护的原因,只应选择在欧盟运营服务器并因此受欧盟法规约束的提供商。

托管
选择托管服务提供商

决定服务器类型后,您需要决定谁来运行该服务器。如果您不想自己在本地安装和运行服务器,您可以使用托管服务提供商。与该提供商签订相应的合同,通常还包括提供互联网域名。

专门提供 Webtrees 托管服务的供应商

目前有两家专门提供webtrees服务的托管服务提供商。他们提供专门针对webtrees对欧盟服务器的要求而定制的现成安装,并负责基本的操作安全。在欧盟的服务器上安装非常重要,因为它可以确保遵守欧洲数据保护法规。

对于那些想要将webtrees用作软件即服务但又不想处理设置和运行应用程序的人来说,webtrees托管包是理想的选择。您将收到一个完全安装和预配置的系统,只需要担心家谱数据。服务提供商会在后台处理其他所有事务。作为网站管理员,他负责技术、管理系统并确保网站树和必要的系统组件始终保持最新。这还包括持续备份以及可用扩展模块的安装和更新。

托管服务提供商 - 专注于网络树
提供者国家语言价格特殊功能
GenOnline德国131.40 欧元/年关于使用webtrees的个人建议
托管网站树爱尔兰英文99 英镑/年个人建议和客户特定调整作为额外
一般托管服务提供商

除了专门的托管服务提供商之外,市场上的许多服务器都适合 webtrees 服务器,因为webtrees的要求并不罕见。下表中列出了一小部分内容。

托管服务提供商 - 网站空间选择示例
提供者国家语言表现价格特殊功能
赫茨纳
> 5000人
22.80 欧元/年
58.80 欧元/年
1 个数据库,WordPress
10 个数据库,WordPress
阿尔法托管24.00 欧元/年10 个数据库
WordPress、Joomla!、Typo3、Drupal
多加多48.00 欧元/年10 个数据库
Joomla!、Typo3、Drupal
斯特拉托48.00 欧元/年2 个数据库
WordPress、Joomla!、Typo3、Drupal
1&1 的 ionos48.00 欧元/年5 个数据库
WordPress、Joomla!、Typo3、Drupal
ALL-INKL.COM50 GB,每台服务器 100 个客户
250 GB,每台服务器 50 个客户
 
59.40 欧元/年
119.40 欧元/年
 
5 个数据库
50 个数据库
WordPress、Joomla!、Typo3、Drupal
bplaced pro内存限制 128 MB
CPU 时间限制 30 秒
36.00 欧元/年16个数据库

本地安装的服务器

对于直接位于网站管理员处的本地服务器,Windows、MacOS 或 Linux 都是可能的操作系统。根据此,服务器运行需要不同的软件包,如下所述。

您还可以在 Synology 网络驱动器或 RaspberryPi 微型计算机上 运行webtrees 。

视窗

Nuvola 笔.svg

描述在本地 Windows 计算机上的安装

Nuvola 笔.svg

MacOS

Nuvola 笔.svg

描述在本地 MacOS 计算机上的安装

Nuvola 笔.svg

Linux

如果您想在自己的Linux机器上安装webtrees,则需要按照下面描述的步骤。

以下操作系统是可行的[2]

  • Debian [3]
  • 乌班图[4]
  • 树莓派操作系统[5]
  • openSUSE [6]

如果您的操作系统是 Ubuntu, GitHub 上的用户Tuetenk0pp提供了一个脚本,可以以交互方式指导您完成安装。其先决条件是新安装最新的 Ubuntu 系统。但是,该脚本存在一些缺点,用户miletrac在论坛帖子中描述了 这些缺点。

所需的基本步骤是

  • 安装Linux操作系统
  • 安装并设置完整的 LAMP 堆栈
    • Apache Web 服务器
    • 数据库(例如 MariaDB)
    • PHP [1](版本 8,可能增加最大上传大小和其他参数)
    • 防火墙
    • 提供 SSL 证书
  • 下载webtrees,解压,设置并配置文件权限(如有必要,激活PrettyURLs );请参阅“首次安装 webtrees ”部分
  • 创建并测试备份选项
Synology 网络驱动器

Synology的网络驱动器(NAS [7])使用基于 Linux 的操作系统DiskStation Manager (DSM)作为其操作系统。根据所用硬件的性能,可以使用webtrees。例如,可以进行基于Docker [8]的安装 。

Nuvola 笔.svg

更详细地描述在 Synology 网络驱动器上的安装

Nuvola 笔.svg

树莓派

推荐的Raspberry Pi操作系统[9]是基于 Debian 的 Raspberry Pi OS。 Raspberry Pi 的性能足以使用webtrees ,但也有一些限制。然而,同时访问的用户数量和家谱的大小是有限的。

Nuvola 笔.svg

更详细地描述 Raspberry Pi OS 下的安装

Nuvola 笔.svg

虚拟服务器

运行webtrees服务器的一种方法是使用虚拟服务器。这样的服务器在性能方面可以轻松扩展,当然这也会对相应的成本产生影响。这种解决方案的另一个优点是虚拟服务器可以或多或少轻松地从一台物理服务器移动至另一台物理服务器,甚至从一个提供商移动至另一个提供商。这使得可以创建非常稳定和安全的解决方案。

还有免费的虚拟服务器。博客文章中详细描述了如何基于 Oracle 云帐户设置免费服务器、安装 Docker 和安全 Web 应用程序网关 (SWAG) 以及如何通过 DuckDNS 设置域。

Nuvola 笔.svg

docker 和 SWAG 以及通过 DuckDNS 的域名简要描述一下

Nuvola 笔.svg

安装 webtrees

选择托管提供商或服务器后,必须在服务器上安装webtrees 。以下步骤是必需的

  • 创建安装的先决条件(检查系统环境和服务器访问、配置 PHP [1]、创建数据库、配置 Web 服务器和互联网连接)
  • 上传程序文件到服务器
  • 使用配置向导进行初始设置
  • 测试安装并上传GEDCOM测试数据
  • 安装扩展模块

除了自己安装webtrees之外,如果目标主机支持,您也可以使用现成的安装服务或预先构建的容器解决方案(例如 Docker、Installatron、OpenSuse、Puppet、Softaculous、Yunohost)。原始 webtrees 文档中还有附加注释。对于某些托管服务提供商和服务器类型(Bluehost、Cloudflare、Microsoft/IIS、OVH),还有附加说明。否则,以下部分将以示例的形式显示所有安装步骤。由于每个服务器和安装环境可能有所不同,因此您的安装也会有所不同。

安装要求

在安装webtrees之前,必须检查或准备系统环境。大多数托管计划已经具备了webtrees所需的一切。如果您自行设置服务器,则必须安装和配置下面描述的系统组件。特别是,您必须自己长期负责必要的系统安全

系统环境

该网站至少应该可以通过 FTP 访问[10]实现数据传输。更好的方法是通过 SSH [11]或 RDP [12]进行远程维护访问,因为这提供了更多的选项(例如,设置 cron 作业[13]或调整文件权限)。

webtrees应用程序需要大约 120 MB 的存储空间。[14]此外,媒体和 GEDCOM 文件以及扩展模块、缓存数据和升级文件的存储空间也有单独的空间要求。

对服务器性能的进一步要求很大程度上取决于您自己的意愿和在网站上花钱的意愿。与要求相关的是同时用户的数量、多媒体文件的数量和大小以及要管理的数据记录量。检查服务器部分给出了 PHP 脚本的内存要求和保证执行时间的概念。

PHP

当前版本的webtrees必须安装PHP [1] ,其版本为以下之一:8.3 或 8.4。根据 Web 服务器上安装的 PHP 版本,可以使用不同版本的Webtree (有关Webtree版本名称的更多信息,请参阅以下“ Webtree 的版本”部分)。下表显示了 PHP 和webtrees版本之间的依赖关系。

webtrees 支持的 PHP 版本
webtrees 分支地位最新版本PHP 5.3-5.6PHP 7.0-7.3PHP 7.4PHP 8.0-8.2PHP 8.3-8.5
2.2全力支持2.2.1
2.1仅限安全更新和严重漏洞修复2.1.22
2.0不再支持2.0.26
1.7不再支持20年1月7日
1.4不再支持1.4.6

webtrees需要以下 PHP 扩展库[15]

  • 扩展类型
  • 扩展卷曲
  • (ext-exif)
  • 扩展文件信息
  • 扩展 gd
  • 扩展图标转换
  • 外部国际
  • 扩展 JSON
  • 扩展 mbstring
  • 扩展PCR
  • ext-pdo(以及所用数据库的驱动程序 - mysql/postgres/etc.)
  • 会外会议
  • (ext-simplexml)
  • 扩展 XML
  • (扩展名-zip)

然而,情况并不完全简单,因为对于一些所需的扩展存在替代解决方案[16]。例如,webtrees使用“php-mbstring”中的函数,但这些函数也通过“symfony/polyfill-mbstring”包含在内。因此, webtrees在没有 PHP 扩展的情况下也可以运行,尽管速度稍慢一些。

“php-calendar” 也是同样的道理,可以用“fisharebest/ext-calendar” 替换。如果缺少实际的库,可能还有其他以类似方式工作的功能,但功能可能有限。

当前安装了哪些 PHP 扩展可以通过管理菜单中的 菜单项“网站/服务器信息”显示。

水晶错误.png

不应安装 php-psr 扩展,因为它可能会导致 webtrees 出现错误。[17]

水晶错误.png

数据库

在其最新版本中,webtrees使用Laravel 数据库组件,因此支持以下常见的数据库管理系统 (DBMS) [18] [19] : [20]

  • MySQL [21] - 版本 5.7 或更高版本
  • MariaDB [22] - 版本 10.3 或更高版本
  • SQLite [23] - 版本 3.8.8 或更高版本
  • Microsoft SQL Server [24] - 2017 或更高版本
  • PostgreSQL [25] - 版本 10.0 或更高版本

根据安装的webtrees 版本分支,必须安装合适的数据库版本,可在下表中找到(有关webtrees中版本名称的更多信息,请参阅以下“ webtrees 版本”部分)。

webtrees 支持的数据库版本
webtrees 分支地位最新版本MySQLMariaDBSQLiteSQL 服务器PostgreSQL
2.2全力支持2.2.1✅ 5.7+✅ 10.3+✅ 3.8.8+✅ 2017年及以后✅ 10.0+
2.1仅限安全更新和严重漏洞修复2.1.22✅ 5.7+✅ 10.2+✅ 3.8.8+✅ 2017年及以后✅ 9.6+
2.0不再支持2.0.26✅ 5.6+✅ 10.1+
1.7不再支持20年1月7日✅ 5.5+✅ 5.5+
1.4不再支持1.4.6✅ 5.5+✅ 5.5+

建议生产服务器使用 MySQL/MariaDB。webtrees使用 MySQL 的排序功能来正确搜索和排序不同语言的名称。
PostgreSQL 和 SQL Server 基本上未经测试,但应该可以工作。 SQLite 适用于小型网站,但对于许多并发用户来说功能不够强大。

设置数据库时,可自由选择的表名前缀(默认值为wt_)允许您在一个数据库中存储多个webtrees应用程序而不会发生冲突。仅当托管包中没有包含足够的数据库时才应这样做。原则上,每个应用程序应该使用单独的数据库,以简化操作[26] 。出于安全原因,对不同的应用程序使用不同的数据库用户也是有意义的。

水晶错误.png

目前,webtrees 仅支持数据库中的 UTF8_MB3 字符编码,不支持 UTF8_MB4。例如,这使得保存包含表情符号的文本或其他数据字段变得不可能。[27]

水晶错误.png

Web 服务器

Nuvola 笔.svg

描述:哪些 Web 服务器适合(Apache、Microsoft IIS、...)?

Nuvola 笔.svg

互联网连接

互联网域名要么已经是与托管服务提供商签订的合同的一部分,要么必须从互联网域名提供商处单独租用。下面以该域为例musterfamilie.de

对webtrees的访问应该始终加密,即应该使用https 协议。不建议使用不安全的 http 连接。

有两种可能的配置,可以通过浏览器在互联网上访问 Web 树

  • webtrees直接集成到主页:https://musterfamilie.de
  • 子域中的webtrees(例如“ahnen”)指向主页: https://ahnen.musterfamilie.de

如果要在域中安装其他应用程序(例如 Wordpress),子域选项特别有用。并非每个主页租赁都包含允许自由选择子域名的选项。如果您选择带有子域的选项,则可以将 webtrees 安装在 Web 服务器主目录的子文件夹中,例如在文件夹“ /webtrees”中,并将该子文件夹分配给服务器域管理中的子域。

但即使您不想或不能使用子域名,您也应该将 webtrees 安装在 Web 服务器主目录的单独子文件夹中,例如在“ /webtrees”文件夹中。这样将来就有可能操作和处理该域中的其他应用程序。浏览器中访问webtrees 的地址如下所示

  • 集成在主页子文件夹中的webtrees :https://musterfamilie.de/webtrees

互联网连接应提供高数据速率并设计为故障安全连接。如果您使用托管计划,您就不必担心这个问题。如果您已经在本地服务器上安装了webtrees并希望可以从 Internet 访问它,则需要获取动态 Internet 地址、进行设置,并在路由器中配置到 Web 服务器的端口转发。

Nuvola 笔.svg

仍需描述:安装 https 证书(用于域或子域)

Nuvola 笔.svg

电子邮件

要使用webtrees的可选电子邮件功能,您必须拥有一个电子邮件帐户。该配置在“管理员说明”一章中的“电子邮件发送”部分中描述。

网站管理员工具

除了服务器端的要求之外,作为网站管理员您还需要本地程序。

Nuvola 笔.svg

描述:浏览器、FTP 程序、数据库管理程序、电子邮件、...

Nuvola 笔.svg

程序员的工具

除了网站管理员需要的工具之外,扩展模块程序员还应该安装其他程序。

Nuvola 笔.svg

简单描述一下PhpStorm等编程工具。

Nuvola 笔.svg

首次安装 webtrees

从webtrees GitHub 服务器下载当前版本的 ZIP 存档后(请参阅github.com/fisharebest/webtrees/releases ),必须将文件解压并放置在 Web 服务器上的目标文件夹中。这种情况如何发生取决于具体情况。如果您自己的工作计算机上有本地网络服务器,则可以直接解压并保存文件。对于托管服务器,这也可以通过 SSH 或 RDP 实现,或者可能必须通过在工作站上临时解压并通过 FTP 上传到服务器的中间步骤来完成。此步骤至少应检查设置的文件权限,以便 Web 服务器可以读取和处理文件。

然后按照下一节的描述进行初始设置。

水晶错误.png

在服务器上存储程序文件和数据时,不得使用“符号链接” [28],因为自 2.0 版以来不再支持这些链接。[29]

水晶错误.png

初始设置

webtrees应用程序数据复制到 Web 服务器后,必须在 Web 浏览器中访问新站点以完成初始设置。这应该立即发生,以便在此期间没有未经授权的人员造成损害。

如果执行时没有找到配置文件data/config.ini.php,则会自动显示安装向导。配置文件将在过程结束时自动创建,以便将来启动webtrees时不再出现安装向导 。

设置语言

安装向导(第 1 页)- 语言选择

第一步是选择对话所使用的语言。

检查服务器

安装向导(第 2 页)- 检查服务器性能

接下来是服务器性能测试[30]:内存和处理器时间要求取决于您的家谱中的人数和所使用的网络托管的功能。该页面显示了典型要求的简短列表:

  • 小型家谱(500 人):16-32 MB 主内存,10-20 秒处理器时间
  • 中等规模的家谱(5000 人):32-64 MB 主内存,20-40 秒处理器时间
  • 大型家谱(50,000 人):64-128 MB 主内存,40-80 秒处理器时间

配置数据库连接

安装向导(第 3 页)- DBMS 选择

大多数安装可能使用MySQL [21] / MariaDB [22] (请参阅上面的“数据库”部分)。

  • 安装向导(第 4 页)- 配置数据库连接
  • MySQL/MariaDB/Percona

  •  
  • SQLite

  •  
  • PostgreSQL [25]

  •  
  • 微软 SQL 服务器[24]

根据 DBMS 的选择,必须为数据库连接指定不同的参数

  • 服务器名称(在很多情况下是可能的localhost,因为数据库服务器通常与 Web 服务器在同一主机上运行)
  • 端口号(默认值:MySQL=3306 / PostgreSQL=5432 / MS SQL=1433)
  • 数据库用户和密码
  • 如果有必要,表前缀(如果在数据库中为不同的应用程序创建表)

在 SQLite [23]中,信息仅限于文件存储路径和表前缀。

设置管理员帐户

安装向导(第 5 页)- 管理员帐户

在安装结束时,系统会要求您提供创建管理员帐户的信息。然后,您将被重定向到表单以创建您的第一棵家谱。

配置.ini.php

webtrees data/config.ini.php配置文件在初始设置期间自动创建。它看起来是这样的:

<?php 返回;  ?>请勿删除此行
dbtype="mysql" 
dbhost="localhost" 
dbport="3306" 
dbuser="webtrees" 
dbpass="密码" 
dbname="webtrees" 
tblpfx="wt_" 
base_url="https://musterfamilie.de/webtrees" 
rewrite_urls="0"

它实际上是一个 INI 文件[31],其中包含包裹在 PHP [1]文件中的键值对。对于额外的数据保护 - 除了目录保护之外- 第一行很重要,因为它可以防止在浏览器中输出。您还可以在“漂亮的 URL”部分找到 更多详细信息。

信息
特别是在 Windows 系统上创建或随后修改文件时,务必确保以正确的编码 UTF-8 [32](无字节顺序标记/BOM)保存和上传文件。否则可能会出现错误。[33]


有关阻止整个网络或组织的 选项,请参阅下面同名的部分。

测试安装

初始安装完成后,应进行首次测试以检查网站是否正常运行。

Nuvola 笔.svg

再次描述一下:最好的测试方法是什么?

Nuvola 笔.svg

通过导入 GEDCOM 文件进行测试
测试电子邮件功能

扩展模块的安装

测试成功后,现在可以安装扩展模块(请参阅“扩展模块”部分)。这应该逐步进行,以便在出现问题时可以更容易地识别导致问题的扩展模块。

/modules_v4作为网站管理员,您可以通过重命名安装在服务器文件夹中的扩展模块来轻松停用它们。为此,您必须添加“。”到文件夹名称。 (句点),例如在文件夹名称后附加“.disable”。例如,将文件夹重命名jc-theme-justlightjc-theme-justlight.disable。此类文件夹对于webtrees来说是不可见的。通过稍后删除附加的名称组件,扩展模块将再次对webtrees可见。因此,此功能比管理员在“模块”菜单中激活或停用扩展模块更深入,并且如果怀疑扩展模块导致错误,则始终建议使用此功能。

升级

更新网络树既快捷又简单。如果webtrees的核心需要更新到新版本,有两种不同的方法可以做到:自动方法和手动方法。仅可通过手动程序来更新扩展模块。

从 webtrees 升级

参考新版本

新版本的可用性将在通知行中向管理员显示。强烈建议在webtrees有新版本可用时立即更新安装。即使是小升级通常也包含大量的错误修复,以及对用户界面或程序扩展的改进。发现并修复的安全漏洞总是会导致新版本的出现,因此应尽快安装新版本。如果您不定期创建备份,则应始终在更新之前创建 备份。

Webtrees 的版本

webtrees 的版本号格式为 xyz,例如 2.2.1,遵循以下方案

  • 第一个数字“x”表示区分不兼容版本的主版本。

版本 1 中的webtrees数据库结构和模块的内部接口与版本 2 不匹配。因此, webtrees 1的扩展模块不能与版本 2 一起使用,反之亦然。更改主版本时只能手动进行升级。对此有特殊说明,并且必须为升级做好充分的准备。

  • 第二个数字“y”表示新版本,它带来了根本性的新功能和改变的内部接口。

扩展模块可能兼容,但不太可能。在安装更新之前,您应该检查所有正在使用的扩展模块是否有兼容的版本。例如,从 2.0 版到 2.1 版的变化影响了许多内部接口,以至于大多数扩展模块都必须进行调整;即使从 2.1 切换到 2.2 也至少有一个重大变化,这导致几乎所有扩展模块都发布了新版本。当更改webtrees版本时,也可能会支持其他版本的 PHP,因此网站管理员可以或必须同时更改 PHP 版本。

  • 第三个数字“z”表示颠覆,它修复了发现的任何错误或进行了微小的调整。

通常,当更改 subversion 时,大多数扩展模块不会受到这些更改的影响,因此可以继续使用。

“程序概述”一章提供了迄今为止可用的所有版本的webtrees的概述。

自动升级

更新进程日志

webtrees具有自动更新的能力。Webtrees至少每 24 小时检查一次更新版本。如果有可用的升级,当您以管理员身份登录时,将出现带有链接的通知行。通过点击链接,管理员可以使用升级向导进行自动更新。注释行还指示升级向导上次运行的时间。如果需要,您可以点击链接立即检查是否有新版本可用。

自动升级取决于服务器上的权限和资源。使用的 PHP 脚本需要权限

  • 通过安全通信将文件从webtrees GitHub 服务器复制到webtrees服务器。
  • 覆盖服务器上的文件。如果 Web 服务器以匿名用户身份运行脚本,则它将无权更新文件。因此如果要求您将文件夹权限./data更改为777,您将无法使用自动升级;在这种情况下,您必须执行手动升级或创建自动升级的条件。

服务器必须足够强大才能完成升级,而不会超出 CPU 和内存限制。服务器必须有大约 130 MB 的可用空间来存储和解压新版本。升级通常需要 15 到 60 秒。如果五分钟后仍无响应,则可能已达到 CPU 时间限制,升级失败。

信息
如果自动升级由于任何原因失败,您作为网站管理员应该首先尝试解决根本问题,或者执行手动更新。在这种情况下,./data/tmp/upgrade应手动删除服务器上的目录。

Nuvola 笔.svg

描述网站管理员需要做什么来确保他的服务器具备所需的功能

Nuvola 笔.svg

自动升级过程遵循以下步骤

安装扩展模块的警告
  1. 如果安装了Vesta 扩展模块,可能会出现警告,提示这些扩展模块可能与新版本的webtrees不兼容(见下图)。因此,如果您想先检查兼容性,则应该中止该过程。否则,升级后 Vesta 模块将自动停用。其他扩展模块不使用此类通知功能。查看webtrees论坛和已安装的扩展模块的 GitHub 页面总是有帮助的。webtrees测试服务器上的升级可以保证已安装的扩展模块与新的webtrees版本兼容;只有这样,才应该在生产系统中实施升级。
  2. 然后./data/tmp/upgrade创建一个目录,将新文件临时加载到其中。
  3. 现在我们检查家谱中是否有任何尚未得到版主批准的数据更改(请参阅“版主批准更改”部分)。但是,如果此类更改仍然存在,升级过程将不会中止;仅会出现一条警告信息。
  4. 所有家谱都会自动导出,即为目录中的每个家谱创建./data一个当前 GEDCOM 文件(文件名包含导出日期)。
  5. 新的webtrees版本以 zip 文件的形式从webtrees GitHub 服务器复制到步骤 2 中创建的目录中。
  6. 目录./app./resources和中./vendor不再需要的文件将被删除。
  7. 将 zip 文件解压到临时目录,然后将解压的文件复制到目标目录。
  8. 最后,管理菜单打开。管理员可以在这里检查新版本是否正确显示。
手动升级

在手动升级[34] 期间,网站管理员将新发布的webtrees版本下载到本地计算机并在那里解压该版本。如果安装了扩展模块,您应该检查它们是否与新版本的webtrees兼容。这些模块可能还可以升级。在进行重大工作之前,最好先进行备份。

随着新文件的上传,网站访问者会遇到新旧文件的混合。这会导致不可预测的行为或错误。为了防止这种情况,必须/data/offline.txt在进一步工作之前创建该文件。只要此文件存在,网站访问者就会看到一条消息,例如“网站处于维护模式。请几分钟后重试”。如果offline.txt文件为空,则会显示此默认消息;或者,您可以在此文件中写入一条特殊消息,以便访问者看到该消息(因此,如果需要,该消息应该以多种语言存储)。即使管理员在控制面板中为数据文件夹选择了不同的目录,此文件的存储位置始终在该目录中/data

接下来,您应该删除目录/app/resources/vendor/public删除旧文件。如果您/public保存了自己的文件,例如故事或 HTML 块中使用的图像文件,当然不能删除它们。 除可能位于该处的文件外,webtrees根目录中的单个文件也可以.htaccess被删除。/data不能删除 该目录,因为配置文件位于那里。

然后使用FTP 程序将所有解压的文件夹和文件复制到Web 服务器上的webtrees目录中。将文件复制到服务器后,必须/data/offline.txt删除或重命名该文件。

当从一个 Subversion 切换到另一个 Subversion 时,通常可以简单地覆盖服务器上文件的内容,这意味着不一定需要事先删除。当切换到新版本甚至主要版本时,建议您首先按照上述方法删除服务器上webtrees目录中的文件,以便不再需要的旧文件版本消失。webtrees.htaccess根目录中的文件,子目录中的文件。并且,如果适用,必须始终保留子目录中您自己的文件。大多数情况下,升级到新的 subversion 时(可能在升级这些模块之后)仍然可以使用目录中的扩展模块。当切换到新版本时,所有扩展模块可能需要事先由各自的开发人员进行根本性的调整;例如,当从webtrees版本 2.0 切换到 2.1 时,以及从 2.1 切换到 2.2 时,这是必要的。 /data/public/modules_v4

信息
如果升级还需要数据库升级,则这些升级将在用户下次访问网站时自动执行。因此,第一页可能需要更长时间才能出现。

根据原版本升级

如果您目前正在使用下面列出的旧版本的webtrees之一,则升级到较新版本时还需要考虑其他事项。由于在版本变更期间需要注意的信息有时相当广泛,超出了本节的范围,因此部分信息已移至子页面

  • 升级到 2.2 版本
  • 升级到 2.1 版本
  • 升级到 2.0 版本

或参考原文英文页面。下面您将看到原始版本的列表,其中包含有关从一个版本切换到较新版本时需要考虑的信息。

  • 2.1.8 和 2.1.9:这些版本的自动升级代码中包含一个错误。自动升级似乎成功,但没有安装任何文件。因此,这些版本在 GitHub 上很快被替换,但一些用户已经安装了它们。要再次使用自动升级向导,必须替换文件:app/Http/RequestHandlers/UpgradeWizardStep.php。该文件的更新版本可以在此处下载。
  • 截至 2.0.26:更新至 2.1 版本时,部分数据字段将发生变化,以适应 GEDCOM 标准 7.0
  • 2.0.8:此版本的自动升级代码包含一个错误,因此该版本在 GitHub 上被快速替换,但一些用户已经安装了它。要再次使用自动升级向导,必须编辑两个文件
    • 首先,编辑/app/Factories/FilesystemFactory.php并将第 40 行从 更改/../../../../…。这修复了错误。
    • 其次,编辑/app/Webtrees.php并将第 101 行从“2.0.8”更改为“2.0.7”。这将重新激活自动升级。
  • 1.7.10 – 1.7.20:在手动升级到版本 2 之前,需要对设置、服务器配置进行各种更改,可能还需要对家谱数据进行调整。因此,请务必在升级之前阅读这些说明。
  • 1.4.0 – 1.7.9:您必须先升级到版本 1.7.20,然后才能切换到版本 2。
  • 1.0.0 – 1.3.2:升级前,必须先停用“媒体防火墙”(请参阅​​英文说明);然后必须手动升级到版本 1.7.20。
  • phpGedView:webtrees 1.7.20 包含一个针对前身程序 phpGedView 的特殊迁移助手。因此,您应该将此版本作为新实例与 phpGedView 一起安装,然后使用迁移向导。请注意,您不需要安装可运行的 phpGedView。您只需要数据库和“索引”文件夹。欲了解更多信息,请参阅英文文档。
信息

这里可能需要的任何旧版本的 webtrees 都可以在webtrees 下载概览页面上找到。

升级扩展模块

如果某个扩展模块有新版本可用,管理员在访问管理页面时会收到相应的消息。

Nuvola 笔.svg

还描述:
如何找出哪个扩展模块生成了该消息以及在哪里可以找到更新的版本

Nuvola 笔.svg

然后,作为网站管理员,您将扩展模块的新版本下载到本地计算机并解压其内容。您可能需要根据此模块的说明重命名找到的文件夹名称,例如,删除任何附加的版本号。然后,使用 FTP 程序将文件夹上传到 webtrees 安装的 modules_v4 目录并覆盖那里的内容(您也可以事先删除服务器上包含扩展模块的旧文件夹)。

最后,必须在浏览器中重新加载(即刷新)带有 Web 树的窗口,以便可以看到更改。

警告
为了在生产系统中使用,请始终仅下载扩展模块的已发布版本,而不要下载开发状态的中间版本!

漂亮的 URL

互联网地址(例如https://musterfamilie.de)由子页面的附加组件补充。对于webtrees,这些地址可能有两种变体。就其功能而言,它们是相同的。 URL 变体为[35]

  • 默认网址:
    https://musterfamilie.de/webtrees/index.php?route=/tree/demo
  • 漂亮的 URL [36]:
    https://musterfamilie.de/webtrees/tree/demo

第二种变体的优点在于,它不允许得出有关网站背后技术的任何结论(使用第一种变体,您可以立即看到使用了 PHP)。因此,出于安全原因,第二种选择是更好的选择。而且这个版本也更加方便人们阅读。要启用 Pretty URL,你需要做两件事

  1. 您需要配置 Web 服务器以接受“漂亮的 URL”并将其转发到webtrees。每个 Web 服务器 (Apache [37]、NGINX [38]、IIS [39]等)的具体配置都不同。
    基本配置如下
    • 静态文件/public存储在。这些可以使用长过期标头直接传送。
    • 动态页面index.php由...生成。所有非静态 URL 都应/index.php映射到 。
    • 其他文件和文件夹是私有的,不应访问,例如例如。/app,,,,,。/data/modules_v4​​/resources/vendor
  2. 您需要告诉webtrees生成漂亮的 URL。为此,必须在文件中data/config.ini.php添加或更改两行:
base_url = “https://musterfamilie.de/webtrees” 
rewrite_urls = “1”

启用 Pretty URL 后,webtrees将继续识别标准 URL。所有现有的书签和搜索引擎参考将继续有效。

NGINX 的示例配置

以下是安装 在子文件夹中的webtrees的 NGINX 配置示例。/webtrees/

# 静态文件的 URL 中有版本,并且可以无限期缓存。
位置 /webtrees/public  { 365 天后过期访问日志关闭;}# GIT 配置文件可以包含凭证或其他敏感数据。
位置 /webtrees/.git  {全部拒绝 ;}# 用户数据默认存储在这里。
位置 /webtrees/data  {全部拒绝 ;}# 这里没有什么敏感内容,但没有必要发布它。
位置 /webtrees/app  {全部拒绝 ;}位置/webtrees/modules {全部拒绝;}位置/webtrees/resources {全部拒绝;}位置/webtrees/vendor {全部拒绝;}# 将所有其他请求重写到 webtrees 前端控制器上。
位置 /webtrees/  {重写 ^  /webtrees/index.php 最后;
}# webtrees 从这个脚本运行。
位置 =  /webtrees/index.php  {包括 fastcgi.conf ; fastcgi_pass  unix:/run/php/php7.3-fpm.sock ;
}

Apache 的示例配置

服务器是否支持.htaccess文件?要测试这一点,请尝试在浏览器中查看webtreeshttps://musterfamilie.de/data/config.ini.php配置文件(例如)。如果.htaccess文件受支持,您将收到错误“403 / Access-denied” [40]。如果没有,您将看到仅包含分号的页面。

将以下.htaccess文件保存在根文件夹中/webtrees

### .htaccess 文件用于 webtrees<IfModule  mod_rewrite.c > RewriteEngine RewriteBase  /webtrees/ 上# GIT 配置文件可以包含凭证或其他敏感数据。重写规则\.git - [F]# 用户数据默认存储在这里。重写规则^data(/|$) - [F]# 这里没有什么敏感内容,但没有必要发布它。RewriteRule ^app(/|$) - [F]RewriteRule ^modules - [F]RewriteRule ^resources(/|$) - [F]RewriteRule ^vendor(/|$) - [F]RewriteCond  %{REQUEST_FILENAME} !-dRewriteCond  %{REQUEST_FILENAME} !-fRewriteRule ^ index.php [L]</IfModule>

更改条目以匹配webtreesRewriteBase URL的路径部分;如果webtrees安装在子域中,例如,则此条目为。 https://webtrees.musterfamilie.deRewriteBase /

数据安全和数据保护

安全通信连接

https ...

日志文件监控

访问保护

文件权限
.htaccess

.htaccess[41] (英文超文本访问)是 Web 服务器(如 Apache [42] )上的配置文件。在这个文件中可以设置目录相关的规则。

如果您使用的是 Apache Web 服务器,则可以使用文本编辑器创建一个文件并将其复制到webtrees.htaccess的根目录。本章的 “漂亮的 URL ”部分描述了一个允许漂亮 URL 的示例。

例如,您可以使用.htaccess文件中的设置来保护目录或单个文件免遭使用 HTTP 身份验证的未经授权的访问。还可以定义错误页面(例如“404”页面[43])或服务器内的重定向,而无需重新启动Web服务器;对文件的更改.htaccess会立即生效,因为该文件会在每次向 Web 服务器发出请求时进行评估。规格为 。htaccess适用于存储文件的目录及其所有子目录;但是,这些设置可以在子目录中被覆盖。

例如,为了限制对媒体文件以及webtrees文件夹中外部文件的访问,您可以存储包含以下内容的文件: /data.ged.htaccess

命令允许,
拒绝全部拒绝

第一行指定首先处理所有“允许”规则,然后处理所有“拒绝”规则[44]。因此,拒绝访问是标准。第二行阻止所有外部计算机的访问[45]。.htaccess文件夹中的这个文件/data是交付时 webtrees 安装中包含的唯一文件。

.htaccess要测试文件中的转发规则,您可以htaccess.madewithlove.com使用该网站。

阻止不必要的网站访问

为了阻止对webtrees网站的不必要的访问, webtrees中有一些默认激活的功能。如果有必要,这些仍然可以进行调整。访问尝试记录在webtrees日志文件中,并可在那里进行分析。

访客类别

您的网站访问者通常可分为好访问者和坏访问者。

好的访客包括

  • 人们
  • 帮助人们找到您的网站的搜索引擎;例如 Google、Bing、DuckDuckGo 等。
  • 网站可用性监控工具、网站质量测试程序等。

不良访客包括

  • 机器人(网络爬虫)收集有关您的网站的数据并出售给他人。例如,广告商、发出停止和终止信函的律师、搜索引擎优化器。
  • 在您的网站上寻找漏洞的机器人。
  • 编写不佳的机器人会给服务器带来沉重的负担,从而降低优质访客的访问速度。

现在的目标是有效地阻止不良用户访问系统,而不阻止好用户。

robots.txt 适用于信誉良好的机器人

根据机器人排除标准协议[46],当机器人找到一个网页时,它首先读取robots.txt。您可以在那里指定网络爬虫是否以及如何访问该网站。这使得网站管理员有机会阻止(某些)搜索引擎搜索网站的选定区域。该协议仅供参考,并依赖于机器人的合作。这robots.txt不是文件系统中的文件,正如人们可能轻易假设的那样,而是在调用 URL 时动态创建的。

Nuvola 笔.svg

描述 robots.txt 如何工作以及必要时如何由 webtrees 自动生成它。

Nuvola 笔.svg

默认阻止机器人

webtrees包含一个“Bad Bot Blocker”组件。这会过滤对其网站的每个请求。

默认情况下,以下机器人会被阻止

  • 具有用户代理字符串的机器人将其标识为广告商或搜索引擎优化器等的数据收集者。
  • 欺骗用户代理字符串的机器人。例如,有些机器人声称来自谷歌,但并不是从谷歌的 IP 地址运行的[47]。

如果机器人被阻止,则网络日志中会出现状态代码 406。

封锁整个网络或组织

webtrees的“Bad Bot Blocker” [48]也可以阻止整个 IP 网络。[49]

互联网由许多较小的、相互连接的网络组成。每个网络都有一个标识符,即所谓的“AS 编号” [50]。

您可以使用 WHOIS [51]查找找出特定 IP 地址的 AS 编号。

block_asn要启用此防御功能,请在文件中创建一个条目data/config.ini.php。这是一种自由文本格式 - webtrees将在此条目的任何位置搜索字符串 ASnnnnn。例如:

block_asn = "坏公司=AS123456,邪恶组织=AS654321"

通常,您会使用它来阻止那些允许其客户使用任何类型的服务(垃圾邮件、扫描、黑客攻击等)而不询问任何问题的服务器托管公司。这通常被称为“防弹托管” [52]。

此功能通过配置文件实现,可轻松阻止每秒数百个请求。如果必须首先建立与数据库的“昂贵”连接,攻击者就可以通过进行过多的数据库查询轻易地使服务器过载。[53]

阻止 IP 地址范围

如果正在使用 Apache Web 服务器,还可以使用其功能阻止访问单个 IP 地址或整个 IP 地址范围。为此,需要在.htaccess文件中创建一个条目,例如,该条目可以如下所示,以排除两个特定的 IP V4 地址:

订单允许、拒绝
允许所有
拒绝来自 5.188.62.21 5.188.62.26

除了阻止单个 IP V4 或 V6 地址之外,还可以阻止整个子网的访问。[54]

防止用户输入率过高

如果webtrees服务器在短时间内收到太多相同类型的请求(例如密码重置、新用户注册等),webtrees会阻止这些请求并显示错误消息:“HTTP 429 - 请求太多 - 稍后再试”。这是因为此类请求会导致电子邮件被发送。恶意用户可能会触发数千个此类请求,从而导致数千封电子邮件被发送给管理员。因此,我们会监控此类请求的频率,以便在“太短的时间内收到太多请求”时阻止它们。

垃圾邮件防护

Webtrees在联系表单和注册页面上有一个相对简单的内置垃圾邮件防护功能,不需要使用验证码[55] : [56] [57]

  • 在相应的网页上执行 JavaScript,设置隐藏的表单字段。
  • 用户必须查看该页面超过 3 秒才能提交表单。

如果这两个操作中的任何一个导致错误,则相应的用户输入将被丢弃。

曲奇饼

webtrees使用名为“__Secure-WT-ID”的第一方会话 cookie。从技术上讲,这是必要的,因此不需要用户的同意。

Nuvola 笔.svg

引用其他 Cookie,例如来自 GVExport 或第三方服务的 Cookie

Nuvola 笔.svg

第三方服务

Nuvola 笔.svg

描述统计图表目前基于谷歌技术,因此 IP 地址被转移到谷歌

Nuvola 笔.svg

家谱主页和“我的页面”上的 HTML 块也支持外部网站的集成(例如,包含外部图形或外部代码)。这也意味着有关网站用户的信息会被传递给第三方服务,因此这些功能必须记录在单独创建的隐私政策中。

跟踪和分析服务

Nuvola 笔.svg

更详细地描述各项服务

Nuvola 笔.svg

管理员可以激活 webtrees中的各种跟踪和分析模块。

  • Bing™ 网站管理员工具 - Bing Webmaster Tools
  • Google™ 分析 - https://www.google.com/analytics
  • Google™网站管理员工具 - https://www.google.com/webmasters
  • Matomo™/Piwik™分析 - https://matomo.org
  • Statcounter™ - https://statcounter.com

这些模块收集和存储使用信息并进行统计。一旦这些模块被激活,自动生成的隐私政策中的信息将会得到相应的补充。

隐私政策和版本说明

Nuvola 笔.svg

描述标准解释;描述调整扩展模块作为替代解决方案。考虑奥地利和瑞士的情况。

Nuvola 笔.svg

    搜索引擎优化

    搜索引擎对webtrees页面的可查找性可能是令人满意的,也可能是不令人满意的。

    如果您不希望找到页面,则必须使用“ robots.txt ”部分中描述的功能,并使用webtrees管理中的设置(如“隐私”部分中所述)使信息对访问者不可见。搜索引擎以与访问者 相同的权限访问网站页面。

    另一方面,家谱中存储的一些信息可能被搜索引擎索引是有用的。这样,其他家庭成员、家谱学家或远房亲戚在互联网上搜索姓氏时就可以了解到这些信息。这使你能够与他们接触并相应地扩展你自己的研究。

    Nuvola 笔.svg

    仍然描述

    哪些因素影响搜索结果的排名? webtrees 如何支持这一点?

    Nuvola 笔.svg

    站点地图.xml

    Nuvola 笔.svg

    sitemap.xml的功能和结构还需要描述一下……

    Nuvola 笔.svg

    sitemap.xml不是文件系统中的文件,正如人们可能轻易假设的那样,而是由webtrees在调用 URL 时动态创建的。

    Nuvola 笔.svg

    添加对搜索引擎页面的引用,您可以在其中将 URL 提交到 sitemap.xml

    Nuvola 笔.svg

    在 Joomla 中嵌入 webtree

    作为一个家谱程序,webtrees专注于收集家谱数据并呈现研究成果。用于呈现附加内容(例如传记、图片故事或博客文章)的功能非常有限。例如,家谱主页或用户主页上的 HTML 块。或者有扩展模块允许您创建一个简单的博客。如果你想要更多功能,你可以将webtrees嵌入到更高级别的内容管理系统[58]中,比如 Joomla [59]。

    下面简要概述了Joomla 和webtrees [60]中需要哪些设置。webtrees示例安装库中列出了一些此类安装。为了集成,应该安装 最新版本的 Joomla、PHP 和webtrees 。

    Joomla 中的操作

    • 创建一个新的 Joomla 菜单(或使用现有的菜单)并在其中添加一个新菜单项,然后选择菜单项类型“Wrapper”/“IFrame Wrapper”。
    • 将webtrees安装的 URL 粘贴到相应的文本字段中;作为 URL,您可以使用 webtree 的“主页”,也可以使用任何其他具有到特定模块或视图的路由的 URL。
    • 如果您使用webtrees扩展模块ChangeLanguageWithURL ,您可以将所需的webtrees语言添加到 URL 末尾,例如&language=es
    • 如果您使用多语言 Joomla 网站,则需要对每种语言重复上述步骤,并将这些不同的菜单项与“关联”链接起来。然后,Joomla 中的语言管理会相应地选择正确的页面。通过使用 URL 参数,webtrees&language=...选择指定的语言。
    • 您可以考虑使用多个 IFrame 包装器来显示webtrees的不同视图,例如用于搜索或管理源的菜单项。

    网络树中的操作

    • 选择与您所使用的 Joomla 模板相匹配的webtrees主题。起点可以是“颜色”主题,因为它已经提供了许多不同的颜色设置可供选择。
    • 使用管理菜单中的“ CSS 和 JS ”模块进一步使用 CSS 自定义网络树,例如精确匹配使用的颜色。您还可以使用 CSS 通过将相应的 CSS 类设置为“display: none”来隐藏(或更改)某些webtrees菜单等。以下是一个例子:
    < style  type = “text / css” > 
    html  { 
    font-family : Verdana , Arial , Helvetica , sans-serif 字体大小12像素;
    }。wt-site-logo  {
    显示
    }。wt-site-title  {
    显示
    }。wt-header-search  {
    显示
    }。wt-secondary-navigation  {
    显示
    }[] wt-secondary-navigation  {
    显示
    }。wt-用户菜单 {
    显示
    }。wt-branch-split  {
    显示
    }
    主体容器-lg wt-全局wt-控制面板 {
    背景颜色浅绿色; 
    }[] wt-header-wrapper  {
    背景var --color-2 ); 
    }</style>
    

    Web 应用程序

    如果您想在智能手机上安装webtrees作为渐进式 Web 应用程序 (PWA) [61],您必须提供信息,例如应用程序的名称和图标。这是通过 Web 清单完成的,例如,当调用时, Web 清单会由Webtreeshttps://musterfamilie.de/webmanifest.json自动动态生成。但是, 如果没有互联网连接就无法使用webtrees 。

    Nuvola 笔.svg

    添加进一步的解释;请参阅Install mobile app - webtrees

    Nuvola 笔.svg

    webmanifest.json

    调用时动态生成的“虚拟”文件https://musterfamilie.de/webmanifest.json也可以在浏览器中下载,在本地进行编辑,然后以适应的形式作为 Web 服务器上的物理文件再次提供。[62]

    家谱数据和数据库的备份

    由于每个 IT 系统都可能因技术问题、错误配置、用户错误或网络攻击而中断,因此创建备份概念是绝对必要的。webtrees应用程序本身可以随时重新安装,但必须定期备份存储在数据库中的家谱数据和设置。

    托管服务提供商可能已经自动创建定期备份。如果不是这种情况,网站管理员必须自己处理。

    家谱数据备份

    为了确保家谱数据的安全,网站管理员应定期将在webtrees中创建的所有家谱导出为GEDCOM文件。这些GEDCOM文件的文件名应带有日期戳,并且不仅应存储在服务器上,还应存档在另一个安全的存储介质上。该存储设备不应处于在线状态,即不应通过互联网永久访问。

    底部管理菜单中的位置条目也应定期导出为单独的文件。

    例如,存储在webtrees目录中的媒体文件也必须使用FTP 程序/data/media定期备份。缩略图不需要保存,因为它们是由webtrees自动重新生成的 。

    中的设置/data/config.ini.php也必须保存。

    信息
    Alternative
    webtrees还为经理或管理员提供了代替网站管理员接管数据备份的选项。为此,其家谱的管理员或所有家谱的管理员必须调出管理菜单并启动GEDCOM数据和相关媒体文件的导出,并将其打包在 ZIP 文件中。

    webtrees 数据库的备份

    根据安装统计,DBMS MySQL [21] / MariaDB [22]主要在生产中使用。因此,为了简单起见,本节的描述仅限于此。

    • phpMyAdmin v5.2.0
    • 导出/数据备份

    •  
    • 导入/恢复

    一个常见的基于网络的工具是“phpMyAdmin” [63] ,通过它托管服务提供商通常还提供对webtrees使用的数据库的访问权限。

    要备份您的数据,请从 phpMyAdmin 主窗口的顶部菜单中选择所需数据库的“导出”。通常,“快速”导出方法应该已经设置了必要的选项。重要的是使用 SQL 作为输出格式。单击“导出”或“确定”按钮后,几秒钟后您只需指定存储位置即可将备份下载到您的计算机。

    恢复或安装备份的数据库,请在 phpMyAdmin 中切换到所需的目标数据库或创建一个新的数据库。如果数据库仍然包含表,则可能需要在导入之前删除这些表,具体取决于备份/SQL 文件的导出设置。[64] 在主窗口中,从顶部菜单中选择“导入”。在以下表格中,只需指定源文件并通过单击“导入”按钮或“确定”以给定的默认设置启动该过程就足够了。 phpMyAdmin 提供有关恢复结果的信息。

    对于命令行过程,以下是在 Linux shell 中输入的两种变体的示例命令([1] 压缩文件和 [2] 未压缩文件)。复制所需的示例命令(不带行号),并用您自己的信息替换方括号中的占位符。适应其他操作系统应该没有问题,至少在未压缩的形式下是这样。

    备份:

    1 mysqldump --single-transaction --quick -u [数据库用户] -p [数据库名称]  | gzip > ~/databaseexport.sql.gz2 mysqldump --single-transaction --quick -u [数据库用户] -p [数据库名称] > ~/databaseexport.sql
    

    数据库用户应该具有 PROCESS 权限[65]--no-tablespaces或者必须另外传递该选项。 [66]

    要自动执行计划备份,命令可能如下所示:

    1 mysqldump --defaults-extra-file =[配置文件] --single-transaction --quick --no-tablespaces [数据库名称]  | gzip > ~/datenbankexport.sql.gz2 mysqldump --defaults-extra-file =[配置文件] --single-transaction --quick --no-tablespaces [数据库名称] > ~/datenbankexport.sql
    

    必须首先创建上述配置文件,其内容如下:

    [客户端]
    用户= [数据库用户]
    密码= [数据库用户密码]
    

    恢复:

    1 gunzip -c ~/databaseexport.sql.gz | mysql -u [数据库用户] -p [数据库名称] 
    2 mysql -u [数据库用户] -p [数据库名称] < ~/databaseexport.sql
    

    重新安装 webtrees 文件

    删除webtrees目录中除文件夹之外的所有文件夹/data。在根目录中,删除除文件之外的所有文件.htaccess。现在,与初始安装一样,将最新版本的webtrees下载 到您的本地电脑,然后使用FTP 程序将其上传到您的服务器上的目录webtrees

    网站树移至新服务器

    如果您想要将已经在一台服务器上运行的webtrees安装移动至另一台服务器,则必须首先检查新服务器的要求。这包括提供正确版本的 PHP。

    下面建议的程序将把所有设置转移到新环境。或者,也可以在新服务器上重新安装webtrees并仅导入之前导出的 GEDCOM 文件。但随后必须重新进行所有设置;必须重新创建所有用户,并且所有信息(例如故事、设计的 HTML 块等)将不再可用。

    旧服务器上的活动

    1. 最好将webtrees和所有扩展模块升级到最新版本。
    2. 检查下的‘数据目录’条目Meine Seiten / Verwaltung / Webseite / Einstellungen Webseite。那里列出的文件夹被webtrees用于存储媒体文件、GEDCOM 文件、临时文件等。如果文件夹的数据目录…/data/未设置为,则稍后必须在新服务器上相应地调整此条目。
    3. 创建此数据目录的副本,但文件 config.ini.phpindex.php和除外.htaccess。缓存文件不一定需要备份。
    4. 创建webtrees使用的数据库的转储,例如通过使用 phpMyAdmin 应用程序导出所有表。

    新服务器上的活动

    1. 在新服务器上设置新数据库。
    2. 在新服务器上安装与旧服务器具有相同主版本(例如 2.0 或2.1 )的webtrees 。
    3. 安装所有以前使用的扩展模块(适当的版本)。
    4. 退出新服务器。
    5. 将先前在旧服务器上创建的数据库转储导入新数据库,例如使用 phpMyAdmin 应用程序。
    6. 将旧服务器上先前备份的文件夹的内容复制/data/到新服务器上相应的webtrees目录。
    7. 目录中的调整/data:检查文件中的URL和其他设置是否config.ini.php与新环境匹配;可能使.htaccess文件适应新的环境。
    8. 检查webtreesrobots.txt根目录下的文件内容是否与新的环境匹配。
    9. 可能将现有域名移动到新环境。
    10. 在新服务器上调用webtrees 。
    11. 如果有必要,调整下面的‘数据目录’条目Meine Seiten / Verwaltung / Webseite / Einstellungen Webseite(见上文)。
    12. 测试最重要的功能,例如发送电子邮件。
    13. 通知用户有关转换的信息。

    扩展模块

    webtrees设计为使用模块进行扩展和修改。扩展模块是webtrees核心的功能扩展,或者是webtrees社区成员创建并向公众提供的附加主题(用户界面设计)。扩展模块不是webtrees的初始安装或升级的一部分,因此必须单独安装和更新。

    在webtrees页面“下载 - 模块和主题”或GitHub上发布的所有已知扩展模块都列在单独的子页面上。

    信息
    降级

    一般来说,降级(即过渡到webtrees的早期版本)是不可能的。原因是升级可能会改变数据库结构(通常称为“模式”)。早期版本的代码将无法与新的数据库结构一起使用。因此,您只能降级到使用相同数据库结构的版本。

    为了验证这一点,您需要app/Webtrees.php在文件中查找与此类似的行:

    define('WT_SCHEMA_VERSION', 34);。如果两个版本的 webtree 具有相同的架构版本,则可以降级。要降级,请按照与手动升级相同的步骤操作。

    个别参考文献

    1. ↑跳至:1.0 1.1 1.2 1.3 1.4 文章PHP。出处:维基百科,自由的百科全书。
    2. ↑ 另请参阅文章List_of_Linux_distributions。出处:维基百科,自由的百科全书。
    3. ↑ 参见文章Debian。出处:维基百科,自由的百科全书。
    4. ↑ 参见文章Ubuntu。出处:维基百科,自由的百科全书。
    5. ↑ 参见文章Raspberry Pi OS。出处:维基百科,自由的百科全书。
    6. ↑ 参见文章openSUSE。出处:维基百科,自由的百科全书。
    7. ↑ 参见文章网络附加存储。出处:维基百科,自由的百科全书。
    8. ↑ 参见文章Docker_(Software)。出处:维基百科,自由的百科全书。
    9. ↑ 参见文章Raspberry_Pi。出处:维基百科,自由的百科全书。
    10. ↑ 文章文件传输协议。出处:维基百科,自由的百科全书。
    11. ↑ 文章Secure_Shell。出处:维基百科,自由的百科全书。
    12. ↑ 文章远程桌面协议。出处:维基百科,自由的百科全书。
    13. ↑ 文章Cron。出处:维基百科,自由的百科全书。
    14. ↑ 存储空间需求分布在子目录 18 MB ./resources、82 MB ./vendor、9 MB ./app 和 8 MB ./public 中。
    15. ↑ 有关所需的扩展库,请参阅:
      • https://repo.packagist.org/packages/fisharebest/webtrees
      • webtrees/composer.json at main · fisharebest/webtrees · GitHub
      • webtrees/app/Services/ServerCheckService.php at main · fisharebest/webtrees · GitHub
    16. ↑ 文章Polyfill。出处:维基百科,自由的百科全书。
    17. ↑ 参见webtrees论坛中的文章“ Uberspace webhosting ”
    18. ↑ 文章DBMS。出处:维基百科,自由的百科全书。
    19. ↑ 对于所需的 DBMS,可能需要安装/激活额外的 PHP 扩展。
    20. ↑ Server Requirements中“数据库要求”部分的翻译已合并至此处。
    21. ↑跳至:21.0 21.1 21.2 文章MySQL。出处:维基百科,自由的百科全书。
    22. ↑跳至:22.0 22.1 22.2 文章MariaDB。出处:维基百科,自由的百科全书。
    23. ↑跳至:23.0 23.1 文章SQLite。出处:维基百科,自由的百科全书。
    24. ↑跳至:24.0 24.1 文章Microsoft_SQL_Server。出处:维基百科,自由的百科全书。
    25. ↑跳至:25.0 25.1 文章PostgreSQL。出处:维基百科,自由的百科全书。
    26. ↑ 例如,由于维护而导致的停机时间仅限于一个应用程序,并且可以实现备份和恢复而不会产生副作用。
    27. ↑ 另请参阅: https: //github.com/fisharebest/webtrees/issues/2950。
    28. ↑ 文章Symbolic_Link。出处:维基百科,自由的百科全书。
    29. ↑ 参见“2.0 中的差异”( Differences in 2.0 ) 和“如果 Web 服务器上的数据包含‘符号链接’且用户点击‘清理数据文件夹’,则会出现错误 #2984”( Error if Data on the web server contains a "symbolic link" and the user clicks "Clean up data folder" · Issue #2984 · fisharebest/webtrees · GitHub )。
    30. ↑ 必须使用 php.ini 指令memory_limit和max_execution_time在PHP配置中调整分配的内存和执行时间。
    31. ↑ 文章初始化文件。出处:维基百科,自由的百科全书。
    32. ↑ 文章UTF-8。出处:维基百科,自由的百科全书。
    33. ↑ 另请参阅:FAQ - Template for config.ini.php。
    34. ↑ 另请参阅Manual upgrade
    35. ↑ 页面FAQ - How do I enable pretty URLs?的翻译。
    36. ↑ 文章清理 URL。出处:维基百科,自由的百科全书。
    37. ↑ 文章Apache_HTTP_Server。出处:维基百科,自由的百科全书。
    38. ↑ 文章Nginx。出处:维基百科,自由的百科全书。
    39. ↑ 文章Microsoft_Internet_Information_Services。出处:维基百科,自由的百科全书。
    40. ↑ 文章HTTP 状态代码。出处:维基百科,自由的百科全书。
    41. ↑ 文章.htaccess。出处:维基百科,自由的百科全书。
    42. ↑ 文章Apache_HTTP_Server。出处:维基百科,自由的百科全书。
    43. ↑ 文章HTTP 状态代码。出处:维基百科,自由的百科全书。
    44. ↑参见 命令指令的文档
    45. ↑ 参见Deny 指令的文档
    46. ↑ 参见RFC9309机器人排除协议。
    47. ↑ 因此,在配置 Web 服务器和代理时,必须注意确保访问 IP 地址传递给 Web 树。
    48. ↑ 参见提交Make ASN block configurable · fisharebest/webtrees@617057d · GitHub。
    49. ↑ Blocking unwanted visitors页面中“阻止整个网络/组织”部分的翻译。
    50. ↑ 文章自治系统。出处:维基百科,自由的百科全书。
    51. ↑ 文章Whois。出处:维基百科,自由的百科全书。
    52. ↑ 参见https://en.wikipedia.org/wiki/Bulletproof_hosting。
    53. ↑ 参见论坛帖子“2.1 版帮助 > 是否有计划阻止某些 IP 地址尝试登录”:any plans to block certain IP-adresses from trying to login - webtrees
    54. ↑ 参见How to Block IP Address with .htaccess | .htaccess made easy
    55. ↑ 文章验证码。出处:维基百科,自由的百科全书。
    56. ↑ 参见论坛文章“公开讨论 > 防范垃圾邮件”:protect against spam - webtrees
    57. ↑ 参见问题 #2901 阻止垃圾邮件注册和消息:Deter SPAM registrations and messages · Issue #2901 · fisharebest/webtrees · GitHub。
    58. ↑ 参见文章内容管理系统。出处:维基百科,自由的百科全书。
    59. ↑ 参见文章Joomla。出处:维基百科,自由的百科全书。
    60. ↑ 参见webtrees 论坛中的帖子
    61. ↑ 参见文章“渐进式 Web 应用程序”。出处:维基百科,自由的百科全书。
    62. ↑参见 web.dev上的 Web 开发培训
    63. ↑ 文章PhpMyAdmin。出处:维基百科,自由的百科全书。
    64. ↑ 查看SQL源代码会知道是否需要准备数据库:如果信息如DROP TABLE IF EXISTS [TABELLENNAME]; CREATE TABLE [TABELLENNAME] ...所示,则无需执行任何操作。
    65. ↑ 参见https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html#priv_process
    66. ↑ 参见https://dba.stackexchange.com/questions/271981/access-denied-you-need-at-least-one-of-the-process-privileges-for-this-ope

    导航菜单

    • 登记
    • 讨论
    • 阅读
    • 查看源代码
    • 版本历史记录

    CompGen 提供

    • 网站
    • 团队仪表板
    • 计算机谱系
    • 家庭研究
    • 数码书本
    • 数据加密标准 (DES)
    • YouTube

    沟通

    • 话语
    • 论坛
    • 日历

    选定的数据库

    • 元搜索
    • 盖德巴斯
    • 政府
    • 奥布
    • 地址簿
    • 家庭公告
    • 墓碑
    • 第一次世界大战伤亡名单

    搜索

    • 搜索

    GenWiki门户

    • 主页
    • 专题门户网站
    • 数字图书馆
    • 字典
    • 区域研究
    • 基础知识
    • 计算机谱系
    • 数据库
    • 家谱软件
    • 俱乐部和兴趣小组
    • 实际帮助

    GenWiki 内部

    • 关于GenWiki
    • 参与帮助
    • 论坛
    • 精选文章
    • 主要类别
    • 最近更改
    • 新文件
    • 邮件列表
    • RSS提要
    • 发邮件给管理员

    工具

    • 此页面的链接
    • 链接页面的变更
    • 特殊页面
    • 打印版本
    • 页面信息
    • 引用页面

    相关文章:

  • 在 Unity 中,Start 方法直接设置 RectTransform 的位置,时出现问题,与预计位置不匹配。
  • LightGBM的python实现及参数优化
  • 从十进制到二进制:深入理解定点数与浮点数表示
  • Python学习(2) ----- Python的类型
  • 多模态大语言模型arxiv论文略读(九十五)
  • Python正则表达式:30秒精通文本处理
  • Java中数组(一维/二维)与字符串操作(String/StringBuilder/StringBuffer)详解
  • mysql中的索引怎么用?
  • 高压单端探头,如何实现大比例的衰减?
  • 在thinkphp5.0中。单表使用 model clone 时就会有问题。 需要使用 alias(), 否则会报错。
  • 网络协议:[0-RTT 认证 ]
  • 一起学数据结构和算法(二)| 数组(线性结构)
  • VMware-MySQL主从
  • 板凳-------Mysql cookbook学习 (七)
  • 2025上半年软考高级系统架构设计师经验分享
  • Elasticsearch索引机制与Lucene段合并策略深度解析
  • 【QT】在QT6中读取文件的方法
  • 鸿蒙OSUniApp 实现的数字键盘与密码输入框组件#三方框架 #Uniapp
  • 一起学数据结构和算法(三)| 字符串(线性结构)
  • 人工智能AI之机器学习基石系列 第 2 篇:数据为王——机器学习的燃料与预处理
  • 免费的课程设计哪个网站有/搜狗网页版入口
  • 电商网站建设建站方案/百度推广培训
  • 为什么检测行业不能用网站做/网站建设优化收费
  • 做公司网站 烟台/互联网广告价格
  • 小地方做b2b网站/湖北网络推广有限公司
  • 六安做网站/微信公众号推广2元一个