Nextcloudの手動(マニュアル)アップデート方法とトラブルシューティング

Linux・Ubuntu TipsNextCloud

たぶん全てのバージョンでだいたい共通だと思うので。

前提

前提 今回の記載
NextCloudの置き場所 /var/www/nextcloud
NextCloudの新しいバージョン ****.zip

アップデートを確認

sudo -u www-data php occ update:check
Nextcloud XXXXXX is available. Get more information on how to update at https://nextcloud.com/outdated-php-7-0/.
1 update available

ここではアップデートがあったので、さっそくアップデートをしていく。

sudo -u www-data php updater/updater.phar 
Nextcloud Updater - version: v15.0.7-4-ged74b90

Current version is XXXXXX.

Update to Nextcloud XXXXX available. (channel: "stable")
Following file will be downloaded automatically: https://nextcloud.com/outdated-php-7-0/
The updater is disabled for this update - please update manually.

Nothing to do.

Nothing to do…悲しい。ということで、ちまちまと手動でやっていく。

Nextcloudをメンテンスモードに移行 & Apache停止

sudo -u www-data php occ maintenance:mode --on
service apache2 stop

移行元のNextCloudを、nextcloud-oldとして退避 & 次のバージョンをインストール

バージョンを見ながら下記より適切なものをダウンロードする。

cd /media/www
mv /var/www/nextcloud /var/www/nextcloud-old
wget ****.zip
unzip ****.zip

configファイルとデータ・アプリのコピー

# config
cp /var/www/nextcloud-old/config/config.php /var/www/nextcloud/config/

# data
cp -r /var/www/nextcloud-old/data/ /var/www/nextcloud/data/

# Apps

cp -r /var/www/nextcloud-old/apps/ /var/www/nextcloud/apps/

フォルダ権限の変更

sudo chown -R www-data:www-data /var/www/nextcloud

最新版へのアップデートとメンテナンスモード解除

cd /var/www/nextcloud
sudo -u www-data php occ upgrade
sudo -u www-data php occ maintenance:mode --off
service apache2 restart
rm -r /var/www/nextcloud-old

これで終わり、一応トラブルシューティングを。

NextCloudでエラーが出るときに行うおまじない

ファイルの完全スキャン

まず、ファイルに欠損がある、画面やWebDAV以外から直接投入したファイルがある場合は、これらをscanしてDBに反映する必要がある。その際に実行するのは下記。

sudo -u www-data php occ files:scan --all
sudo -u www-data php occ files:cleanup

ファイルがロックされているとき

ファイルがロックされてしまっている際、ログをみるとファイルがロックされている旨の警告がでる。これは、ファイルスキャンをした際にも同様の文言が発生するはずだ。

Exception during scan: "files/c71aab4e856fcfc8c52a5b8691beac19" is locked

その場合には、DBの書き込みロックテーブルをリセットするしかない。次の方法でリセットが可能だ。

mysql -u root -p -D 【Nextcloudが入っているDB】 -e 'delete from oc_file_locks where 1'

NextcloudのAppまわりをコマンドラインから操作

インストールされているアプリの一覧を表示したりアップデートする際は、こんな形。

sudo -u www-data php occ app:list # リスト
sudo -u www-data php occ app:update パッケージ名 #アップデート
sudo -u www-data php occ app:install パッケージ名 #インストール
sudo -u www-data php occ app:remove パッケージ名 #アンインストール
sudo -u www-data php occ app:enable パッケージ名 #有効化
sudo -u www-data php occ app:disable パッケージ名 #無効化
sudo -u www-data php occ app:remove パッケージ名 #アンインストール
sudo -u www-data php occ app:update --showonly --all # 有効にしているものだけをアップデート

執筆者紹介

Thir

購入したガジェットの紹介やサーバーの構築方法、スマートホーム化等、そのときハマっていたもののメモ書き・趣味の備忘録ではありますが、お役に立つ情報があれば幸いです。最近はYouTubeでもレビュー動画やVlogをあげています。サイト紹介・プロフィールはこちら。依頼・お問い合わせはこちらから。