Ver. 3.0.20、Ver. 2.11.56 フィックスバージョンリリースのお知らせ


2022年12月16日にリリースした Ver. 3.0.20, Ver. 2.11.56 の修正内容についてご紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

Ver. 3.0.20 リリースノート

不具合修正

  • CMS-6217 関連エントリーグループの設定がモジュールID選択肢でずれる場合がある問題を修正
  • CMS-6219 メールアドレス未認証のユーザーがパスワードリセットを行うと、メールアドレス未認証のままログインできてしまう問題の修正
  • CMS-6221 Bannerモジュールで画像サイズが取得できず、PHPエラーが出る可能性を修正
  • CMS-6223 バックアップファイルなどのダウンロードでメモリ不足でダウンロードできない場合がある問題を修正
  • CMS-6225 タグフィルター、タグクラウド設定の項目の順番をわかりやすい形に変更
  • CMS-6232 読者権限でログイン中の場合に、プレビュー共有URLで閲覧できない場合がある問題を修正
  • CMS-6236 グローバルエイリアス時のリンクのブログコード設定がおかしくなる場合がある問題を修正
  • CMS-6234 エイリアスのステータスを更新できない問題を修正
  • CMS-6239 フォームで文字コードを ISO-2022-JP に設定すると PHP8.1 でエラーが出る問題を修正
  • CMS-6241 サーバーの制限によって、バックアップが一時領域の容量制限にひっかかり失敗する問題を修正
  • CMS-6242 パスワード再発行メール送信時に、入力したメールアドレスのアカウントが存在しない場合はメールアドレス認証済みかどうかのチェックを行わないように修正
  • CMS-5793 Web Storageによるエントリ一復元機能が機能していない問題を修正
  • CMS-6245 タイムマシーンモードで、時刻を一度変更してしまうと、タイムマシンモードを終了しないかぎり、その後の日時変更が効かなくなる問題を修正
  • CMS-6251 各テーマの開発ビルド時scssのsourcemapの行数がずれる問題を修正
  • CMS-6137 タグにエントリー編集画面では追加できるがタグ編集画面から編集すると保存できない文字列がある問題を修正

Ver. 2.11.56 リリースノート

不具合修正

  • CMS-6218 関連エントリーグループの設定がモジュールID選択肢でずれる場合がある問題を修正
  • CMS-6220 メールアドレス未認証のユーザーがパスワードリセットを行うと、メールアドレス未認証のままログインできてしまう問題の修正
  • CMS-6222 Bannerモジュールで画像サイズが取得できず、PHPエラーが出る可能性を修正
  • CMS-6224 バックアップファイルなどのダウンロードでメモリ不足でダウンロードできない場合がある問題を修正
  • CMS-6233 読者権限でログイン中の場合に、プレビュー共有URLで閲覧できない場合がある問題を修正
  • CMS-6237 グローバルエイリアス時のリンクのブログコード設定がおかしくなる場合がある問題を修正
  • CMS-6235 エイリアスのステータスを更新できない問題を修正
  • CMS-6240 フォームで文字コードを ISO-2022-JP に設定すると PHP8.1 でエラーが出る問題を修正
  • CMS-6243 パスワード再発行メール送信時に、入力したメールアドレスのアカウントが存在しない場合はメールアドレス認証済みかどうかのチェックを行わないように修正
  • CMS-6041 Web Storageによるエントリ一復元機能が機能していない問題を修正
  • CMS-6246 タイムマシーンモードで、時刻を一度変更してしまうと、タイムマシンモードを終了しないかぎり、その後の日時変更が効かなくなる問題を修正
  • CMS-5704 タグにエントリー編集画面では追加できるがタグ編集画面から編集すると保存できない文字列がある問題を修正

主なリリースノート内容

CMS-6217 CMS-6218 関連エントリーグループの設定がモジュールID選択肢でずれる場合がある問題を修正

関連エントリーグループが複数設定されている場合、Entry_Summaryなどでの関連エントリー設定で選択肢がずれてしまう可能性がある問題を修正しました。


CMS-6223 CMS-6224 バックアップファイルなどのダウンロードでメモリ不足でダウンロードできない場合がある問題を修正

バックアップファイルのダウンロードなど、大きなファイルのダウンロードで、メモリを多く消費する処理になっていたのを、メモリを多く使わないように修正しました。これにより、バックアップファイルなど大きなファイルダウンロードでエラーとなることが少なくなります。

CMS-6232 CMS-6233 読者権限でログイン中の場合に、プレビュー共有URLで閲覧できない場合がある問題を修正

プロフェッショナル版以上の機能で、ログインしていない人でも、非公開記事を閲覧確認できるプレビュー共有URLで、逆にログインしている場合正しく表示できない場合がある問題を修正し、ログインしている場合でも正しくプレビューできるように修正しました。


CMS-6219 CMS-6220 メールアドレス未認証のユーザーがパスワードリセットを行うと、メールアドレス未認証のままログインできてしまう問題の修正

読者登録で、まだメールアドレス認証が済んでいないユーザーがパスワードリセットを行うとそのままログインできてしまう挙動でした。パスワードリセットでもメールが飛んでメールアドレス認証も同時に満たす形となっているのでセキュリティ的な問題はありませんが、わかりずらい挙動になってしまっているので、メールアドレス未認証の場合は、パスワードリセットができないように修正しました。

CMS-6242 CMS-6243 パスワード再発行メール送信時に、入力したメールアドレスのアカウントが存在しない場合はメールアドレス認証済みかどうかのチェックを行わないように修正

パスワードリセット時に、メールアドレス未認証の場合は専用のメッセージを出していましたが、これをユーザーが存在しない場合、メールアドレス未認証の場合の両方をユーザーが存在しないと見なして、統一のエラーを出すように修正しました。

CMS-6245 CMS-6246 タイムマシーンモードで、時刻を一度変更してしまうと、タイムマシンモードを終了しないかぎり、その後の日時変更が効かなくなる問題を修正

プロ版以上限定機能の、タイムマシーン機能で、指定した日時の表示状態を確認する機能があるのですが、ここで時間について設定をしてしまうと、タイムマシーンモードを終了するまで、日付設定が効かない状態になってしまう不具合を修正しました。


CMS-5793 CMS-6041 Web Storageによるエントリ一復元機能が機能していない問題を修正

jQueryのバージョンアップにより、動作していなかったエントリーの復元機能を動作するように修正いたしました。


CMS-6241 サーバーの制限によって、バックアップが一時領域の容量制限にひっかかり失敗する問題を修正

今までのバージョンだと、CMSのバックアップ機能を利用したとき、圧縮時(zip)に一時領域(/tmp)を使用するのですが、サーバーによっては一時領域に容量制限があるため、バックアップに失敗することが多かったです。そこで今回の修正では、デフォルトで、圧縮時に一時領域を使用しないように修正しました。これによりバックアップの失敗が少なくなると思われます。

CMS-6251 各テーマの開発ビルド時scssのsourcemapの行数がずれる問題を修正

各デフォルトテーマで、Webpackによる開発ビルドを行っている時に、SCSSのソースマップの行数がずれている問題を修正しました。これにより正しい行数が表示されるため、開発しやすくなります。


Ver. 2.11 系のメンテンス期間終了について

2022年12月17日 でVer. 2.11系のバグフィックス対応期限を迎え、Ver. 2.11系の最後のフィックスバージョンとなりました。 まだセキュリティ上危険だと判断した修正については 2024年12月17日まで続きますが、バグ・不具合については、見つかったとしても 3.0.x 以上でしか修正されなくなります。

セキュリティフィックスはまだサポートされていますが、できれば、Ver. 3.0系へのアップデートをご検討いただければと思います。詳しくは、メンテナンスポリシーページ をご覧ください。

最後に

該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。 今後ともどうぞよろしくお願いいたします。

Apple Silicon(M1/M2)環境で、a-blog cms の docker環境を用意する

この記事は Advent Calendar 2022 の25日目の記事となります。a-blog cms にまつわる25日分の記事が公開されていますので、是非ご覧ください。 https://adventar.org/calendars/7427

a-blog cms の Docker 環境

a-blog cms を動作させる Docker環境として「atsu666/ioncube」や「atsu666/acms」というイメージが用意されていました。ただしこのイメージはCPUアーキテクチャが「linux/amd64」のみになっており、M1/M2 mac OS の「arm64」アーキテクチャでは動作しないイメージでした。

これにより、M1/M2 mac OS の環境でも「amd64」にエミュレートしたコンテナを動作させることになり、M1 mac OS に最適化されたパフォーマンスが出せない状況でした。

そこで今回、このイメージをマルチ CPU アーキテクチャに対応したイメージを作成し、M1/M2 mac OSの環境でも「arm64」アーキテクチャのまま動作させれるようにしました。

CPUのアーキテクチャ

CPUのアーキテクチャとは、CPUの仕様・設計だと思ってください。基本的にアプリケーションは、CPUのアーキテクチャ毎に違うものが必要で、別のアーキテクチャで動作させるには、エミュレートするような仕組みが必要となってきます。

CPUアーキテクチャの種類


アーキテクチャ 説明 OS例
amd64 「AMD社」が発表したx86アーキテクチャを64bitに拡張したもの Windows、Linux、Intel Mac
intel64 「インテル社」が発表したx86アーキテクチャを64bitに拡張したもの Windows、Linux、Intel Mac
x86-64 amd64とIntel64を含んだ総称 Windows、Linux、Intel Mac
arm64 スマホやタブレットなどで多く利用されているARMアーキテクチャを64bitに拡張したもの iOS、M1/M2 Mac、ARM版Windows

「amd64」「intel64」「x86-64」と呼ばれるアーキテクチャには互換性があり、WindowsやLinux, Intel mac OS の環境となります。 対して「arm64」は、スマホやタブレットなどで使用されてきたアーキテクチャで、M1/M2 mac OS の アーキテクチャでもあります。

Dockerイメージの対応アーキテクチャ確認方法

例えば、Docker Hub という Docker コンテナ共有サービス があります。「atsu666/acms」や「atsu666/ioncube」もこのサービスで公開されています。ここを見に行くと以下のような記述が見られます。


「OS/ARCH」のところに、「linux/amd64」や「linux/arm64」などが書かれています。これはこのイメージのタグが対応しているアーキテクチャが記載されています。どのアーキテクチャに対応しているかは、後から実際に動かすときに必要な情報ですので、使用するコンテナは調べれるようにしておきましょう。

Apple Silicon(M1/M2)環境で動作させる

それでは、上記の知識を踏まえ、実際にコンテナを動作させるときのポイントを見ていきたいと思います。動作させるマシンや、使用するイメージによって以下のパターンに分けて紹介します。

  • Windows や Intel Mac の場合
  • M1/M2 Mac の場合 かつ 使用するイメージが「linux/amd64」のみの場合
  • M1/M2 Mac の場合 かつ 使用するイメージが「linux/arm64」も使用できる場合

* ここでは、docker-compose.yml を使った起動を例でみてみます。

Windows や Intel Mac の場合

今までと同じ内容で大丈夫です。詳しくはこちらをご覧ください。

version: '3'

services:
    acms:
        image: atsu666/acms:8.1
        container_name: acms.org
        privileged: true
        volumes:
            - ./acms.org:/var/www/html:rw
            - /etc/localtime:/etc/localtime:ro
        environment:
            - VIRTUAL_HOST=acms.org
            - HTTPS_METHOD=noredirect

M1/M2 Mac の場合 かつ 使用するイメージが「linux/amd64」のみの場合

M1/M2 Mac 環境で、使用するイメージが「linux/amd64」など、「linux/arm64」アーキテクチャがない場合は、そのままだとコンテナの起動に失敗します。対応するには、「platform」で使用するアーキテクチャを明示してあげる必要があります。ただしエミュレートしてコンテナを動作させることになるので、動作は少し遅くなります。

version: '3'

services:
    acms:
        image: atsu666/acms:8.1
        container_name: acms.org
        platform: linux/amd64    # この行を追加
        privileged: true
        volumes:
            - ./acms.org:/var/www/html:rw
            - /etc/localtime:/etc/localtime:ro
        environment:
            - VIRTUAL_HOST=acms.org
            - HTTPS_METHOD=noredirect

M1/M2 Mac の場合 かつ 使用するイメージが「linux/arm64」も使用できる場合

M1/M2 Mac 環境で、使用するイメージが「linux/arm64」アーキテクチャも含む場合は、特にyamlを変更することなく、今までと同じように利用できます。

version: '3'

services:
    acms:
        image: atsu666/acms:8.1
        container_name: acms.org
        privileged: true
        volumes:
            - ./acms.org:/var/www/html:rw
            - /etc/localtime:/etc/localtime:ro
        environment:
            - VIRTUAL_HOST=acms.org
            - HTTPS_METHOD=noredirect

全体の docker-compose.yml 例

最終的に a-blog cms を動作させるための「docker-compose.yml」の例を以下にのせます。MySQLや他のコンテナイメージもCPUアーキテクチャの対応が必要なので、Docker Hubで対応しているアーキテクチャを確認しながら、指定をしましょう。特にMySQLはタグによって「linux/arm64」に対応していたり、していなかったりするので、注意が必要です。

version: '3'

services:
    proxy:
        image: jwilder/nginx-proxy:0.9.0
        container_name: proxy
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock:ro
        ports:
            - "80:80"
            - "443:443"

    redis:
        image: "redis:latest"
        container_name: redis
        ports:
            - "6379:6379"
        volumes:
            - "./data/redis:/data"

    mysql:
        image: mysql:8.0.30
        container_name: mysql
        user: "1000:50"
        ports:
            - "3306:3306"
        volumes:
            - ./docker-compose.d/mysql/data:/var/lib/mysql:rw
            - ./docker-compose.d/mysql/conf.d:/etc/mysql/conf.d:ro
        environment:
            MYSQL_ROOT_PASSWORD: root
        command: --innodb-use-native-aio=0

    www:
        image: atsu666/acms:8.1
        container_name: acms.org
        privileged: true
        volumes:
            - ./acms.org:/var/www/html:rw
            - /etc/localtime:/etc/localtime:ro
        links:
            - mysql:mysql
            - redis:redis
        environment:
            - VIRTUAL_HOST=acms.org
            - APACHE_DOCUMENT_ROOT=/var/www/html
            - HTTPS_METHOD=noredirect
        extra_hosts:
            - acms-300x.org:127.0.0.1

以上となります。 M1/M2 Mac 環境の方は、是非お試しください。