Skip to content

アップグレードと移行 ​

オンラインアップグレード(推奨) ​

管理画面の左下に現在のバージョン番号が表示されます。そこをクリックすると新バージョンの確認とアップグレードが行えます。サーバー側の作業は不要です。

先にデータベースをバックアップしてください。aaPanel(宝塔パネルの国際版)なら Database(データベース)→ Backup(バックアップ)をクリックするだけで、数秒で終わり、いざというときに助かります。

Docker 利用時も同じ手順でアップグレードできます。プログラムのファイルはデータボリュームにあるため、イメージを入れ替える必要はありません。

手動アップグレード ​

オンラインアップグレードが失敗したときだけ使います。現在のバージョンから順に 1 つずつ適用してください。バージョンを飛ばすことはできません。

アップグレードパッケージの中身は次のとおりです。

内容対応
file/ ディレクトリ中身をサイトルートにコピーして上書き
update.sqlデータベース変更がある場合のみ存在します(下記参照)

update.sql の扱い:

  1. エディタで開き、__PREFIX__ をすべて自分のテーブル接頭辞(既定は acg_)に置換する
  2. phpMyAdmin などのクライアントで SQL を実行する

すべて適用したら、config/app.php の version をアップグレード後のバージョン番号に書き換えます。

手動アップグレードは間違いが起きやすいので、オンラインアップグレードが使えるならそちらを使ってください。

3.8.2 へのアップグレードについて ​

3.8.2 では、アカウントのセキュリティに関わる変更が 2 つあります。

  • 連携用 IP ホワイトリストを追加しました。 すべての会員がサーバーの IP を登録でき、登録すると連携用のインターフェースはその IP からの残高注文だけを受け付けます。何も登録しないアカウントは 3.8.1 と同じ動作です。3.8.1 では、資金操作の追加認証がオンのアカウントは連携用のインターフェースで残高をまったく使えませんでしたが、3.8.2 からは IP を登録すれば連携注文を出せます。既定のテーマでは会員センターに「連携用ホワイトリスト」ページ(「セキュリティログ」の左隣)が加わり、ほかのテーマでは「2段階認証」ページに表示されます。必要なデータベースのテーブルはアップグレード時に自動で作成されるので、SQL を手で実行する必要はありません。サイトが CDN やリバースプロキシの背後にある場合は、先に サイト設定 → セキュリティ設定 の「IP 取得方式」と「信頼するプロキシ IP」を設定してください。そうしないと、会員は CDN の IP しかホワイトリストに登録できません。詳しくは連携用 IP ホワイトリストを参照してください。
  • 管理画面の会員セキュリティログは、メインの管理者だけが見られます。 会員管理の「セキュリティログ」ボタンを使えるのは、メインの管理者アカウント(インストール時に作成したもの)だけになりました。スーパー管理者・日勤・夜勤のアカウントでは、権限がない旨のメッセージが表示されます。

3.8.1 へのアップグレードについて ​

3.8.1 ではアカウントとログインのセキュリティを強化しました。アップグレード後に次の変化がありますが、いずれも想定どおりの動作です。

  • 会員は全員、一度ログインし直す必要があります。 セキュリティのため会員のログイン情報を作り直したので、それまでのログイン状態は切れます。
  • パスワードはより強いハッシュで保存されます。 会員と管理者のパスワードを、より強く、意図的に計算を遅くしたハッシュに切り替えたため、総当たり攻撃に強くなります。各アカウントが次にパスワードでログインした時点で自動的に変換されるので、作業は不要です。管理者アカウントが変換されるときは、ほかの端末の管理画面ログインが一度だけ切れるので、ログインし直してください。
  • 管理画面の自動ロックが既定で有効です。 15 分間操作がないと管理画面が自動でロックされます。時間は サイト設定 → セキュリティ設定 の「管理画面の自動ロック」で変更でき、0 にすると無効になります。アップグレードしても管理者がログアウトされることはありません。
  • データベースの変更は自動で適用されます。 オンラインアップグレードが処理するので、SQL を手で実行する必要はありません。

3.8.1 にアップグレードした後は、旧バージョンに戻さないでください。 パスワードが変換済みのアカウントは、旧バージョンではパスワードでログインできなくなります。

詳しくはアカウントとログインのセキュリティを参照してください。

サーバー移行 ​

  1. ソースをアーカイブ — サイトディレクトリ全体
  2. データベースをエクスポート — phpMyAdmin か mysqldump
  3. 新サーバーに aaPanel ガイドに沿って環境を用意(PHP バージョンと拡張を揃える)
  4. ソースを新しいサイトルートに展開し、データベースをインポート
  5. config/database.php を編集して、新しいホスト・ユーザー・パスワードにする
  6. URL 書き換えとディレクトリ権限を設定し直す

移行後に開けない場合は、この順で確認します。

確認項目内容
config/database.php旧サーバーの情報のままになっていないか
Redis旧サイトが Redis にセッションを保存していたなら、新サーバーにも導入するか、PHP のセッション保存先をファイルに戻す
PHP 拡張bcmath を忘れずに(aaPanel には最初から入っています。手動で用意した環境は自分で確認)
権限config、runtime、kernel/Install、assets/cache が書き込み可能か
URL 書き換え新サーバーでは設定し直しが必要

Docker イメージの入れ替え ​

bash
docker pull ghcr.io/lizhipay/acg-faka:latest
docker stop faka && docker rm faka
docker run -d --name faka -p 80:80 -v acg_data:/data --restart unless-stopped ghcr.io/lizhipay/acg-faka:latest

acg_data というボリューム名さえ変えなければ、データ・設定・導入済みプラグインはすべて残ります。

アップグレード後に不具合が出たら ​

まずサイトルートの runtime.log を読んでください。原因はほぼそこに書かれています。

MIT ライセンスで公開