汎用CMSとフレームワークの狭間で吠えるWolf CMS

Ruby on Rails上に構築されたRadiant CMSをご存じだろうか?PHPの世界では、あまり知られていないかもしれないが、Rubyの世界では誰もが知っているCMSのひとつだ。

デモサイトなどで管理画面に入ってもらうと、Radiant CMSが、恐ろしくシンプルな作りになっているのが分かる。

操作の感覚は、フレームワークを使ってサイトを構築している感じに近い。高度な機能をプラグインひとつで実現できてしまうWordPressやDrupalのようなCMSとは真逆のコンセプトとなっている。

Radiant CMSのPHP版クローンFrog CMSとWolf CMS

実は、このRadiant CMSには、Frog CMSというPHP版のクローンが存在する。さらにこのFrog CMSからフォークして誕生したのが、Wolf CMSだ。

上記は、Wolf CMSの管理画面だが、Radiant CMSと比較すると、同じコンセプトで設計されているということが見て取れる。ただ、Wolf CMSは、すでにRadiant CMSのPHP版クローンという範疇を越え、独自の進化の道を歩き始めている。

Wolf CMSのインストール

ということで、さっそくWolf CMSをインストールしてみる。Wolf CMS用のデータベースアカウントは、発行済みということで話を進める。

先ずは、Wolf CMSの公式サイトから安定版(Stable Download)をダウンロードする。Wolf CMSは、GPL3.0の基に配布されている。

ダウンロードしたフォルダを解凍すると、wolfcmsというフォルダが出来上がる。このフォルダのなかにあるwolfというフォルダ内のappフォルダは、次のようなファイルとフォルダで構成されている。

models、views、controllersという3つのフォルダを見れば、Wolf CMSがMVC型のフレームワーク上に構築されているということが分かる。Radiant CMSが代表的なMVC型のフレームワークRuby and Rails上に構築されていたのだから、ある意味当然かもしれないが、それでもこれはWolf CMSのアドバンテージのひとつだ。

これらのファイルとフォルダをサーバー内のブラウザからアクセスできる場所に置き、ブラウザからアクセスするとインストールが始まる。なお、Wolf CMSは、MySQL、SQLite3、PostgreSQLの3つのデータベースに対応しているが、今回は、MySQLでWolf CMS用のデータベースアカウントを発行したものとして話を進めて行く。

Wolf CMSをインストールしようとしているUbuntuローカルサーバーにはMySQLだけしかセットアップされていないので、MySQLだけがtrueになっている。データベースは、ひとつだけあれば良いので、続くふたつのデータベース(SQLite3とPostgreSQL)はfalseのままで先に進む。

続くConfig file is writableがfalseになっているが、これはconfig.phpファイルに書き込み権限を与えよということ。FTPクライアントやchmodコマンドによってパーミッションを646又は666にセットする。

同じくPublic folder is writableもfalseなので、publicフォルダに書き込み権限を与える。FTPクライアントやchmodコマンドによってパーミッションを757又は777にセットする。

最後の行のClean URLs support availableは、_.htaccessというファイルを.htaccessにリネームすれば解決する。

以上の設定が完了すれば、次に進むことができる。次はデータベースの設定だ。

前もって発行していたデータベースアカウントを基に、データベースユーザー名(Database user)とパスワード(Database password)、データベース名(Database name)などを入力する。管理者権限を持つユーザー名(デフォルトではAdmin)もここで入力する。

また、URL sufficeの欄に、デフォルトで.htmlが入っているが、これはで静的ページの末尾に.htmlを付与する設定になっている。この欄を空欄にすると、静的ページの末尾に.htmlが付かないという設定になる。その下のUse clean URLsのチェックマークを入れたままにしておくと、動的ページで?マークが表示されない設定となる。

最後に、Install Now!ボタンを押す。入力内容に問題なければインストールはこれで完了となる。

なお、管理者用の初期パスワードはWolf CMSによって自動発行されるので、インストール結果通知ページに書かれたパスワードをしっかりメモしておくこと。

初期設定と日本語化

インストールが完了したら、さっそく管理画面にログインしてみる。ここで、config.phpファイルの書き込み権限を削除するようにとの指示が出ると思うので、FTPクライアントやchmodコマンドによってパーミッションを644又は755に戻しておく。

ログインに成功したら、忘れないうちにパスワードの変更を行う。ユーザータブをクリックして、自分のユーザー名を選択すれば、ユーザー編集ページに行き着く。ここでは、パスワードの設定以外に、権限や言語の設定などができる。ドロップダウンメニューでJapaneseを選択すれば管理画面も日本語化される。

WolfCMSInst05

ちなみに、日本語化ファイルは、wolf/app/i18nフォルダ内にある。ファイル名はja-message.phpで、このファイルを編集すれば日本語訳を簡単に変更できる。

フレームワーク感覚に近い汎用CMSとは

Wolf CMSの公式サイトにDiscover(発見)というページがあって、ここにWolf CMSはどういうユーザーを想定して作られているかという説明がある。このページの最後はこんな言葉で締めくくられている。

In short: PHP skills are expected, but not required.

「PHPのスキルがあれば望ましいが、必須というわけではない」といった意味で、多少曖昧に聞こえるかもしれないが、Wolf CMSの立ち位置をうまく説明している。

ほとんどの汎用CMSは、ユーザーにプログラミングを意識させないというコンセプトで設計されている。これによって、ユーザーはコンテンツの作成や管理だけに集中できるというわけだが、プラグインによる機能拡張では補いきれなくなって、独自のカスタマイズが必要になったとき、ベースとなる言語(例えばPHPやRuby)以外に、CMS独自のマクロや関数などを習得しなければならなくなることも少なくない。

これに対してWolf CMSの場合は、サイト構築の段階でこそ、PHPのスキルやフレームワークに対する知識が少しだけ要求されるものの、その後は、カスタマイズの程度によってPHPのスキルやHTML、CSS等の汎用的な知識を積み上げて行くだけでよく、余分な学習はほとんど必要ない。

もちろん、Wolf CMSもプラグインによって機能拡張ができる(まだまだWordPressやDrupalなどとは比較にならないが)ので、汎用CMS的な使い方に徹することも可能だ。

つまり、この記事の表題のとおり、Wolf CMSは汎用CMSとフレームワークの狭間で、ひとり吠える狼といった内容を持つユニークでポテンシャルの高いCMSなのだ。