Grav とは

Grav は人気のフラットファイル CMS

Grav(グラヴ)はフラットファイル CMS (flat-file CMS) のひとつで,おそらくこの種のフラットファイル CMS の中では最もよく使われているものです。マニュアルの前書きによると,Grav という名前は,GRAVity(重力)から来ています。

Grav - A Modern Flat-File CMS | Grav CMS

米国 Triby Media, LLC が開発しており,MIT ライセンスで公開されている自由ソフトウェアです。

getgrav/grav: Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

フラットファイル CMS とは

フラットファイル CMS (flat-file CMS) とは,その名のデータの保管に一般的な形式のファイルを使う CMS(コンテンツ・マネジメント・システム)のことです。

WordPress や Drupal など,MariaDB/MySQL や PostgreSQL などの RDBMS にデータを保管している CMS に対する用語です。

RDBMS(をはじめとする外部の DBMS)は使用していないため,RDBMS を利用できない環境でも使うことができます。また,サーバのホームディレクトリ上にあるファイルとコンテンツであるデータを統合的に取り扱うことができるほか,ウェブサイトの表示が速い傾向があります。

Grav のメリット・デメリット

WordPress と比較してのメリット

  • RDBMS を必要としない
  • Markdown エディタや 2FA,キャッシュ機能などを標準で備えている
  • 比較的コンパクト

標準状態(Grav Core + Admin Panel)でもプラグインなしの WordPress を大きく超える機能を持ちつつ,WordPress よりコンパクトです。

WordPress と比較してのデメリット

  • RDBMS を使わないぶん信頼性は低い
  • 自動(バックグラウンド)アップデート機能はない
  • プラグイン・テーマが限られている
  • 操作がわかりにくい

もし常にフラットファイルのほうが良いのであれば RDBMS は存在しません。RDBMS が必要になる場面,すなわち多くのデータの動的なやりとりが必要な場面やより高い信頼性が求められる場面には,フラットファイル CMS は適しません。

また,もともと CLI のプログラムにプラグインとして GUI を被せる作りになっていることもあり,設定項目やワークフローは雑然としています。また,ビルトインの自動アップデート機能はないので,WordPress のようにほぼ放置で運用するということはできません。

他のフラットファイル CMS と比較してのメリット

  • Web UI でのアップデートに対応している
  • セキュリティ面で優れている
  • 機能が豊富
  • プラグイン・テーマが豊富
  • 充実した CLI

Grav はフラットファイル CMS 界の巨人で,圧倒的な機能を持ちます。

マイナーな CMS は脆弱性の温床になりがちですが,Grav では比較的多いであろう利用者数の割に脆弱性の報告は少なめで,セキュリティ関連機能も充実しています。セキュリティ面でもある程度安心して使えるシステムなのではないかと思います。

他のフラットファイル CMS と比較してのデメリット

  • 巨大で複雑

他のフラットファイル CMS では Web UI を含めても 10 MB 以内のものが多い中で,Grav Core + Admin Panel 1.7.38 の展開後サイズは 42 MB もあります。WordPress 6.1.1 でも 65 MB ですから,なかなかのサイズです。

静的サイトジェネレータと比較してのメリット

  • 一般的なホスティングサービス上で機能が完結する
  • ウェブ UI でコンテンツを編集できる
  • 動的なコンテンツを利用しやすい

近年はフラットファイル CMS よりも静的ファイルジェネレータに注目が集まっていますが,セットアップやワークフローという点についていえば,WordPress のような CMS よりむしろ大掛かりです。

フラットファイル CMS であれば,それほど知識のない人にも利用しやすいかと思います。

静的サイトジェネレータと比較してのデメリット

  • セキュリティやパフォーマンスで劣る

静的サイトジェネレータがセキュリティやパフォーマンスの点で究極の形であるのに対して,フラットファイル CMS には多くの妥協があります(もちろん,悪い面だけでなく良い面も折衷されているのですが)。アクセス可能な界面を持つサーバの PHP プログラムという点では,本質的には WordPress と変わりません。

WordPress が向かない場面で輝く CMS

率直に言って,WordPress とどちらを選ぼうかと悩むような場面では,WordPress を選んだほうが良いことがほとんどかと思います。

一方で,WordPress を利用できない,またはしたくないような場面には,Grav は素晴らしい選択肢になります。

すなわち,ホスティングプランの制限などで,新しく作りたいサイトのために専用のデータベースを作成できない場合です。

データベースがひとつでも,マルチサイト機能を有効化するかレコードのプレフィックスで分けるかすることで複数の WordPress インスタンスを同居させることはできますが,バックアップは面倒になります。また,通常データベースの大きさには制限があり,ひとつのデータベースに多くのサイトを同居させるとそれに引っかかる可能性もあります。

RDBMS を使わない Grav であれば,ややこしいことをしなくても,単にファイルをアップロードするだけで手軽に新しいサイトを追加することができます。Grav で複数のサイトを作る予定の場合,マルチサイト構成にも対応しているようです。

また,RDBMS を利用できない代わりに大容量なホスティングプランが用意されている場合があり,それを選択することで,CMS の利便性を享受しつつずっと大きなデータ領域を活用するができるはずです。

以上のように,WordPress とどちらを選ぶかというよりも,WordPress が不向きな場面を補うことに向いた CMS であると言えます。