アップデート

目次

アップデート方法

主なアップデート方法は2種類あります。「オンラインアップデート」と「手動アップデート」です。
また、各アップデート時にはテンプレート修正が必要なバージョンがありますので、アップデート時には対象のバージョンだった場合ご対応の上、アップデートをお願いいたします。

オンラインアップデート

オンラインアップデートは管理画面からマイナーバージョンと、パッチバージョンのアップデートする方法です。Ver. 2.8.0 から利用可能です。
バックアップを取ったのちアップデートを行いますので安心して利用できます。特に意図がない場合は、オンラインアップデートの利用を推奨します。

更新されるファイル

アップデートを実行すると、a-blog cms の以下のファイル・ディレクトリが置き換わります。

  • acms.js
  • index.php
  • js
  • lang
  • php
  • private/config.sytem.default.yaml
  • themes/system

オプション

管理画面 > コンフィグ > 機能設定 の 「オンラインアップデート」にオプションがあります

  • パッチバージョンのみ(デフォルト)
  • マイナーバージョンも含める
  • 更新メニューを非表示

デフォルトのパッチバージョンのみ

不具合修正のバージョンのみアップデートを行います。仕様変更などは含まれませんので、安心してアップデートできます。

マイナーバージョンも含める

Ver. 2.8 から Ver. 2.9 へのアップデートのようにマイナーバージョンアップの更新も出来るようになります。

更新メニューを非表示

管理メニューに更新メニューを出さないようにします。お客様に引き渡す時に、あまり触ってほしくない場合などに便利です。



デフォルトのパッチバージョンのみ パッチバージョン(=不具合修正のバージョン)のみアップデートを行います。パッチバージョンには仕様変更が行われたバージョンは含まれませんので、安心してアップデートできます。
マイナーバージョンも含める たとえば Ver.2.8 から Ver.2.9 へのアップデートのようにマイナーバージョンアップの更新も出来るようになります。マイナーバージョンアップには仕様変更が行われたバージョンも含まれます。
更新メニューを非表示 管理メニューに更新メニューを出さないようにします。例えば、納品後に更新者にアップデートしてほしくない場合などに便利です。

アップデートで更新しないファイルを指定する

カスタマイズする中でどうしても、a-blog cms のコアファイルをカスタマイズしてしまう場合があります。 この状態でアップデートを行なってしまうと、新バージョンのファイルで上書きされてしまい、カスタマイズした箇所が戻ってしまいます。

このような場合、private/config.system.yaml に更新しないファイルを指定することにより、アップデートによる上書きを回避できます。

system_update_ignore: [] # アップデートしないファイルを配列で指定 例: [js/config.js] カンマ区切りで指定

例)「js/config.js」と「php/ACMS/POST.php」をカスタマイズしている場合

system_update_ignore: [js/config.js,php/ACMS/POST.php] 

新しいバージョンで上書きされなくなりますので、カスタマイズ内容によっては新しいバージョンと整合性が取れず、不具合がでてしまう危険性があります。
コアファイルのカスタマイズは、この危険性を理解のうえ行なってください。

手動アップデート

基本的にはオンラインアップデートを推奨しておりますが、Ver. 2.x から 3.0.x へのアップデートについてはオンラインアップデートが対応しておりません ので手動アップデートをお使いください。

手動アップデートの際には簡単アップデートの利用を推奨しています。以前は、FTPソフトを利用して多くのファイルを上書きする必要がありましたが、現在では 簡単アップデート (バージョンアップ作業の簡略化をする PHP ファイル)を用意しております。このプログラムを利用することで、パッケージのダウンロードから、解凍、ファイルの更新、旧ファイルのバックアップまでを自動化できます。

1. 簡単アップデート のダウンロード

ダウンロードの簡単アップデート よりアップデート用のプログラムをダウンロードします。

2. update.php ファイルのアップロード

バージョンの指定

サーバーの最新版を自動で判定してダウンロードするようになっておりますが、サーバーによってはエラーになる環境もあります。もし、実行時にエラーになるような時には 13行目の # を外してアップデートしたいバージョンを個別に指定してください。

アップロード

バージョンアップをする a-blog cms が動作しているサーバーのディレクトリに1ファイル update.php ファイルのみ、a-blog cms の index.php が設置されている同じディレクトリにアップロードします。

#$ablogcmsVersion = "3.0.15";

3. update.php ファイルの実行

update.phpを設置したURL(例:http://domain.com/update.php)にブラウザからアクセスすると以下のような画面が表示されます。


アップデート作業の前に、以下のものの準備をお願いします。

  • CMS の管理者権限のユーザーID と パスワード
  • Ver. 2.x から Ver. 3.0 へのアップデートの場合には新しい license.php

アップデートの実行

アップデートの実行には、利用している MySQL のパスワードを入力してアップデート実行を行なってください。アップデート処理としては、具体的には以下の処理が自動で行われます。

  1. 変更するファイルのバックアップ
  2. サーバーのPHPのバージョンにあわせて a-blog cms のパッケージをダウンロード&解凍
  3. インストールファイルを置くべき場所への移動
  4. バックアップファイルから戻すべきファイルやディレクトリ( 指定したテーマ、/php/ACMS/User、/php/AAPP、/private/config.system.yaml)を移動
  5. ダウンロードした必要の無いファイルの削除

※ バップアップについては、backup_年月日時分秒 の形式のディレクトリが作成されます。

以下の表示がされたら処理が完了しますので、次のステップへ進みます。


4. メンテナンスメニュー からデータベースのアップデート

サイトにアクセスし、メンテナンス画面が表示されることを確認してください。 メンテナンス画面から管理者権限の ユーザーID もしくは メールアドレスとパスワードを入力しログインします。

システムがバージョンアップの必要だと判定された際には「メンテナンスプログラムはアップデートの必要性を検出しました」と表示され「アップデート実行画面へ」のリンクが表示されます。



5. データベースの更新

セットアップ画面の[データベースの更新処理を実行]ボタンを押します。



6. セットアップディレクトリのリネーム

アップデートプログラムの実行が終了したら、FTPソフト等を利用して setup ディレクトリを推測されない名前に変更をしてください。削除しても構いませんが、場合によってインストールされている時と同様のバージョンの setup ディレクトリをアップロードする必要がある場合があります。

setup ディレクトリが存在するまではメンテナンスページが表示されます。

7. 表示確認と公開

a-blog cmsを設置しているアドレスにアクセスします。各ページの表示を確認し、問題が無ければ公開となります。 必要に応じてデバッグモードをONにすることで、各種エラーメッセージが表示されたり、キャッシュ機能が無効となるなど、動作確認のための状態となります。 サーバ上のファイル config.server.php 内の記述 「DEBUG_MODE」の値を確認の上、変更を行う場合は再度アップロードしてください。



デバッグモードON デバッグモードOFF
define('DEBUG_MODE', 1); define('DEBUG_MODE', 0);

以上でアップデートは完了です。

テンプレート修正が必要なバージョンとライセンス

テーマ内にあるテンプレートファイルについては自動変更されません。以下のドキュメントを参考にテンプレートファイルの修正をお願いします。

バージョンごとのアップデート方法


ライセンス別のアップデート方法


各バージョンのアップデート変更点まとめ

システムのバージョンアップをする際に、利用しているバージョンから最新版までアップデートする際に、テンプレートや config の設定がどう変わっているのかを時系列で紹介しています。

Ver. 3.1.17 - 2024/06/10

  • Ajaxによる部分テンプレートアクセスにCSRFトークンによる認証を追加し、許可するtpl指定(allow_tpl_path)を個別指定しなくてもいいように改修 & Ajaxリクエストのセキュリティレベルオプションを用意(ajax_security_level)

ポストインクルードや htmx など、Ajax による部分テンプレートへのアクセス時に、許可するtplを private/config.system.yaml で指定(allow_tpl_path)する必要がなくなりました。 また、ポストインクルードや htmx など、Ajax によるテンプレート取得用のPOSTモジュールとして、ACMS_POST_2GET_Ajax が追加されました。

詳しくはブログ記事をご確認ください。

Ver. 3.1.14 - 2024/04/23

  • PHP8.2, 8.3対応

Ver. 3.1.12, 3.0.32 - 2024/04/08

  • 【セキュリティ対応】Webhook機能のSSRF対応 「JVN#24538269」
  • 【セキュリティ対応 & 仕様変更】Webhook機能のコードインジェクション対応 「JVN#36191600」

Webhook 機能のSSRF対策としてリクエスト先URLが「.env」で許可したホストのみ許可するように変更されました。またログ閲覧で機能でレスポンスの内容を表示するために「.env」の設定が必要になりました。 Webhook機能のコードインジェクション対策として、ペイロードのカスタマイズで利用するテンプレートエンジンがTwigに変更されました。

詳しくはブログ記事を御覧ください。

Ver. 3.1.7 - 2024/01/19

アップデートの際には off になっていますが、private/config.system.yaml を最新のファイルと置き換えると on になり、管理画面で編集の際にタグが消えてしまう恐れがありますので紹介しておきます。同様の修正が 3.0.29 以降、2.11.58 以降、2.10.50 以降も同様に行われています。

Ver. 3.1.0 - 2023/09/14

ログインテンプレートの仕様が変更

themes/ご利用テーマ/login.html を設置してログイン画面や会員サイトのログイン画面をカスタマイズしている場合、Ver. 3.1 にアップデートするとログインできなくなる可能性があります。

Ver. 3.1 では会員機能の強化のため、ログイン周りのテンプレートの改修、管理者と一般会員でログインページを別にする修正がはいっているので、ログイン画面のテンプレートが新しくなっております。ログイン画面をカスタマイズしている場合や、会員サイトの場合は、テンプレートの修正が必要になりますので、慎重にアップデートください。

SNSログイン・SNS会員登録、Google Map以外の外部サービス連携機能を廃止

SNSログイン・SNS会員登録、Google Map以外の外部サービス連携機能が廃止になりました。廃止になった機能は以下になります。

  • Google Analyticsランキング(Api_GoogleAnalytics_Ranking)拡張アプリに移行
  • Twitterホームタイムライン(Api_Twitter_Statuses_HomeTimeline)
  • Twitterユーザータイムライン(Api_Twitter_Statuses_UserTimeline)
  • Twitterサーチ(Api_Twitter_Search)
  • Twitterリストタイムライン(Api_Twitter_List_Statuses)
  • Twitterリストメンバーズ(Api_Twitter_List_Members)
  • Bingウェブ検索(Api_Bing_WebSearch)
  • Bingイメージ検索(Api_Bing_ImageSearch)

Ver. 3.0.12 - 2022/06/17

  • 8.1.x 対応

Ver. 3.0.10

  • CMS-5891 各システムメールをHTMLメールに対応

コンフィグ > メール設定 の本文テンプレートの項目でプレーンテキストとHTML形式のどちらもテンプレートのパスを設定している場合は、HTML形式が優先される仕様になっております。さらにHTML形式の本文テンプレートの設定はconfig.system.default.yaml に記載されており、CMSをアップデートした際に自動的にコンフィグに保存されます。アップデート前に、プレーンテキスト形式のメールテンプレートをカスタマイズして利用していた場合、バージョンアップした際にHTML形式のメールが送信されてしまうといった問題が発生する可能性があります。

対策として、バージョンアップ後はコンフィグ > メール設定 の本文テンプレートの項目で HTMLメールの設定を空にして保存し直す必要があります。

Ver. 3.0.0 - 2021/12/24

Ver. 2.11.29 - 2021/03/03

  • jQuery のバージョンが 3.5.1 に変更しています。

Ver. 2.11.25 - 2020/11/24

Ver. 2.11.15 - 2020/07/13

  • PHP 7.4 対応

Ver. 2.11.5 - 2020/02/05

  • メディアダウンロードリンクが /media-download/xxx/ から /media-download/xxx/hash値/ のように変更になりました。テンプレートは関係ありませんが、テキストリンクで手動で /media-download/xxx/ へのリンクを書いているような時には注意が必要です。

    config.system.yaml の設定

    media_download_link: v1 # v1: media-download/xxx/ v2: media-download/xxx/hash値/
    ※ この設定で元の仕様に戻すことが可能です。

Ver. 2.11.0 - 2019/12/17

  • ライセンスのアップデートが有償になりました。
  • カスタマイズの際に、脆弱性を作り込んでしまう問題を減らすために、校正オプションの仕様変更しています。文章中のタグがそのまま表示されてしまう可能性があります。

    参考記事 - Ver.2.11 から校正オプションの仕様が変更になります

  • 読者登録・パスワードリセット時に、パスワードを自分で指定できるように変更

    読者登録・パスワードリセット時に、パスワードを自身で指定できるようになりました。以前はパスワード再発行メールにシステム側で発行した新しいパスワードを記載しておりましたが、再発行時にユーザーが任意のパスワードを指定する仕様へ変更になりました。そのため、パスワードリセット用のテンプレートを追加する必要があります。また、パスワード再発行メールで使用できる {resetPass} 変数は削除されました。

    パスワードリセット用のテンプレートは system テーマ内、 /_layouts/login.html の <!-- BEGIN reset --> から <!-- END reset --> までを参考にしてください。

Ver. 2.10.8 - 2019/04/15

  • PHP 7.3 対応

Ver. 2.10.0 - 2019/02/28

Ver. 2.8.0 - 2018/03/26

  • PHP 7.2 対応

Ver. 2.7.0 - 2017/03/30

Ver. 2.5.0 - 2015/04/23

  • a-blog cms で読み込みが必須の JavaScript のファイル名が index.js から acms.js に変更されました。
  • acms.css から管理系の CSS を別にして利用できるようにした acms-admin.css が必須になりました。
  • acms.js の前に jQuery の読み込みが必須になり、jQuery が同期的に読まれるように対策が必要になりました。

    参考記事 - Ver.2.5以上 へのアップデート

Ver. 2.0.0 - 2013/12/18

  • config.system.yaml が config.system.default.yaml と config.system.yaml に分かれました。 1.x で利用していた config.system.yaml を利用することで、2.0 以前の設定を引き継ぎます。
  • file_icon の場所が images/fileicon から themes/system/images/fileicon に変更になりました。
  • Entry_Body の中でインクルードされている /include/column.html が /include/unit.html に変更になりました。
  • Column_List モジュールの名前が Unit_List に変更になりました。

    参考記事 - Ver. 1.7 から 2.0 のアップデート