什么是 Grav CMS?无数据库的平面文件 CMS

Grav 采用与 WordPress 或 Joomla 完全不同的方法 — 它根本不使用数据库,而是直接将内容存储为服务器上的 Markdown 文件。本指南解释了"平面文件 CMS"的工作原理、其优势和局限性,以及它适合的项目类型。

Grav 和平面文件 CMS 概念

Grav 于 2014 年由 RocketTheme 团队推出,用 PHP 构建。与众不同之处在于它不需要 MySQL 或任何数据库。每个内容页面都存储为 Markdown 文件,配置使用 YAML 文件,主题使用 Twig 构建。整个网站就是一个"文本文件文件夹",您可以直接读取和编辑。

没有数据库的网站如何工作

典型的 CMS(如 WordPress)必须在每次用户打开页面时从 MySQL 数据库提取内容。Grav 直接从文件系统读取 Markdown 文件并缓存结果。这消除了数据库查询步骤,因此不经常更改内容的页面响应速度很快 — 备份很容易:只需复制整个文件夹即可。

不依赖数据库的优势

Grav 与其他流行 CMS 选项的比较

选择正确的 CMS 取决于项目的性质和团队的技能。下表总结了主要差异。

CMS 数据库 最适合 插件生态
Grav 不需要 投资组合、文档、着陆页 小但精心挑选
WordPress 需要 MySQL 博客、商店、通用网站 非常大(60,000+ 个插件)
Joomla 需要 MySQL 企业网站、中型门户 中等
Hugo / Jekyll 无(静态生成器) 开发者博客、文档 小;需要 CLI 知识

使 Grav 不适合每项工作的局限性

平面文件方法有其权衡。Grav 的社区远小于 WordPress,因此可用的插件和主题较少。Grav 没有内置购物车,因此不适合在线商店。一旦内容增长到数千或数万个页面,从文件系统读取文件会比索引数据库更慢 — 因此 Grav 更适合小型到中型网站。

在托管中分 3 步安装 Grav

由于 Grav 是不需要数据库的 PHP 应用程序,在共享主机上安装非常容易。首先,下载 Grav 包(建议使用包含 Admin 插件的版本)。其次,通过 DirectAdmin 文件管理器将 ZIP 上传并提取到您想要的文件夹中。最后,打开网站 URL 创建您的管理员账户 — 然后您可以开始编写内容。

兼容性:Grav 只需要带有标准扩展的 PHP 8.x。AsiaGB 托管在 SSD 上支持 PHP 8.2 / 8.3,因此无需数据库配置即可立即运行 Grav。

Grav 中的文件结构和内容编写

在 Grav 中,每个页面都是包含 Markdown 文件的文件夹。文件夹层次直接映射到 URL 结构。例如,user/pages/01.home/ 处的文件夹提供主页,user/pages/02.about/ 提供 /about。

每个文件夹内的内容文件名为 default.md(或以您想要使用的模板命名)。它以 YAML 前置块开始,用于设置标题、描述和其他页面选项,然后是用标准 Markdown 编写的内容。基本示例如下所示:

---
title: 关于我们
description: 了解我们的公司
---

## 关于我们

此页面内容以标准 **Markdown** 编写。

这种方法的主要优势是即时 Git 兼容性。每个页面的每次更改都可以用 git log 追踪,用 git revert 回滚 — 这些是开发人员已经知道的工具。迁移或协作时无需导出和导入数据库转储。

Grav 中的关键插件和主题

虽然 Grav 生态系统比 WordPress 小,但可用的插件涵盖了大多数项目的核心需求。所有插件都通过 Grav 包管理器(GPM)从命令行或通过 Admin Panel 安装。

维护和更新 Grav

Grav 的更新过程比数据库驱动的 CMS 平台更简单,因为没有数据库迁移脚本需要担心。可以直接从 Admin Panel 或通过命令行上的两个 GPM 命令应用更新。

bin/gpm selfupgrade   # 更新 Grav 核心
bin/gpm update        # 更新所有插件和主题

由于每个文件都是纯文本,备份很简单。只需存档 user/ 文件夹,其中包含所有内容、主题、插件和配置。如果您已经在使用 Git,备份是自动的 — 每次提交都保留网站在该时刻的完整状态,使恢复快速可靠。

Grav 最擅长的是什么

Grav 非常适合投资组合、着陆页、文档网站和小公司网站,其内容不经常更改 — 特别是对于熟悉 Markdown 并希望通过 Git 管理网站的团队。需要成员系统、商店或大量内容的工作应选择专门为此设计的 CMS。

常见问题

Grav 能建立在线商店吗?

这不是理想选择 — Grav 没有内置购物车。要销售产品,请使用 WooCommerce 或 OpenCart。

没有数据库的网站会很慢吗?

对于小型到中型网站,Grav 通常更快,因为它跳过了数据库查询步骤。对于拥有数万个页面的网站,数据库系统更有优势。

它需要很多技术知识吗?

对 Markdown 和 YAML 有一些了解会很有帮助,但配置 Admin 插件的版本提供了基于网络的管理界面,使其更易于使用。

使用 PHP 8.x 托管开始使用 Grav

托管从 ฿500/年 · PHP 8.2/8.3 · SSD · 无需数据库设置

查看托管计划