Docker環境

a-blog cmsを動かすためのDocker環境を立ち上げます。

利用する Docker イメージ


mysql 公式イメージをそのまま使用します
jwilder/nginx-proxy 複数環境を立ち上げる為のリバースプロキシです
atsu666/ioncube  ioncubeLoaderがインストール済みのphp-apatch環境です
atsu666/acms PHP8.0 以上の php-apatch環境です( ioncubeLoaderはインストールされていません。Ver.3.0以上での使用を推奨)

利用可能なPHP

atsu666/ioncube のPHP環境は以下のバージョンが利用できます。


PHPバージョン イメージ
7.3 atsu666/ioncube:7.3
7.2 atsu666/ioncube:7.2
7.1 atsu666/ioncube:7.1
7.0 atsu666/ioncube:7.0
5.6 atsu666/ioncube:5.6
5.5 atsu666/ioncube:5.5
5.4 atsu666/ioncube:5.4
5.3 atsu666/ioncube:5.3

※ a-blog cms Ver.3.0以上ではionCubeLoaderが不要になりましたが、PHP7.2.5の環境でVer.3.0以上をお使いの場合は、引き続き atsu666/ioncube:7.2をお使いください

atsu666/acms のPHP環境は以下のバージョンが利用できます。


PHPバージョン イメージ
8.3 atsu666/acms:8.3
8.2 atsu666/acms:8.2
8.1 atsu666/acms:8.1
8.0 atsu666/acms:8.0

※ ioncubeLoaderはインストールされていません。ioncubeLoaderが不要になったa-blog cms Ver.3.0以上の環境での使用を想定しています。

docker-compose.yml

以下、docker-compose.yml の例になります。

version: '3'
# service
services:
    # mysql
    mysql:
        image: mysql:8.0.30
        ports:
            - "3306:3306"
        environment:
            MYSQL_ROOT_PASSWORD: root
        command: --innodb-use-native-aio=0
    # proxy
    proxy:
        image: jwilder/nginx-proxy:0.9.0
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock:ro
        ports:
            - "80:80"
    # www
    www:
        image: atsu666/acms:8.1 # phpのバージョンにあったものを指定
        privileged: true
        volumes:
            - ./www:/var/www/html # host, guest間のファイル同期
            - /etc/localtime:/etc/localtime:ro
        links:
            - mysql:mysql
        environment:
            - VIRTUAL_HOST=acms.lab,www.acms.lab # host名を指定
            - APACHE_DOCUMENT_ROOT=/var/www/html # ドキュメントルートを指定

M1/M2 Mac(arm64)で atsu666/ioncube:5.5, atsu666/ioncube:5.4, atsu666/ioncube:5.3 を使用する場合

「atsu666/ioncube:5.5|5.4|5.3」 は、arm64アーキテクチャに対応していないので、docker-compose.yml を修正する必要があります。 platform: linux/amd64 を追加することによって、M1/M2 Mac 環境でも動作するようになります。

www:
        image: atsu666/ioncube:5.5
        platform: linux/amd64    # この行を追加
        privileged: true
        volumes:
            - ./www:/var/www/html
            - /etc/localtime:/etc/localtime:ro
        links:
            - mysql:mysql
        environment:
            - VIRTUAL_HOST=acms.lab,www.acms.lab
            - APACHE_DOCUMENT_ROOT=/var/www/html

host, guest間のファイル同期

ローカル開発環境なので、host側のファイルを変更したら、すぐに guest(dockerコンテナ)のファイルも書き換わってほしいです。それがvolumesの設定になります。

host:guest の 書式でパスを記述してください。

VIRTUAL_HOSTの設定

リバースプロキシの jwilder/nginx-proxyを導入していますので重要な設定になってきます。jwilder/nginx-proxy が port: 80 で受け、アクセスされたURLから、各コンテナに設定されているVIRTUAL_HOSTに振り分けてくれます。これにより、複数のwebコンテナを立ち上げても、portを変えたりすることなく、簡単に共存できるようになります。

VIRTUAL_HOSTの設定は簡単で、environment 設定に VIRTUAL_HOSTを設定するだけです。上の例では acms.lab とwww.acms.lab を設定しています。

最後にhostsファイルを編集し acms.lab でアクセスできるようにしましょう。

起動

$ cd /path/to/docker  # docker-compose.ymlがあるディレクトリに移動
$ docker-compose up -d

Dockerコンテナのmysqlを利用する

データベースをdockerのmysqlを利用する場合、上記の例だと3306ポートをマッピングしていますので、dockerを動かしている環境のhostのIPアドレスをデータベースのhostに設定してください。

* 上記で接続できない場合は、 データベースホストに mysql を設定してみてください。これは「docker.compose.yaml」で設定したリンク名になります。

php5.6 - php7.0 の環境の場合、Ver. 2.11.15, Ver. 2.11.16 で重大な問題がみつかりました。

php5.6 - php7.0 の環境で Ver. 2.11.15 または Ver. 2.11.16 を利用している場合、いくつかの機能が動作しない重大な問題がみつかりました。

問題の内容

Ver. 2.11.15 で php7.4 に対応したことにより、a-blog cms で利用してるライブラリもアップデートされたのですが、 一部ライブラリでphp5.6 - php7.0 で動作しなくなるものが含まれておりました。

現在わかってる段階で以下機能が動作しません。

  • メディアのアップロード
  • フォーム
  • チェックリスト

対象

a-blog cms Ver. 2.11.15 または Ver. 2.11.16 を利用していて、phpのバージョンが php5.6 - php7.0 の場合

対応策

a-blog cms Ver. 2.11.15 または Ver. 2.11.16 をお使いで、php5.6 - php7.0 をお使いの場合は、お手数ですが以下対策2つのうち、どちらかの対応をお願いいたします。

  • a-blog cms Ver. 2.11.17にアップデート
  • サーバーのphpのバージョンをphp7.1 - php7.4 にアップデートし、 ionCube Loaderと a-blog cms の パッケージを php7.1 - php7.4 のものに置き換え

この度はご迷惑をお掛けしてしまい申し訳ございません。 今後ともa-blog cmsをよろしくお願いいたします。

フィールドモジュール

フィールドモジュールは、デフォルトで用意されている変数とカスタムフィールドのデータを出力するモジュールです。表示するフィールドの情報は、指定していればモジュールIDまたはctx、指定していなければ現在閲覧しているページのURLコンテキストが適用されます。

次の例では、カテゴリーごとに紐付けされたカスタムフィールドの画像(headimage)を表示します。紐付けされた画像データがなければ、:veilブロックによって表示されなくなります。

例:カテゴリーのカスタムフィールドを表示する

<!-- BEGIN_MODULE Category_Field -->
 <!-- BEGIN headimage:veil -->
  <img src="{headimage@path}" width="" height="" alt="">
 <!-- END headimage:veil -->
<!-- END_MODULE Category_Field -->
Blog_Field ブログのフィールド情報を出力 変数表 ソース
例)<!-- BEGIN_MODULE Blog_Field -->
<!-- END_MODULE Blog_Field -->
Category_Field カテゴリーのフィールド情報を出力 変数表 ソース
例)<!-- BEGIN_MODULE Category_Field -->
<!-- END_MODULE Category_Field -->
Entry_Field 記事のフィールド情報を出力 変数表 ソース
例)<!-- BEGIN_MODULE Entry_Field -->
<!-- END_MODULE Entry_Field -->
User_Field ユーザーのフィールド情報を出力 変数表 ソース
例)<!-- BEGIN_MODULE User_Field -->
<!-- END_MODULE User_Field -->
Module_Field モジュールIDのフィールド情報を出力(Ver.2.6.1より追加) ソース
例)<!-- BEGIN_MODULE Module_Field -->
<!-- END_MODULE Module_Field -->

2020年7月 日本語ウェブサイトCMS利用率ランキング20

現在、W3Techs.com の日本語サイトの CMS 利用状況のランキングは残念ながら 上位3位までしか表示されなくなっています。今回「日本語のサイト CMS 利用率ランキング」の全てのデータを入手し、一部のデータをブログに公開する許可もいただきましたので紹介したいと思います。


CMS シェア で検索する

CMS シェア のキーワードで Google を利用して検索すると以下のような記事がヒットします。

どのデータも W3Techs.com のデータを利用して記事を書かれています。 以前から CMS のシェアを知るための情報としては、W3Techs.com が一番の情報源になっているようです。

W3Techs.com , 14 January 2015

2015年の頃は、上位10位までという時期もあり、その頃のキャプチャ画像が保存されていましたので、当時のデータとして紹介しておきます。


2020年7月 日本で利用されている CMS は

今回、W3techs.com からの情報としてベスト20を紹介します。

グラフにしてみると WordPress のシェアが高すぎ(83.288%)ありますので、それを全部入れるとグラフの他が分からないことになってしまいますので、25% までの表示となっております。


Percentages of websites using various content management systems among the sites that use Japanese


Ranking CMS Name Market Share
1 WordPress 83.288%
2 ( Adobe Dreamweaver ) 2.547%
3 EC-Cube 2.182%
4 ( JustSystems Homepage Builder ) 1.514%
5 Livedoor Blog 1.478%
6 Color Me Shop 1.362%
7 MakeShop Japan 1.316%
8 Jimdo 0.796%
9 Shopify 0.503%
10 Drupal 0.503%
11 Wix 0.395%
12 ( WebSphere Studio )旧Homepage Builder 0.383%
13 a-blog cms 0.369%
14 XOOPS 0.358%
15 movable type 0.346%
16 Concrete5 0.277%
17 Joomla 0.247%
18 DotNetNuke 0.213%
19 Hugo 0.157%
20 Quick Homepage Maker → HAIK 0.157%

※ 2020年7月21日の W3Techs.com から提供されているデータになります。
※ ( )は CMS ではなくエディタであることから除外を検討しています。
太字は国産CMSを表しています。

その他の CMSシェアの情報源として

W3Techs.com 以外の国産CMSシェアの情報源としては DataSign 社の DataSign Report 上場企業 CMS調査 2019年6月版 が有益かと思います。 こちらをネタ元にしたブログの記事も多く見かけますが、2020年版のデータを楽しみにしています。