fisharebest / webtrees
在线家谱
Requires
- php: 7.4 - 8.3
- ext-ctype: *
- ext-curl: *
- ext-fileinfo: *
- ext-gd: *
- ext-iconv: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-pcre: *
- ext-pdo: *
- ext-session: *
- ext-xml: *
- aura/router: 3.3.0
- doctrine/dbal: 3.8.3
- ezyang/htmlpurifier: 4.17.0
- fig/http-message-util: 1.1.5
- fisharebest/algorithm: 1.6.0
- fisharebest/ext-calendar: 2.6.0
- fisharebest/flysystem-chroot-adapter: 2.0.0
- fisharebest/localization: 1.17.0
- guzzlehttp/guzzle: 7.8.1
- illuminate/container: 8.83.27
- illuminate/database: 8.83.27
- illuminate/support: 8.83.27
- intervention/image: 2.7.2
- io-developer/php-whois: 4.1.10
- league/commonmark: 2.4.2
- league/flysystem: 2.5.0
- league/flysystem-ziparchive: 2.3.1
- middlewares/client-ip: 2.0.1
- mlocati/ip-lib: 1.18.0
- nesbot/carbon: 2.72.3
- nyholm/psr7: 1.8.1
- nyholm/psr7-server: 1.1.0
- oscarotero/middleland: 1.0.1
- psr/cache: 1.0.1
- psr/http-message: 1.1
- psr/http-server-handler: 1.0.2
- psr/http-server-middleware: 1.0.2
- ramsey/uuid: 4.2.3
- sabre/vobject: 4.5.4
- symfony/cache: 5.4.36
- symfony/expression-language: 5.4.35
- symfony/mailer: 5.4.36
- symfony/polyfill-mbstring: 1.29.0
- symfony/polyfill-php80: 1.29.0
- tecnickcom/tcpdf: 6.7.4
Requires (Dev)
- ext-dom: *
- ext-libxml: *
- ext-pdo_sqlite: *
- ext-sqlite3: *
- composer/composer: 2.7.2
- league/flysystem-memory: 2.0.6
- php-coveralls/php-coveralls: 2.7.0
- phpunit/phpunit: 9.6.18
Suggests
- ext-imagick: Required to generate thumbnail images
- ext-pdo_mysql: Required to use MySQL for database storage
- ext-pdo_pgsql: Required to use PostgreSQL for database storage
- ext-pdo_sqlite: Required to use SQLite for database storage
- ext-pdo_sqlsrv: Required to use SQL Server for database storage
- ext-zip: Required to compress downloads and use the upgrade wizard
- ext-zlib: Required to compress HTTP responses
- dev-main
- 2.1.x-dev
- 2.1.20
- 2.1.19
- 2.1.18
- 2.1.17
- 2.1.16
- 2.1.15
- 2.1.14
- 2.1.13
- 2.1.12
- 2.1.11
- 2.1.10
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.1.0-beta.2
- 2.1.0-beta.1
- 2.1.0-alpha.2
- 2.1.0-alpha.1
- 2.0.x-dev
- 2.0.26
- 2.0.25
- 2.0.24
- 2.0.23
- 2.0.22
- 2.0.21
- 2.0.20
- 2.0.19
- 2.0.18
- 2.0.17
- 2.0.16
- 2.0.15
- 2.0.14
- 2.0.13
- 2.0.12
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 2.0.0-beta.5
- 2.0.0-beta.4
- 2.0.0-beta.3
- 2.0.0-beta.2
- 2.0.0-beta.1
- 2.0.0-alpha.5
- 2.0.0-alpha.4
- 2.0.0-alpha.3
- 2.0.0-alpha.2
- 2.0.0-alpha.1
- 1.7.x-dev
- 1.7.20
- 1.7.19
- 1.7.18
- 1.7.17
- 1.7.16
- 1.7.15
- 1.7.14
- 1.7.13
- 1.7.12
- 1.7.11
- 1.7.10
- 1.7.9
- 1.7.8
- 1.7.7
- 1.7.6
- 1.7.5
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.3
- dev-dbal
- dev-analysis-9b999a
- dev-develop
This package is auto-updated.
Last update: 2024-09-22 03:11:35 UTC
README
webtrees - 在线协作家谱
内容
许可
- 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,我们使用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秒
- PHP应该配置为允许足够的系统资源(内存和执行时间)。典型要求如下
浏览器兼容性
webtrees已测试于Edge、Firefox、Chrome和Safari等流行浏览器的最新版本。对其他浏览器和旧版本的支持将根据具体情况而定。
安装
- 从github.com下载最新稳定版本的.ZIP文件。
- 解压缩文件,然后将它们上传到您的网络服务器上的一个空文件夹。
- 打开您的网络浏览器,在地址栏中输入您的 webtrees 网站URL(例如,将
https://www.yourserver.com/webtrees
输入地址栏中)。 - webtrees安装向导将自动启动。
您的第一个任务将是创建一个家谱。
如果您有一个GEDCOM文件,您可以将其导入到树中。如果没有,只需开始输入您的家谱。
有许多配置选项。您可能首先想查看隐私设置。不要过分担心所有其他选项 - 默认设置对大多数人来说都很好。如果您遇到困难,您可以在帮助论坛获得友好的帮助和建议。
升级
升级 webtrees 是快速且简单的。强烈建议您在每次有新版本可用时升级您的安装。即使是微小的 webtrees 版本更新通常也包含大量的错误修复以及界面改进和程序增强。
-
自动升级
webtrees具有自动升级功能。管理员登录时,将收到新版本可用的通知,并可以选择启动自动升级。如果自动升级因某些原因失败,则应执行手动升级。
-
手动升级
- 现在是一个做备份的好时机。
- 从webtrees.net下载可用的最新版 webtrees。
- 当您正在上传新文件时,访问您网站的访客可能会遇到新旧文件的混合。这可能会导致不可预测的行为或错误。为了避免这种情况,创建一个名为 data/offline.txt 的文件。当这个文件存在时,访客将看到“网站不可用 - 请稍后再来”的消息。
- 解压 .ZIP 文件,并将文件上传到您的 Web 服务器,覆盖现有文件。
- 删除文件 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,您需要复制以下内容
-
webtrees/data 文件夹中的文件。
-
数据库中的表。如 phpMyAdmin 这样免费可用的工具允许您一键完成此操作。或者,您也可以通过运行 mysqldump 命令来备份(只需将 [localhost]、[username]、[password] 和 [databasename] 替换为您自己的内容)
mysqldump --host=[localhost] -u [username] -p[password] --databases [databasename] > dump_file.sql
请注意 '-p[password]' 是连在一起的,中间没有空格。
请记住,大多数网络托管服务都不会备份您的数据,这是您的责任。
从备份中恢复
要在新服务器上恢复备份
-
按照 安装 部分的步骤进行,以获取干净的全新安装。
-
用备份副本替换 data 文件夹。
-
使用 phpmyadmin 或在数据库服务器上运行以下命令行来恢复您的 mysql 数据库(只需将 [username]、[password] 和 [databasename] 替换为您自己的内容)
mysql -u [username] -p[password] [database_name] < [dump_file.sql]
-
确认文件 data/config.ini.php 包含正确连接到数据库的信息,并在必要时更新它。