【Python製CMS】Mezzanineのインストール

【Python製CMS】Mezzanineのインストール ツール

「強固なセキュリティのCMSをもとにサイトを制作したい」
「Python製のCMSを探している」

このような場合には、Mezzanineがオススメです。
この記事では、Python製CMSのMezzanineについて解説しています。

本記事の内容

  • Mezzanineとは?
  • Mezzanineのシステム要件
  • Mezzanineのインストール
  • Mezzanineの動作確認

それでは、上記に沿って解説していきます。

Mezzanineとは?

Mezzanineは、Python製のCMSです。
DjangoをWebアプリケーションフレームワークとしています。

簡単に言うと、MezzanineはWordPressのようなモノです。
WordPressは、PHPで開発されています。

それに対して、MezzanineはPython製です。
あと、以下の点でも違いがあります。

WordPressは、プラグインを追加する前提です。
プラグインを追加することにより、機能追加を実現しています。

それとは異なり、Mezzanineは機能追加の必要はありません。
デフォルトで必要となる機能を提供しています。

機能が足りない場合は、自分で開発してくれというスタンスです。
その意味では、WordPressのように開放された感じではありません。

どちらかと言うと、閉じたような仕組みです。
アップル製品のような印象を受けます。

だからこそ、セキュリティはその分だけ強固と言えるでしょう。

以上、Mezzanineについて説明しました。

Mezzanineのシステム要件

現時点(2022年6月末)でのMezzanineの最新バージョンは、6.0.0となります。
この最新バージョンは、2022年5月12日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。

  • Python 3.7
  • Python 3.8
  • Python 3.9
  • Python 3.10

これは、完璧なサポート状況と言えます。
Mezzanineは、以下のPython公式開発サイクルに完全に準じています。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

ここまで適切に対応するライブラリは、なかなかありません。
実際は、サポート対象外でも動くのは動きます。

だから、実質的にはサポート状況はそれほど重要なことではありません。
しかし、Python公式開発サイクルに合わせるという姿勢が素晴らしいです。

こういう姿勢のプロジェクトチームであれば、それだけで安心できます。
よって、Mezzanineは安心して使い続けることが期待できます。

少し話が逸れましたが、システム要件をまとめておきます。
Mezzanineのシステム要件は、Python 3.7以降だけと言えます。

以上、Mezzanineのシステム要件を説明しました。
次は、Mezzanineのインストールを説明します。

Mezzanineのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.10.2

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.1.2
setuptools 62.6.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Mezzanineのインストールです。
Mezzanineのインストールは、以下のコマンドとなります。

pip install Mezzanine

Mezzanineのインストールは、それほど時間はかかりません。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package                 Version
----------------------- -----------
asgiref                 3.5.2
beautifulsoup4          4.11.1
bleach                  5.0.1
certifi                 2022.6.15
chardet                 5.0.0
charset-normalizer      2.0.12
Django                  4.0.5
django-contrib-comments 2.2.0
filebrowser-safe        1.1.1
grappelli-safe          1.1.1
idna                    3.3
Mezzanine               6.0.0
oauthlib                3.2.0
Pillow                  9.1.1
pip                     22.1.2
pytz                    2022.1
pytz-deprecation-shim   0.1.0.post0
requests                2.28.0
requests-oauthlib       1.3.1
setuptools              62.6.0
six                     1.16.0
soupsieve               2.3.2.post1
sqlparse                0.4.2
tinycss2                1.1.1
tzdata                  2022.1
tzlocal                 4.2
urllib3                 1.26.9
webencodings            0.5.1
wheel                   0.36.2

それなりに多くのパッケージに依存しています。
Djangoに依存していることが確認できます。

以上、Mezzanineのインストールを説明しました。
次は、Mezzanineの動作確認を説明します。

Mezzanineの動作確認

まず、次のコマンドが動くかどうかを確かめます。

$ mezzanine-project --version
4.0.5

なお、バージョンはMezzanineではなくDjangoのバージョンです。
Mezzanineは、WebアプリケーションフレームワークにDjangoを採用しています。

このコマンドが動けば、Mezzanineのプロジェクトを作成できます。
次のコマンドでプロジェクトを作成します。

 mezzanine-project プロジェクト名(ディレクトリ名)

今回は、「test_project」という名前のプロジェクトを作成します。

$ mezzanine-project test_project

実行したら、次のような中身を持ったディレクトリが作成されます。

対象ディレクトリに移動します。

$ cd test_project

プロジェクトを起動する前に、DB初期化を行います。
デフォルトであれば、SQLiteをデータベースに利用します。

python manage.py createdb

実行すると、次のように表示されます。

$ python manage.py createdb
Operations to perform:
  Apply all migrations: admin, auth, blog, conf, contenttypes, core, django_comments, forms, galleries, generic, pages, redirects, sessions, sites
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK

〜省略〜

A site record is required.
Please enter the domain and optional port in the format 'domain:port'.
For example 'localhost:8000' or 'www.example.com'. 
Hit enter to use the default (127.0.0.1:8000): 【Enter】

Creating default site record: 127.0.0.1:8000 ...


Creating default account ...

Username (leave blank to use 'ログイン中user'): ■■■【Enter】
Email address: 【Enter】
Password: ●●●【Enter】
Password (again): ●●●【Enter】
Superuser created successfully.
Installed 2 object(s) from 1 fixture(s)

Would you like to install some initial demo pages?
Eg: About us, Contact form, Gallery. (yes/no): yes【Enter】

Creating demo pages: About us, Contact form, Gallery ...

Installed 16 object(s) from 3 fixture(s)

途中でアカウント情報(サイト管理者)を問われます。
上記で【Enter】と記載してる箇所です。

  • Username(デフォルトも可)
  • Password
  • Would you like to install some initial demo pages?

最低でも上記は入力しましょう。
それ以外は、デフォルト(そのままEnter)で良いでしょう。

DB初期化が完了したら、プロジェクト(サイト)を起動します。
そのコマンドは、以下となります。

python manage.py runserver

実際に実行した結果は、以下。

$ python manage.py runserver
Watching for file changes with StatReloader
              .....
          _d^^^^^^^^^b_
       .d''           ``b.
     .p'                `q.
    .d'                   `b.
   .d'                     `b.   * Mezzanine 6.0.0
   ::                       ::   * Django 4.0.5
  ::    M E Z Z A N I N E    ::  * Python 3.10.2
   ::                       ::   * SQLite 3.33.0
   `p.                     .q'   * Linux 5.8.0-63-generic
    `p.                   .q'
     `b.                 .d'
       `q..          ..p'
          ^q........p^
              ''''

Performing system checks...

System check identified no issues (0 silenced).
June 28, 2022 - 09:47:55
Django version 4.0.5, using settings 'test_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[28/Jun/2022 09:47:58] "GET / HTTP/1.1" 200 6907
[28/Jun/2022 09:47:58] "GET /static/css/mezzanine.css HTTP/1.1" 200 10785
[28/Jun/2022 09:47:58] "GET /static/css/bootstrap-theme.css HTTP/1.1" 200 21368
[28/Jun/2022 09:47:58] "GET /static/css/bootstrap.css HTTP/1.1" 200 132546
[28/Jun/2022 09:47:58] "GET /static/js/bootstrap-extras.js HTTP/1.1" 200 2841
[28/Jun/2022 09:47:58] "GET /static/js/bootstrap.js HTTP/1.1" 200 60681
[28/Jun/2022 09:47:58] "GET /static/mezzanine/js/jquery-3.4.1.js HTTP/1.1" 200 280364
[28/Jun/2022 09:47:58] "GET /static/img/favicon.ico HTTP/1.1" 200 318

上記のように表示されれば、指定されたURLにアクセスします。
「Congratulations!」と祝ってくれています。

管理画面にログインするためには、次のリンクをクリックします。

クリックすると、次のようなログインフォームが表示されます。

ここでは、DB初期化の際に入力したアカウント情報を用います。
Interfaceは、「Admin」のままでよいです。

ログインに成功すると、次のような画面が表示されます。
これは、Mezzanineの管理画面です。

あとは、管理画面で設定していくことになります。
Mezzanineの動作確認としては、これでOKでしょう。

以上、Mezzanineの動作確認を説明しました。

タイトルとURLをコピーしました