PythonのWordPressライクなCMS:Mezzanine
オープンソースのCMSというとPHPのWordPressが有名ですが、PythonにもCMSがあります。有名なのとしてMezzanineがあります。
MezzanineはWordPresをかなり意識した管理画面となっており、WordPressユーザーも違和感なく使えると思います。WordPressに比べて標準機能の豊富さをウリにしています。今回はそのMezzanineの導入方法をご紹介します。
Mezzanineの導入
MezzanineはDjangoフレームワークを使って開発されており、導入に必要な環境は以下の通りです。今回はAmazonLinuxにPython3.6で環境構築しました。
Python 2.7 to 3.6
Django 1.8 to 1.10
まず手始めにPython3.6をインストールします。
$ sudo yum install python36-devel python36-libs python36-setuptools
続いてpipをインストールします。
$ sudo /usr/bin/easy_install-3.6 pip
pipからMezzanineをインストールします。
$ sudo pip3 install mezzanine
Mezzanineのmezzanine-projectコマンドを使ってプロジェクトを作成します。プロジェクト名はhatenaにしました。
$ mezzanine-project hatena
作成したプロジェクトのディレクトリへ移動して初期DBの構築を行います。デフォルトではDBはSQLiteが使用されます。設定を変えればMySQLなども使用可能です。
$ cd hatena $ python3 manage.py createdb --noinput
--noinputを指定しないと管理者のメールアドレスなどを対話式に設定していくことになります。
これで作業は完了です。8000ポートでサーバーを起動させてみます。
$ python3 manage.py runserver 0.0.0.0:8000
0.0.0.0:8000の指定は省略できますが、省略した場合はデフォルトではlocalhostでしかWeb画面を閲覧できなくなります。
コンソールにこんな画面が出たら起動成功です。さっそくブラウザからアクセスしてみましょう。
エラーになりました。ホスト名が許可されていないようです。プロジェクト内のsettings.pyを以下のように設定してmezzanineを再起動しました。
ALLOWED_HOSTS = ['サーバーの IPアドレス']
再度ブラウザで表示してみます。
Congratulation ! 表示に成功しました! /admin の管理画面を見てみましょう。初期設定ではユーザー名はadmin、パスワードはdefaultです。
管理画面が表示されました。WordPressとかなり似ています。
記事編集画面はこんな感じです。リッチテキストとして編集できます。
WordPressが標準では対応していないマルチドメイン機能もあります。
サイトの詳細設定。Twitter連携のためのOAuth情報の登録やAkismet連携でスパムブロックなどの設定もここで行うことができます。
次に日本語化させてみましょう。
settings.pyを以下のように書き換えてmezzanineを再起動します。
LANGUAGE_CODE = "ja" LANGUAGES = ( ('ja', _('Japanese')), ) TIME_ZONE = 'Asia/Tokyo' SE_I18N = True
日本語化できました。
管理画面も日本語化できています。
WordPressと同様にテーマやプラグインも適用することができます。こちらは有料テーマ集。テーマはプロジェクト配下のディレクトリ配置だけでは反映されず、settings.pyのINSTALLED_APPSとして登録する必要があります。他のDjangoアプリと同じですね。
Mezzanineの可能性
Mezzanineは標準構成でのオールインワンさを謳っていますが、現状だとプラグインやテーマの豊富なエコシステムを有するWordPressに比べるとかなり出来ることは制限されます。インストールもWordPressに比べるとやや敷居が高めです。
ただ、MezzanineはPython製ですのでプラグインもPythonで書くことができます。Pythonの豊富なライブラリを使うことができるので、自分でCMSをカスタマイズしていく意思があるのであればMezzanineをベースとするのも良い選択肢となるかと思います。
日本語情報はまだ少なく公式マニュアルも一部が日本語化されただけですが、今後日本語情報が増えていくことにも期待したいです。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者:Al Sweigart
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)