オープンソースCMSの選定
基本的に、これらのシステムはすべて、コンテンツが含まれたデータベースの管理を行い、(通常はWebベースの)入力手段を提供して、テンプレートおよび設定ファイルの指定に従ってデータベースからWebページを出力する。より手の込んだものは、複数の出力フォーマットのほか、アクセス制御やバージョン管理にも対応し、旧来の印刷出版の多忙な過程に見られるような制作の「ワークフロー」に基づいて構築されている。
いつでも独自のCMSを構築することができるが、必ずしもすべてが一緒になったシステムを使う必要はない。依然として手作業でコーディングしたHTMLのスタティックページで個人のブログを公開する少数派の人々がおり、m4
やprocmail
のようなコマンドラインツールを使った自分流のやり方にこだわる人もいる。だが、利用可能なオープンソースのCMSソリューションを使えば、もっと状況は楽になるだろう。
何を求めるのか
CMSを検討するにあたり、答えておくべき最初の質問のいくつかを以下に示す。
- どのようなライセンス形態か?
- 使用できる言語や環境は?
- どのくらい長く使われているか?
- 現在も開発が進められているか?
- どんなユーザが使っているか?
- サポートを受けられるか?
求めているのは、オープンソースライセンスのシステムであって、使っている環境に準拠した要件を備えたものだ。ほとんどのオープンソースCMSパッケージは、GPLのライセンスに従っており、LAMP(Linux、Apache、MySQL、PHP)の環境で動作する。
ほぼすべてのCMSのホームページでは、どんな用途にも使えることを謳っているが、実際に何ができるかを知るには、ほかの人々による利用例を調べるのが一番手っとり早い。CMSを評価するなら、実際にそのCMSを使っているサイトへのリンク先を参照すればよい。たとえば、Mamboの場合、小さな会社による見栄えの良いサイトがたくさん見つかるはずだ。大部分のCMSのホームページには、こうした利用サイトの一覧が用意されているが、Textpatternのサイトにあるようなデザインマガジンは、すべてのCMSにあるわけではない。
続いて、検討対象のCMSソフトウェアの開発が打ち切られていないことを確認する。また、リリースされてからしばらく時間が経過しているか、あるいはバージョン1.0を先週リリースしたばかりの新しいプロジェクトなのかも確認しておくとよい。ビジネスに使う場合は、何らかのサポートが受けられることを確認する。たとえば、Bricolageは、制作の第一人者による商用サポートのしくみを提供している。また、TYPO3 Associationでは、同プロジェクトのソフトウェアをサポートするコンサルタント業者の一覧を用意している。
CMSの選定は、自動車の購入やテキストエディタの選択に似ている。集めた情報を目を通して機能の一覧を眺めれば自分の好みの検討は付くが、すぐにほかのものに目移りしてしまう。実際にいくつかを試してみるまでは、どれが本当に適切なのかを知ることはできないのだ。
幸いなことに、実際にシステムを試す簡単な方法がある。Open Source CMSというサイトを利用すれば、そこにあるオープンソースCMSシステムのどれでも、デフォルトのインストール環境のデモを動作させることができ、2時間ほどかければ、100を超えるシステムすべてのデモにアクセスすることが可能だ。
自分に最適なシステムはどれか
以下に、Linuxにふさわしいオープンソースの選択肢を示す。なお、目的としてありがちなものから順に並べてある。
- 「どうしても外せない機能がある」
選択肢の数を絞るために最初に行うべきことの1つが、SSLやFTPアクセス、または負荷分散といった必要な機能をリストアップすることだ。CMS Matrixには、主要なCMSのすべてについて記録されたそうした機能の全一覧があり、10種類まで並べて比較できる。
もちろん、検討中のシステムに特定の機能が欠けていれば、その穴を埋めるためのほかのソフトウェアを探すことも可能だ。たとえば、phpBBやSMFを利用すれば、フォーラムの機能を追加することができる。
- 「自分の利用している言語が使えるか」
Pythonを好む人にはZopeがふさわしいだろう。また、Wiki好きの人にはTikiwikiのようなWikiスタイルのシステムがあり、そのほかJavaおよびXMLベースのものとしてはOpenCmsというシステムがある。
目当ての言語が使われているCMSを見つけるには、Open Source Content Management System Listを参照すればいい。そこには、IRCチャネルを介してほかの人と協力しながらブログを公開できるDaily Chump Botのような興味深いシステムも含まれている。
- 「あのサイトのような外観にしたい」
すでにお気に入りのサイトがあってその構成や外観を真似ようと考えているなら、それを実行するのは簡単だ。そうしたサイトが利用しているCMSを調べればいい。
Bricolageは、もともとSalon.comのために作られたものだ。The Onionが好きでフォーラムが必要なら、Drupalをチェックすること。
最も古くから使われているCMSパッケージの1つとして、我々の姉妹サイトSlashdotのために書かれたSlashがある。
- 「ただ単にブログが作りたい」
巨大なポータルサイトを1日で構築しようとする人はいないだろう。そうした大規模なシステムにはインストールに関する膨大な要素が含まれ、設定と移行にかなりの時間がかかるためだ。ただし、Blosxomのような例外もわずかながら存在する。このシステムでは、15分もあれば利用を開始できる。インストールが容易でそのまますぐに使える(マニュアルも充実している)という点ではPloneが有名だ。
しかし、簡単なブログを作りたいだけなら、こうしたシステムが持つ連携機能は不要なので、検討中のリストから外してかまわない。それでも、スケジューリング機能は思いがけず役に立つことがある。週末の間、ネットにアクセスしない場合は、前もっていくつかのエントリを書き上げておき、予め定めた時間に自動的にアップできるのだ。
- 「自分にはデザインのセンスがない」
そういう人のために、テンプレートやテーマが存在する。
テンプレートやテーマが用意されたすべてのシステムでは、デザインを選ぶことになるが、そのままで使えるデフォルトの設定もある。きっと魅力的なテンプレートやテーマの揃ったシステムを選びたいと思うだろう。
Joomlaは、数多くのオープンソーステンプレートを用意しており、WordPressは、非常に使いやすいだけでなく、多数のテーマを揃えている。また、Textgardenは、Textpattern用のテンプレートを専門に扱っているサイトだ。
- 「HTMLがわからない」
こういう人にとって嬉しいことに、オープンソースCMSの多くは(少なくともコンテンツの入力時には)タグの知識を必要としない。とりわけ、OpenCmsはテキストからHTMLへの変換が得意で、WebGUIは視覚的にHTMLを編集でき、TextpatternのエディタTextileは書式の選択に重きを置いてテキストからHTMLへのすばらしい変換を行ってくれる。
- 「すべての要素をカスタマイズしたい」
十分なカスタマイズが行えるCMS環境はそれほど多くはない。どのシステムを使って作られたサイトでも、ページレイアウト、サイトの構成、URLのエンコーディングスキームをはじめ、あらゆる機能やコンポーネントが同じなので違いが見えない、と言う人もなかにはいる。
カスタマイズとは、テーマの選択以上のものである。優れたオープンソースのCMSパッケージには、ユーザの役に立つルーチンおよびカスタマイズ項目のライブラリが存在する。非常に守備範囲の広いCMSパッケージの1つ、TYPO3(設定を確定させるまでに数カ月かかることで知られる)には数百という拡張機能がある。また、Drupalにも同様のモジュールが存在する。
- 「ニュースサイト/巨大ポータル/ディスカッションフォーラムの立ち上げを予定している」
CMSのなかには、ある特定の種類のサイトにより適したものがある。たとえば、XOOPSはポータル向きで、Cofaxはオンラインの新聞サイト(Knight-Riddlerサイトにはこのシステムが使われている)の処理に秀でている。Cofaxは新聞スタイルのWeb公開のためのすばらしい機能を備えており、記事を複数の欄に対応付けられるので、1つの記事が複数のカテゴリに対して同等の関連性を持つのに1つの分類に決めなければならない場合に生じる階層構造の欠点をカバーすることができる。
もう1つ、この類のCMSで優れているのが、WYSIWYG方式の編集およびスケジューリングが可能で、複数の作成者およびサーバーに対応しているApacheのLenyaである。
Geeklogは、コミュニティフォーラムを持つニュースブログにふさわしく、Mamboは、より小規模なサイトに適している。印刷版とオンライン版の両方を出版する場合は、Bricolageを調べてみるといい。このシステムは、印刷用のPDFも含めてさまざまなフォーマットの出力が可能だ(同プロジェクトによると、Macworldなど実際の出版業界で多数利用されているという)。
まとめ
CMSの実現にあたっては優れたオープンソースの選択肢が数多くある。こうしたシステムのすべては基本的に同じ原理で動作するが、詳細はかなり違っている。あなたのプロジェクトに適切なものを選ぶには、自分が何を探し求めているかを知り、その必要性と優先順位の折り合いを付けてから、実際にいくつかを試してみることだ。