Ubuntu24.04環境でBookStackをアップグレードしたときの手順メモです。
環境
- BookStack v24.10
- 25.02にアップグレード
- Ubuntu 24.04
- Apache 2.4系
- PHP 8.3
- MySQL 8系
さっくりとした手順
https://manualmaton.com/2023/12/15
以前に実施した、こちらの記事の通りに行いました。
- DBのバックアップを行います。
- 推奨:システム全体のバックアップ
- git pullとアップグレードを行います。
- キャッシュをクリアします。
- Webサービス再起動を行います。
- アップグレード確認と動作確認を行います。
手順
システム全体のバックアップ(推奨)
万一に備え、システム全体のバックアップを取ることを推奨します。AWSや仮想サーバ等の場合は、インスタンスをまるごとバックアップしておくと良いでしょう。
mysqldumpによるDBバックアップ
- 保存ディレクトリに移動
cd /hoge
任意のバックアップディレクトリを指定します。
mysqldump -h localhost -u bookstack -p --no-tablespaces --single-transaction bookstack > bookstack_backup.$(date +%Y%m%d).sql
DB名やDBユーザは自分の環境に合わせます。
- バックアップ確認
less bookstack_backup.$(date +%Y%m%d).sql
平文で読めることを確認します。
git pullとアップグレード
- BookStackのディレクトリに移動
cd /var/lib/BookStack/ && pwd
インストールされているディレクトリを指定します
- git pull
sudo -u www-data git pull origin release
実行例(一部抜粋)
remote: Enumerating objects: 6028, done.
remote: Counting objects: 100% (1295/1295), done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 6028 (delta 1263), reused 1248 (delta 1248), pack-reused 4733 (from 3)
Receiving objects: 100% (6028/6028), 5.75 MiB | 18.75 MiB/s, done.
Resolving deltas: 100% (3708/3708), completed with 405 local objects.
From https://github.com/BookStackApp/BookStack
* branch release -> FETCH_HEAD
b0dda6e6a..268e35343 release -> origin/release
Updating b0dda6e6a..268e35343
Fast-forward
.env.example.complete | 5 +
.github/translators.txt | 40 +-
.github/workflows/analyse-php.yml | 4 +-
.github/workflows/lint-js.yml | 4 +-
.github/workflows/lint-php.yml | 6 +-
.github/workflows/test-js.yml | 29 +
.github/workflows/test-migrations.yml | 6 +-
.github/workflows/test-php.yml | 6 +-
.gitignore | 1 +
LICENSE | 2 +-
app/Access/ExternalBaseUserProvider.php | 49 +-
app/Access/Ldap.php | 8 +-
composer install
sudo -u www-data composer install --no-dev
- 実行例(一部抜粋)
> @php -r "!file_exists('bootstrap/cache/services.php') || @unlink('bootstrap/cache/services.php');"
Installing dependencies from lock file
Verifying lock file contents can be installed on current platform.
Package operations: 5 installs, 70 updates, 8 removals
- Downloading bacon/bacon-qr-code (v3.0.1)
- Downloading dompdf/php-svg-lib (1.0.0)
- Downloading dompdf/php-font-lib (1.0.1)
- Downloading dompdf/dompdf (v3.1.0)
- Downloading symfony/deprecation-contracts (v3.5.1)
- Downloading symfony/http-foundation (v7.2.3)
- Downloading guzzlehttp/uri-template (v1.0.4)
- Downloading intervention/gif (4.2.1)
- Downloading intervention/image (3.11.1)
- Downloading symfony/process (v7.2.0)
- Downloading knplabs/knp-snappy (v1.5.1)
- Downloading symfony/string (v7.2.0)
- Downloading symfony/service-contracts (v3.5.1)
- Downloading symfony/console (v7.2.1)
- Downloading laravel/prompts (v0.3.5)
- Downloading laravel/serializable-closure (v2.0.3)
- Downloading paragonie/constant_time_encoding (v3.0.0)
- Downloading phpseclib/phpseclib (3.0.43)
- Downloading league/oauth1-client (v1.11.0)
- Downloading voku/portable-ascii (2.0.3)
- Downloading symfony/css-selector (v7.2.0)
- Downloading tijsverkoyen/css-to-inline-styles (v2.3.0)
- Downloading symfony/var-dumper (v7.2.3)
- Downloading symfony/uid (v7.2.0)
- Downloading symfony/routing (v7.2.3)
- Downloading symfony/mime (v7.2.3)
- Downloading symfony/event-dispatcher-contracts (v3.5.1)
- Downloading symfony/event-dispatcher (v7.2.0)
- DBマイグレート
sudo -u www-data php artisan migrate
※この時、Are you sure you want to run this command?
というプロンプトには「Yes」が見えるようにカーソルを移動してEnterします。そのままEnterするとキャンセルされ、全体のアップグレードが行われません。
アップグレード後のキャッシュクリアを行います。
- キャッシュクリア
sudo -u www-data php artisan cache:clear
sudo -u www-data php artisan config:clear
sudo -u www-data php artisan view:clear
上記、それぞれ、successfully.
で終わることを確認します。
Webサービス(apache)再起動
- apache再起動前確認
systemctl status apache2.service
active(running)を確認します
- apache再開
sudo systemctl restart apache2.service && echo $?
0
を確認します。
- apache再起動後確認
systemctl status apache2.service
active(runnning)を確認します
バージョンアップ確認
- BookStackがインストールされているURLにアクセスします。
- 管理者権限でログインします。
- 設定に進みシステムバージョンが作業時の最新版になっていることを確認します。
- ページの作成や編集が正常に行えることを確認します。
バージョンアップ後の作業(dumpファイル削除)
※SQLファイルが平文で読めるのは非常に危険な状態なので、作業を確認次第、早急に実施します※
- 保存ディレクトリに移動
cd /hoge
DBバックアップを行ったディレクトリに移動します。
- ファイル削除
shred -u bookstack_backup.$(date +%Y%m%d).sql
- ファイル削除確認
ls -l bookstack_backup.$(date +%Y%m%d).sql
ファイルがないことを確認します。
コメントを残す