{{tag> nextcloud }} # 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](https://download.nextcloud.com/server/releases/) を落としてコピーする。 ## ざっくり実作業 まず web サーバーは止める。 ```bash systemctl stop nginx ``` ### バックアップ ```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` あたりに自動書き込みが走っているので雑に戻す。 ```bash git checkout .htaccess ``` ほんでアップグレード。 ```bash git checkout v22.2.0 git submodule update ``` このタイミングで前述の apps/viewer を入れ替える。既存のものがある場合は上書きではなくキッチリ消してから改めて tarball からコピーする。 ```bash rm -rf apps/viewer cp -r /mnt/tekitou/nextcloud/apps/viewer apps/viewer chown -R nextcloud:nextcloud apps/viewer ``` ほんでアップグレードコマンド投入 ```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 サーバー上げる。 ```bash systemctl start nginx ``` 以上、雑に。