目次

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

以上、雑に。