webtrees——在线协作家谱
内容
- 执照
- 编码风格和标准
- 介绍
- 系统要求
- 互联网浏览器兼容性
- 安装
- 升级
- 建设与发展
- Gedcom(家谱)文件
- 安全
- 备份
- 从备份还原
执照
- webtrees:在线家谱
- 版权所有 2022 webtrees 开发团队
该程序是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它,无论是许可证的第 3 版,还是(根据您的选择)任何更高版本。
本程序发布时,希望其能够发挥作用,但不提供任何担保;甚至不提供任何关于适销性或特定用途适用性的默示担保。更多详情,请参阅 GNU 通用公共许可证。
您应该已随本程序收到一份 GNU 通用公共许可证的副本。如果没有,请参阅https://www.gnu.org/licenses/。
编码风格和标准
webtrees 遵循PHP 标准建议。
- PSR-1 - 基本编码标准
- PSR-2 - 编码风格指南
- PSR-4 - 自动加载标准
- PSR-6 - 缓存
- PSR-7 - HTTP 消息接口
- PSR-11 - 容器接口
- PSR-12 - 扩展编码风格指南
- PSR-15 - HTTP 处理程序
- PSR-17 - HTTP 工厂
我们目前不使用PSR-3(日志记录) - 但我们计划将来使用。
对于 JavaScript,我们使用半标准。
介绍
webtrees是网络领先的在线协作家谱应用程序。
- 它基于标准 GEDCOM 文件运行,因此与每个主流桌面应用程序兼容。
- 它旨在通过正确组合使用第三方工具、设计技术和开放标准来实现高效和有效。
Webtrees允许您在您的网站上查看和编辑您的家谱。它拥有完整的编辑功能和隐私保护功能,并支持照片和文档图像等多媒体内容。作为一款在线程序,它简化了与其他从事您家谱工作的人员的协作流程,从而促进大家庭的参与和良好的祖先记录习惯。您的最新信息始终显示在您的网站上,并可供其他人查看,具体方式由您设置的查看规则决定。如需了解更多信息和观看演示,请访问 webtrees.net。
webtrees是一款开源软件,由来自世界各地的开发者免费贡献时间和才华。所有服务、支持和未来开发都依赖于开发者为项目贡献的时间,这些时间通常以牺牲工作、娱乐和家庭为代价。除了用户提供的少量捐款外,开发者不会因其在项目上投入的时间而获得任何报酬。该项目也没有外部收入来源来支持。请在提交支持请求时考虑这些情况,并考虑自愿贡献您自己的时间和技能,使项目更加强大和完善。
系统要求
要安装webtrees,您需要:
- Web 服务器。Apache、NGINX 和 IIS 是最常见的类型。要使用“Pretty 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 秒
- PHP 的配置应考虑到系统规模,允许足够的服务器资源(内存和执行时间)。典型的要求如下:
浏览器兼容性
webtrees已在 Edge、Firefox、Chrome 和 Safari 等热门浏览器的最新版本上进行了测试。对其他浏览器和旧版本的支持将视具体情况而定。
安装
- 从github.com下载最新稳定版本的 .ZIP 文件。
- 解压缩文件,然后将其上传到 Web 服务器上的空文件夹。
- 打开您的 Web 浏览器并输入您的Webtrees站点的 URL (例如,
https://www.yourserver.com/webtrees
在地址栏中)。 - webtrees安装向导将自动启动。
您的首要任务是创建家谱。
如果您有 GEDCOM 文件,可以将其导入家谱。如果没有,请直接开始输入您的家谱。
配置选项很多。您可能需要先查看隐私设置。其他选项无需过多担心——默认设置对大多数人来说已经足够了。如果您遇到问题,可以从帮助论坛获得友好的帮助和建议。
升级
升级webtrees快捷方便。强烈建议您在新版本发布时立即升级。即使是 webtrees的小版本更新,通常也会包含大量的错误修复、界面改进和程序增强。
-
自动升级
webtrees具有自动升级功能。管理员登录后会收到新版本发布的通知,并可以选择启动自动升级。如果自动升级因某种原因失败,则需要手动升级。
-
手动升级
- 现在是进行备份的好时机。
- 从 webtrees.net下载最新版本的webtrees
- 在您上传新文件的过程中,网站访问者可能会看到新旧文件混杂在一起。这可能会导致不可预测的行为或错误。为了避免这种情况,请创建data/offline.txt文件。当此文件存在时,访问者将看到“网站不可用 - 请稍后再来”的消息。
- 解压缩 .ZIP 文件,然后将文件上传到您的 Web 服务器,覆盖现有文件。
- 删除文件data/offline.txt。
Macintosh 用户须知
步骤 4 假设您使用的复制工具会合并目录而不是替换目录。(合并是 Windows 和 Linux 上的标准操作。)如果您使用 Macintosh Finder 或其他类似工具执行步骤 3,它会将您的配置、媒体和其他目录替换 为安装中的空/默认目录。这会非常糟糕(但您在步骤 1 中确实备份了,不是吗!)。您可以通过搜索google.com找到更多详细信息和合适工具的推荐。
建设与发展
如果您想从源代码构建 Webtree,或修改代码,则需要先安装一些工具。
你需要使用Composer安装 PHP 依赖项。然后运行以下命令:
- php composer.phar 安装
你需要npm来安装 Javascript 依赖项。然后运行以下命令:
- npm 安装
- npm 运行生产环境
每次修改文件时都需要重新运行第二个webtrees.js
。
Gedcom(家谱)文件
当您在webtrees中导入家谱 (GEDCOM) 文件时,文件中的数据将传输到数据库表中。该文件本身仍保留在webtrees/data文件夹中,并且不再被webtrees使用或需要。任何后续对webtrees数据的编辑都不会更改此文件。
如果您在webtrees之外更改了家谱数据,则无需从webtrees中删除 GEDCOM 文件或数据库并重新开始。请按照以下步骤更新已导入的 GEDCOM:
- 转到
Control panel
->Manage family trees
在与此特定家谱(GEDCOM)文件(或新文件)相关的行上选择导入。 - 仔细注意媒体项目选项( “如果您已经在webtrees中创建了媒体对象,并且已经使用删除媒体对象的软件离线编辑了数据,那么勾选此框可以将当前媒体对象与新的 GEDCOM 合并。”)在大多数情况下,您应该取消选中此框。
- 点击“保存”。webtrees会在导入前再次验证 GEDCOM 文件。在此过程中,webtrees会将您的整个家谱(GEDCOM 文件)复制到您数据库中的“块”表中。根据文件的编码、文件大小以及服务器和支持软件的功能,此过程可能需要一些时间。复制数据时不会显示进度条,如果您离开此页面,复制过程将暂停。当您返回家谱管理页面时,复制过程将重新启动。
安全
Webtrees的安全性意味着确保您的网站免受不必要的入侵、黑客攻击或数据和配置文件的访问。Webtrees 的开发人员将安全性视为其开发过程中极其重要的部分,并竭尽全力确保您的数据安全。
最容易受到入侵的区域是/data文件夹,其中包含您的 config.ini.php 文件以及各种临时文件。如果您担心存在风险,可以进行一个非常简单的测试:尝试url_to_your_server/data/config.ini.php
在 Web 浏览器中输入 config.ini.php 文件。
最可能的结果是出现如下“访问被拒绝”消息:
<span style="background-color:#f6f8fa"><span style="color:#1f2328"><span style="color:#1f2328"><span style="background-color:#f6f8fa"><code>ForbiddenYou don't have permission to access /data/config.ini.php on this server.
</code></span></span></span></span>
这表明webtrees内置的保护正在发挥作用,无需采取进一步措施。
万一您确实获取了该文件(您只会看到一个分号),那么该保护就不会在您的网站上起作用,您应该采取进一步的措施。
如果您的服务器以 CGI 模式运行 PHP,则将/data文件夹的权限更改 为 700 而不是 777。这将阻止对 httpd 进程的访问,同时仍然允许访问 PHP 脚本。
这可能适用于 99% 的用户。只有剩下的 1% 的用户才应该考虑最复杂的解决方案,将/data文件夹移出可访问的 Web 空间。(注意:在许多共享主机环境中,这根本不是一个选项。)
如果您确实认为有必要,以下是所需流程的示例:
如果您的主文件夹类似于/home/username,并且您的网站的根文件夹是/home/username/public_html,并且您已在public_html/webtrees文件夹中安装了webtrees,那么您将在主文件夹中创建一个与 public_html 文件夹同一级别的新数据文件夹,例如/home/username/private/data,并将您的 GEDCOM(家谱)文件放在那里。
然后将-> ->页面上的数据文件夹设置从默认的data/更改为新位置/home/username/private/dataControl panel
Website
Website preferences
您将有两个数据目录:
- [webtrees 路径]/data - 只需包含 config.ini.php
- /home/username/private/data - 包含其他所有内容
备份
备份很重要。无论遇到什么问题,一个好的备份总能帮你解决。
要备份webtrees,您需要复制以下内容
-
webtrees/data文件夹中的文件。
-
数据库中的表。使用phpMyAdmin等免费工具, 您只需单击一下即可完成此操作。或者,您也可以运行 mysqldump 命令进行备份(只需将[localhost]、[username]、[password]和[databasename]替换为您自己的值):
mysqldump --host=[localhost] -u [username] -p[password] --databases [databasename] > dump_file.sql
请注意,“ -p[password] ”之间没有空格。
请记住,大多数网络托管服务不会备份您的数据,这是您的责任。
从备份还原
要在新服务器上还原备份:
-
按照安装中的步骤进行操作以获得全新安装。
-
用备份副本替换数据文件夹。
-
使用 phpmyadmin 恢复您的 mysql 数据库或使用您的 mysqldumpfile 在数据库服务器上运行以下命令行(只需将[username]、[password]和[databasename]替换为您自己的):
mysql -u [username] -p[password] [database_name] < [dump_file.sql]
-
确认文件data/config.ini.php包含正确的信息以连接到数据库并在需要时进行更新。