アップデート方法
主なアップデート方法は2種類あります。「オンラインアップデート」と「手動アップデート」です。
また、各アップデート時にはテンプレート修正が必要なバージョンがありますので、アップデート時には対象のバージョンだった場合ご対応の上、アップデートをお願いいたします。
主なアップデート方法は2種類あります。「オンラインアップデート」と「手動アップデート」です。
また、各アップデート時にはテンプレート修正が必要なバージョンがありますので、アップデート時には対象のバージョンだった場合ご対応の上、アップデートをお願いいたします。
オンラインアップデートは管理画面からマイナーバージョンと、パッチバージョンのアップデートする方法です。Ver. 2.8.0 から利用可能です。
バックアップを取ったのちアップデートを行いますので安心して利用できます。特に意図がない場合は、オンラインアップデートの利用を推奨します。
アップデートを実行すると、a-blog cms の以下のファイル・ディレクトリが置き換わります。
管理画面 > コンフィグ > 機能設定 の 「オンラインアップデート」にオプションがあります
不具合修正のバージョンのみアップデートを行います。仕様変更などは含まれませんので、安心してアップデートできます。
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 ファイル)を用意しております。このプログラムを利用することで、パッケージのダウンロードから、解凍、ファイルの更新、旧ファイルのバックアップまでを自動化できます。
ダウンロードの簡単アップデート よりアップデート用のプログラムをダウンロードします。
サーバーの最新版を自動で判定してダウンロードするようになっておりますが、サーバーによってはエラーになる環境もあります。もし、実行時にエラーになるような時には 13行目の # を外してアップデートしたいバージョンを個別に指定してください。
バージョンアップをする a-blog cms が動作しているサーバーのディレクトリに1ファイル update.php ファイルのみ、a-blog cms の index.php が設置されている同じディレクトリにアップロードします。
#$ablogcmsVersion = "3.0.15";
update.phpを設置したURL(例:http://domain.com/update.php)にブラウザからアクセスすると以下のような画面が表示されます。
アップデート作業の前に、以下のものの準備をお願いします。
アップデートの実行には、利用している MySQL のパスワードを入力してアップデート実行を行なってください。アップデート処理としては、具体的には以下の処理が自動で行われます。
※ バップアップについては、backup_年月日時分秒 の形式のディレクトリが作成されます。
以下の表示がされたら処理が完了しますので、次のステップへ進みます。
サイトにアクセスし、メンテナンス画面が表示されることを確認してください。 メンテナンス画面から管理者権限の ユーザーID もしくは メールアドレスとパスワードを入力しログインします。
システムがバージョンアップの必要だと判定された際には「メンテナンスプログラムはアップデートの必要性を検出しました」と表示され「アップデート実行画面へ」のリンクが表示されます。
セットアップ画面の[データベースの更新処理を実行]ボタンを押します。
アップデートプログラムの実行が終了したら、FTPソフト等を利用して setup ディレクトリを推測されない名前に変更をしてください。削除しても構いませんが、場合によってインストールされている時と同様のバージョンの setup ディレクトリをアップロードする必要がある場合があります。
setup ディレクトリが存在するまではメンテナンスページが表示されます。
a-blog cmsを設置しているアドレスにアクセスします。各ページの表示を確認し、問題が無ければ公開となります。 必要に応じてデバッグモードをONにすることで、各種エラーメッセージが表示されたり、キャッシュ機能が無効となるなど、動作確認のための状態となります。 サーバ上のファイル config.server.php 内の記述 「DEBUG_MODE」の値を確認の上、変更を行う場合は再度アップロードしてください。
デバッグモードON | デバッグモードOFF |
---|---|
define('DEBUG_MODE', 1); | define('DEBUG_MODE', 0); |
以上でアップデートは完了です。
テーマ内にあるテンプレートファイルについては自動変更されません。以下のドキュメントを参考にテンプレートファイルの修正をお願いします。
システムのバージョンアップをする際に、利用しているバージョンから最新版までアップデートする際に、テンプレートや config の設定がどう変わっているのかを時系列で紹介しています。
ポストインクルードや htmx など、Ajax による部分テンプレートへのアクセス時に、許可するtplを private/config.system.yaml で指定(allow_tpl_path)する必要がなくなりました。 また、ポストインクルードや htmx など、Ajax によるテンプレート取得用のPOSTモジュールとして、ACMS_POST_2GET_Ajax が追加されました。
詳しくはブログ記事をご確認ください。
Webhook 機能のSSRF対策としてリクエスト先URLが「.env」で許可したホストのみ許可するように変更されました。またログ閲覧で機能でレスポンスの内容を表示するために「.env」の設定が必要になりました。 Webhook機能のコードインジェクション対策として、ペイロードのカスタマイズで利用するテンプレートエンジンがTwigに変更されました。
詳しくはブログ記事を御覧ください。
アップデートの際には off になっていますが、private/config.system.yaml を最新のファイルと置き換えると on になり、管理画面で編集の際にタグが消えてしまう恐れがありますので紹介しておきます。同様の修正が 3.0.29 以降、2.11.58 以降、2.10.50 以降も同様に行われています。
themes/ご利用テーマ/login.html を設置してログイン画面や会員サイトのログイン画面をカスタマイズしている場合、Ver. 3.1 にアップデートするとログインできなくなる可能性があります。
Ver. 3.1 では会員機能の強化のため、ログイン周りのテンプレートの改修、管理者と一般会員でログインページを別にする修正がはいっているので、ログイン画面のテンプレートが新しくなっております。ログイン画面をカスタマイズしている場合や、会員サイトの場合は、テンプレートの修正が必要になりますので、慎重にアップデートください。
SNSログイン・SNS会員登録、Google Map以外の外部サービス連携機能が廃止になりました。廃止になった機能は以下になります。
コンフィグ > メール設定 の本文テンプレートの項目でプレーンテキストとHTML形式のどちらもテンプレートのパスを設定している場合は、HTML形式が優先される仕様になっております。さらにHTML形式の本文テンプレートの設定はconfig.system.default.yaml に記載されており、CMSをアップデートした際に自動的にコンフィグに保存されます。アップデート前に、プレーンテキスト形式のメールテンプレートをカスタマイズして利用していた場合、バージョンアップした際にHTML形式のメールが送信されてしまうといった問題が発生する可能性があります。
対策として、バージョンアップ後はコンフィグ > メール設定 の本文テンプレートの項目で HTMLメールの設定を空にして保存し直す必要があります。
private/config.system.yaml の template_cache: off でテンプレートキャッシュの利用を停止します。
参考記事 - テンプレートキャッシュについて
マークダウンのライブラリが PHP 8.0 対応のために変更になりました。そのため マークダウンを利用の場合に表示崩れが発生する可能性があります。
参考記事 - Ver. 3.0 へメジャーアップデート時にマークダウンの文章が崩れるケースについて
アップデートの場合には private/cofig.system.yaml に設定が無いので大丈夫ではありますが、変更点として紹介しておきます。
参考記事 - Ver. 2.11.25からのテンプレートの仕様変更について
カスタマイズの際に、脆弱性を作り込んでしまう問題を減らすために、校正オプションの仕様変更しています。文章中のタグがそのまま表示されてしまう可能性があります。
参考記事 - Ver.2.11 から校正オプションの仕様が変更になります
読者登録・パスワードリセット時に、パスワードを自分で指定できるように変更
読者登録・パスワードリセット時に、パスワードを自身で指定できるようになりました。以前はパスワード再発行メールにシステム側で発行した新しいパスワードを記載しておりましたが、再発行時にユーザーが任意のパスワードを指定する仕様へ変更になりました。そのため、パスワードリセット用のテンプレートを追加する必要があります。また、パスワード再発行メールで使用できる {resetPass} 変数は削除されました。
パスワードリセット用のテンプレートは system テーマ内、 /_layouts/login.html の <!-- BEGIN reset -->
から <!-- END reset -->
までを参考にしてください。
ルールをグローバル化して利用している場合の動きが変わりました。
参考記事 - Ver.2.7.0以上へのアップデート
utf8mb4 に対応し、絵文字が保存できるようになりました。
参考記事 - UTF-8の絵文字を利用する