Nextcloudはメジャーバージョンを一個ずつしかアップグレードできない。
以前、17から19にいきなり上げようとしたらエラーになった。なので、アップグレードは
16.0.3
↓
17.0.10
↓
18.0.11
↓
19.0.5
↓
20.0.2
と行っていく必要がある。
コマンドでの前処理
PGPによる署名の確認1ぐらいはした方がいいのかな?あとファイルサイズチェックも。
sudo service apache2 stop
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.2.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.2.tar.bz2.asc
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.2.tar.bz2.md5
wget https://nextcloud.com/nextcloud.asc
md5sum -c nextcloud-20.0.2.tar.bz2.md5 < nextcloud-20.0.2.tar.bz2
gpg --verify nextcloud-20.0.2.tar.bz2.asc nextcloud-20.0.2.tar.bz2
gpg --import nextcloud.asc
tar -xjf nextcloud-20.0.2.tar.bz2
rm nextcloud.asc
rm nextcloud-20.0.2.tar.bz2.md5
sudo mv /var/www/nextcloud /var/www/nextcloud_bak
sudo mv nextcloud /var/www/nextcloud
sudo cp /var/www/nextcloud_bak/config/config.php /var/www/nextcloud/config/
sudo vi /var/www/nextcloud/config/config.php
sudo chown -R www-data:www-data /var/www/nextcloud
sudo service apache2 restart
less /var/log/apache2/access.log
less /var/log/apache2/error.log
ブラウザで最後のアップグレード開始
Permission deniedなエラー
sudo chown www-data:www-data /var/www/nextcloud/config/config.php
を実行し忘れて、起動するとエラー。うん?と思ってログを確認すると。
[Wed Aug 05 13:20:04.849209 2020] [php7:warn] [pid 1681] [client fe80::38a1:cd78:6ae8:24e8:62000] PHP Warning: fopen(/var/www/nextcloud/config/config.php): failed to open stream: Permission denied in /var/www/nextcloud/lib/private/config.php on line 187
[Wed Aug 05 13:20:04.849344 2020] [php7:warn] [pid 1681] [client fe80::38a1:cd78:6ae8:24e8:62000] PHP Warning: flock() expects parameter 1 to be resource, bool given in /var/www/nextcloud/lib/private/config.php on line 197
[Wed Aug 05 13:20:04.851514 2020] [php7:error] [pid 1681] [client fe80::38a1:cd78:6ae8:24e8:62000] PHP Fatal error: Uncaught Error: Call to a member function getLogger() on null in /var/www/nextcloud/lib/public/util.php:166\nStack trace:\n#0 /var/www/nextcloud/index.php(51): OCP\\Util::logException()\n#1 {main}\n thrown in /var/www/nextcloud/lib/public/util.php on line 16
所有者がrootで、権限が640になっていた。
ubuntu:~$ ls -l /var/www/nextcloud/config/config.php
-rw-r----- 1 root root 780 8月 5 13:19 /var/www/nextcloud/config/config.php
17から18にアップグレードするときに出るエラー
17から18にアップグレードさせようとすると、エラーが起きた。↓とまさに自分のケース。この時、マイナーバージョンは余り関係なく、メジャーバージョンが17から18に行くとき出てたようだ。今もそうなのは確認していない。
Repair error during upgrade from 17.0.2 to 18.0.0 · Issue #19102 · nextcloud/server · GitHub
なので言われたとおり、以下のコマンドを一つ一つ実行。
sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php occ upgrade
sudo -u www-data php occ db:add-missing-indices
sudo -u www-data php occ db:convert-filecache-bigint
sudo -u www-data php occ maintenance:mimetype:update-js
sudo -u www-data php occ maintenance:mimetype:update-db
sudo -u www-data php occ maintenance:theme:update
sudo -u www-data php occ maintenance:update:htaccess
sudo -u www-data php occ maintenance:repair
sudo -u www-data php occ maintenance:mode --off
それで良く知らんが成功。
-
それでも"この鍵は信用できる署名で証明されていません"との警告は出る。 ↩︎