fisharebest / webtrees

在线家谱

2.1.20 2024-04-08 20:30 UTC

README

Latest version Licence Unit tests codecov Translation status Scrutinizer Code Quality Code Climate StyleCI

webtrees - 在线协作家谱

内容

许可

  • webtrees:在线家谱
  • 版权 2022 webtrees 开发团队

本程序是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)许可证的任何后续版本。

本程序的分发旨在使其有用,但没有任何保证;甚至没有关于适销性或适用于特定目的的隐含保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已经收到GNU通用公共许可证副本。如果没有,请参阅https://www.gnu.org/licenses/

编码风格和标准

webtrees遵循PHP 标准建议

我们目前不使用PSR-3(日志记录) - 但我们计划在未来这样做。

对于JavaScript,我们使用semistandard

简介

webtrees是网络上领先的在线协作家谱应用程序。

  • 它从标准的GEDCOM文件工作,因此与所有主要的桌面应用程序兼容。
  • 它通过使用适当的第三方工具、设计技术和开放标准的组合,旨在提高效率和效果。

webtrees允许您在网站上查看和编辑您的家谱。它具有完整的编辑功能、完整的隐私功能,并支持照片和文档图像等imeda。作为一个在线程序,它促进了大家庭的参与和良好的祖先记录习惯,因为它简化了与他人合作处理您的家谱的过程。您的最新信息始终在您的网站上,并可供其他人查看,由您设置的查看规则定义。有关更多信息和工作演示,请访问webtrees.net

webtrees是一款开源软件,由来自许多国家的人们免费捐赠他们的时间和才能制作而成。所有服务、支持和未来发展都依赖于开发者愿意捐赠给项目的时间,这通常是以工作、休闲和家庭为代价的。除了从用户那里收到的少量捐款外,开发者不会因他们在项目上花费的时间而得到任何报酬。也没有外部收入来源来支持项目。在提出支持请求时,请考虑这些情况,并考虑自愿捐赠自己的时间和技能,使项目更强大、更好。

系统要求

要安装 webtrees,您需要

  • 一个网络服务器。Apache、NGINX和IIS是最常见的类型。要使用“漂亮URL”,您需要配置URL重写。
  • 一个数据库。MySQL是推荐的,尽管可以使用PostgreSQL、SQL-Server和SQLite。一些功能依赖于MySQL进行排序。其他数据库可能不会根据本地规则排序名称。webtrees使用前缀作为其表名,因此您可以在同一数据库中安装多个webtrees实例。
  • 大约100MB的磁盘空间用于应用程序文件,以及您媒体文件、GEDCOM文件和数据库所需的空间。
  • PHP 7.1 - 7.4。使用PHP 5.3 - 7.0的服务器可以使用 webtrees 1.7。
    • PHP应该配置为允许足够的系统资源(内存和执行时间)。典型要求如下
      • 小型系统(500个个体):16–32 MB,10–20秒
      • 中型系统(5,000个个体):32–64 MB,20–40秒
      • 大型系统(50,000个个体):64–128 MB,40–80秒

浏览器兼容性

webtrees已测试于Edge、Firefox、Chrome和Safari等流行浏览器的最新版本。对其他浏览器和旧版本的支持将根据具体情况而定。

安装

  1. github.com下载最新稳定版本的.ZIP文件。
  2. 解压缩文件,然后将它们上传到您的网络服务器上的一个空文件夹。
  3. 打开您的网络浏览器,在地址栏中输入您的 webtrees 网站URL(例如,将https://www.yourserver.com/webtrees输入地址栏中)。
  4. webtrees安装向导将自动启动。

您的第一个任务将是创建一个家谱。

如果您有一个GEDCOM文件,您可以将其导入到树中。如果没有,只需开始输入您的家谱。

有许多配置选项。您可能首先想查看隐私设置。不要过分担心所有其他选项 - 默认设置对大多数人来说都很好。如果您遇到困难,您可以在帮助论坛获得友好的帮助和建议。

升级

升级 webtrees 是快速且简单的。强烈建议您在每次有新版本可用时升级您的安装。即使是微小的 webtrees 版本更新通常也包含大量的错误修复以及界面改进和程序增强。

  • 自动升级

    webtrees具有自动升级功能。管理员登录时,将收到新版本可用的通知,并可以选择启动自动升级。如果自动升级因某些原因失败,则应执行手动升级。

  • 手动升级

    1. 现在是一个做备份的好时机。
    2. webtrees.net下载可用的最新版 webtrees
    3. 当您正在上传新文件时,访问您网站的访客可能会遇到新旧文件的混合。这可能会导致不可预测的行为或错误。为了避免这种情况,创建一个名为 data/offline.txt 的文件。当这个文件存在时,访客将看到“网站不可用 - 请稍后再来”的消息。
    4. 解压 .ZIP 文件,并将文件上传到您的 Web 服务器,覆盖现有文件。
    5. 删除文件 data/offline.txt

针对 Mac 用户说明

步骤 4 假定您使用的是合并目录而不是替换目录的复制工具。(在 Windows 和 Linux 上,合并 是标准行为。)如果您使用 Macintosh Finder 或其他类似工具执行步骤 3,它将用安装程序的空/默认目录替换您的配置、媒体和其他目录。这会很糟糕(但您不是在步骤 1 中备份了吗!)。有关适合的工具的详细信息和建议,可以通过搜索 google.com 获取。

构建和开发

如果您想从源代码构建 webtrees 或修改代码,您需要先安装一些工具。

您需要 composer 来安装 PHP 依赖项。然后运行以下命令:

  • php composer.phar install

您需要 npm 来安装 JavaScript 依赖项。然后运行以下命令:

  • npm install
  • npm run production

每次您修改 webtrees.js 文件时,都需要重新运行第二个命令。

Gedcom(家谱)文件

当您在 webtrees 中导入家谱(GEDCOM)文件时,文件中的数据将传输到数据库表中。该文件本身将保留在 webtrees/data 文件夹中,并且不再由 webtrees 使用或需要。任何随后的 webtrees 数据编辑都不会更改此文件。

当或如果您在 webtrees 之外更改您的家谱数据,您不需要从 webtrees 删除您的 GEDCOM 文件或数据库并从头开始。按照以下步骤更新已导入的 GEDCOM:

  • 转到 控制面板 -> 管理家谱。在与此特定家谱(GEDCOM)文件(或新文件)相关的行中选择 导入
  • 注意媒体项目选项(“如果您已在 webtrees 中创建了媒体对象,并且已使用删除媒体对象的软件离线编辑了数据,则选中此框以合并当前媒体对象与新的 GEDCOM。”)在大多数情况下,您应该保留此框为 未选中
  • 点击“保存”。在导入之前,webtrees 将再次验证 GEDCOM。在此过程中,webtrees 将您的整个家谱(GEDCOM 文件)复制到数据库中的“块”表中。根据文件编码、文件大小以及服务器和辅助软件的能力,这可能需要一些时间。在数据复制过程中不会显示进度条,并且如果您离开此页面,则过程会暂停。当您返回到家谱管理页面时,它将重新开始。

安全性

webtrees 中的 安全性 意味着确保您的网站免受未授权入侵、黑客攻击或对数据和配置文件的访问。webtrees 的开发者将安全性视为其开发中极为重要的部分,并尽一切努力确保您的数据安全。

最易受入侵的领域可能是包含您的 config.ini.php 文件和各种临时文件的数据目录 /data。如果您担心那里可能有风险,可以执行一个非常简单的测试:在您的网页浏览器中键入 url_to_your_server/data/config.ini.php 尝试获取该文件。

最可能的结果是类似于这样的“拒绝访问”消息

Forbidden

You don't have permission to access /data/config.ini.php on this server.

这表明 webtrees 内置的保护机制正在工作,无需采取进一步行动。

在不寻常的情况下,如果您获取了该文件(您只会看到一个分号),那么您的网站上该保护机制没有正常工作,您应该采取一些进一步行动。

如果您的服务器以 CGI 模式运行 PHP,那么请将 /data 文件夹的权限更改为 700 而不是 777。这将阻止对 httpd 进程的访问,同时仍然允许访问 PHP 脚本。

这对大约 99% 的用户都适用。只有剩下的 1% 应该考虑最复杂的解决方案,将 /data 文件夹移出可访问的 Web 空间。(注意: 在许多共享托管环境中,这根本不是一个选项。)

如果您确实觉得有必要,以下是一个过程示例

如果您的家目录类似于 /home/username,您的网站根目录是 /home/username/public_html,并且您已将 webtrees 安装在 public_html/webtrees 文件夹中,那么您会在与 public_html 文件夹同一级别的家目录中创建一个新的 data 文件夹,例如 /home/username/private/data,并将您的 GEDCOM(家谱)文件放在那里。

然后更改 控制面板 -> 网站 -> 网站首选项 页上的 数据文件夹 设置,从默认的 data/ 更改为新位置 /home/username/private/data

您将有两个数据目录

  • [webtrees 路径]/data - 只需包含 config.ini.php
  • /home/username/private/data - 包含其他所有内容

备份

备份是好的。无论您遇到什么问题,都可以从良好的备份中修复。

要备份 webtrees,您需要复制以下内容

  1. webtrees/data 文件夹中的文件。

  2. 数据库中的表。如 phpMyAdmin 这样免费可用的工具允许您一键完成此操作。或者,您也可以通过运行 mysqldump 命令来备份(只需将 [localhost][username][password][databasename] 替换为您自己的内容)

    mysqldump --host=[localhost] -u [username] -p[password] --databases [databasename] > dump_file.sql

    请注意 '-p[password]' 是连在一起的,中间没有空格。

请记住,大多数网络托管服务都不会备份您的数据,这是您的责任。

从备份中恢复

要在新服务器上恢复备份

  1. 按照 安装 部分的步骤进行,以获取干净的全新安装。

  2. 用备份副本替换 data 文件夹。

  3. 使用 phpmyadmin 或在数据库服务器上运行以下命令行来恢复您的 mysql 数据库(只需将 [username][password][databasename] 替换为您自己的内容)

    mysql -u [username] -p[password] [database_name] < [dump_file.sql]

  4. 确认文件 data/config.ini.php 包含正确连接到数据库的信息,并在必要时更新它。