git からインストールした Nextcloud のアップグレードメモ
なんで git clone から構築してしまったんだろうね……()
ハマりポイント
apc.enable_cli
v21.x.x あたりから occ
でも APCu を有効化する必要があるっぽい。アップグレード時だけならコマンドラインオプションで php -d apc.enable_cli=1 occ ...
とやっても良いけど news:updater:...
なんかでも結局必要になるっぽいので php.ini に書く。Ubuntu なら /etc/php/7.x/cli/php.ini
あたり。
app(viewer)
なんで git clone から構築してしm() nextcloud/server の git リポジトリにはなんでか apps/viewer が存在していないので、別途アップグレード先のバージョンの tarball を落としてコピーする。
ざっくり実作業
まず web サーバーは止める。
- snippet.bash
systemctl stop nginx
バックアップ
- snippet.bash
tar -czf /mnt/tekitou/nextcloud-server.211026.tar.gz ./server sudo -u postgres pg_dumpall | gzip -c > /mnt/tekitou/pg_dumpall.211026.gz
アップグレード
だいたい .htaccess
あたりに自動書き込みが走っているので雑に戻す。
- snippet.bash
git checkout .htaccess
ほんでアップグレード。
- snippet.bash
git checkout v22.2.0 git submodule update
このタイミングで前述の apps/viewer を入れ替える。既存のものがある場合は上書きではなくキッチリ消してから改めて tarball からコピーする。
- snippet.bash
rm -rf apps/viewer cp -r /mnt/tekitou/nextcloud/apps/viewer apps/viewer chown -R nextcloud:nextcloud apps/viewer
ほんでアップグレードコマンド投入
- snippet.bash
php occ upgrade php occ db:add-missing-column php occ db:add-missing-indices php occ db:add-missing-primary-keys php occ maintenance:mode --off
エラー出てなければ web サーバー上げる。
- snippet.bash
systemctl start nginx
以上、雑に。