nextcloud – matoken's blog https://matoken.org/blog Is there no plan B? Fri, 16 Aug 2024 21:50:18 +0000 ja hourly 1 https://wordpress.org/?v=6.7.2 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg nextcloud – matoken's blog https://matoken.org/blog 32 32 Android版 Nextcloudアプリを QR code で認証 https://matoken.org/blog/2024/08/17/authenticate-android-version-nextcloud-app-with-qr-code/ https://matoken.org/blog/2024/08/17/authenticate-android-version-nextcloud-app-with-qr-code/#respond Fri, 16 Aug 2024 21:50:15 +0000 https://matoken.org/blog/?p=4089

Android 端末をセットアップしています.Nextcloid アプリで以前から QR code でも認証できそうだけどどうやって認証用の QR code を作るんだろうと思いながら手動で入力していました.

NC QR Android02

今回やり方に気づきました.

Nextcloud の認証に他要素認証を使っている環境なので,Web の Nextcloud でアプリケーションパスワードを生成します.

NC QR01

このとき下の方に「モバイルアプリのQRコードを表示する」ボタンがあるのでこれを押すと QR code が表示されます.

NC QR02

Android アプリ側で「ログイン」

NC QR Android01

下の QR code ぽい画像をタップ.QR code 読み取り用のカメラが起動するので先程のアプリパスワードの QR code を読み取ります.

NC QR Android02

お手軽ですね :)

Nextcloud環境
$ sudo -u www-data php ./occ --version
Nextcloud 29.0.4
$ lsb_release -dr
No LSB modules are available.
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
$ arch
x86_64
Android環境
$ adb shell dumpsys package com.nextcloud.client | grep versionName=
    versionName=3.29.2
$ adb shell getprop ro.build.version.release
14
$ adb shell getprop ro.build.version.sdk
34
$ adb shell getprop ro.build.id
UTA34.82-73
$ adb shell getprop ro.product.model
moto g24
]]>
https://matoken.org/blog/2024/08/17/authenticate-android-version-nextcloud-app-with-qr-code/feed/ 0
Nextcloudが要件以上のPHPバージョンを求めてきて動かなくなった https://matoken.org/blog/2022/07/20/nextcloud-stopped-working-asking-for-a-php-version-that-exceeded-the-requirements/ https://matoken.org/blog/2022/07/20/nextcloud-stopped-working-asking-for-a-php-version-that-exceeded-the-requirements/#respond Tue, 19 Jul 2022 21:24:06 +0000 http://matoken.org/blog/?p=3725

Nextcloudが動かなくなりました.
アクセスすると以下のようなエラーメッセージが表示されて動きません.

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0".

Nextcloud
内部サーバーエラー
サーバーは要求を完了できませんでした。

再びこのようなことが起こった場合は、以下の技術情報をサーバー管理者に送ってください。

詳細は、サーバーのログを確認してください。

技術詳細
リモートアドレス: 180.131.110.140
リクエスト ID: QkMNcL7xRrQwxESLUU9Y

nextcloud php7.4

Nextcloudのバージョンアップはしていません.sourceを少し見ると7.3以上で大丈夫そうです.

lib/versioncheck.php:
if (PHP_VERSION_ID < 70300) {
        http_response_code(500);
        echo 'This version of Nextcloud requires at least PHP 7.3<br/>';
        echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.';
        exit(1);
}

NextcloudのISSUEを探すと以下のようなものを見つけました.

ここでは,Pollsを3.5に上げるとPHP 7.4以上を求めるようになってしまう,PHPを7.4以上にするかPollsをダウングレードすると直るという感じのようです.
そういえばNextcloudのメンテとしてアプリケーション更新はしていたのでこのレが当てはまっていそうです.この環境はDebian busterでphpは7.3です.Bullseyeに上げるとphp 7.4になりますが未だ準備が出来ていません.

$ rmadison php
php        | 1:7.0+49      | oldoldstable | all
php        | 2:7.3+69      | oldstable    | all
php        | 2:7.4+76      | stable       | all
php        | 2:8.1+92      | testing      | all
php        | 2:8.1+92      | unstable     | all
php        | 2:8.2+93~exp1 | experimental | all

ということでアプリケーションのダウングレードを行いました.

$ sudo -u www-data php ./occ app:disable polls (1)
$ sudo -u www-data php ./occ app:remove polls (2)
$ wget https://github.com/nextcloud/polls/releases/download/v3.4.2/polls.tar.gz -O /tmp/polls.tar.gz (3)
$ sudo -u www-data tar xvf /tmp/polls.tar.gz -C ./apps/ (4)
$ sudo -u www-data php ./occ app:enable polls (5)
$ rm /tmp/polls.tar.gz
  1. pullsを無効化
  2. pullsを削除
  3. pulls 3.4.2をダウンロード
  4. pulls 3.4.2を展開
  5. pullsを有効化

自分の環境ではこれだけでは治らなかったです.
以下のようにアプリケーション中から7.4を求めるものを探して同様に無効化,削除,旧バーションのダウンロードと展開,有効化を行い治りました.

$ sudo -u www-data find ./apps -type f -iname "*.php" -print0 | xargs -0 grep "70400"

Nextcloudの要件以上をアプリケーションで求め,インストールできてしまうというのは初めて遭遇しました.少し気をつけないといけませんね.
そして早めにDebian Bullesyeに上げてPHPを7.4にしたいところです.

Note

PHPのsiteから7.4を入手して設定も有りかもですがメンテナンスコストが上がってしまいますね…….

環境
$ sudo -u www-data php ./occ --version
Nextcloud 23.0.7
$ php -v
PHP 7.3.31-1~deb10u1 (cli) (built: Oct 24 2021 15:18:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.31, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.31-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ arch
x86_64
]]>
https://matoken.org/blog/2022/07/20/nextcloud-stopped-working-asking-for-a-php-version-that-exceeded-the-requirements/feed/ 0
Nextcloud 21のセキュリティ&セットアップ警告の修正 default_phone_region(電話地域)を設定 https://matoken.org/blog/2021/07/09/nextcloud-21-default-phone-region-setting/ https://matoken.org/blog/2021/07/09/nextcloud-21-default-phone-region-setting/#comments Thu, 08 Jul 2021 22:34:38 +0000 http://matoken.org/blog/?p=3296

Nextcloud 21でセキュリティ&セットアップ警告を確認して修正しました.

管理者アカウントで「設定」→「管理」の「概要」から「セキュリティ&セットアップ警告」を確認します.

今回は1件の警告がありました.

NC21 setup warning01

セットアップに関して警告がいくつかあります。
ご使用のシステムには、デフォルトの電話地域が設定されていません。これは、国コードなしでプロファイル設定の電話番号を検証するために必要です。国コードなしで番号を許可するには、地域のそれぞれの ISO3166-1コード↗とともに “default_phone_region” を設定ファイルに追加してください。

新しい設定項目が増えたようです. config.php に電話地域の設定( default_phone_region )が必要になったようです.

まずは,以下のページを参考に自分の設定したい地域の地域コードを確認します.自分はジホンに設定したいので,Japanのところを見ました. JP のようです.

JP Japan 1974 .jp ISO 3166-2:JP

次に以下の文章を参考に,${NEXTCLOUDPATH}/config/config.php$CONFIG = array の中の適当な部分に 'default_phone_region' ⇒ 'JP', を追記します.

再度「セキュリティ&セットアップ警告」を再読込して警告が消えていたらOKです.

NC21 setup warning02

環境
$ sudo -u www-data php ${NEXTCLOUDPATH}/occ --version
Nextcloud 21.0.3
$ dpkg-query -W php apache2 mariadb-server
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.29-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ arch
x86_64
]]>
https://matoken.org/blog/2021/07/09/nextcloud-21-default-phone-region-setting/feed/ 1
Nextcloud 21のアップデートに失敗(非対応アプリの無効化) https://matoken.org/blog/2021/07/09/nextcloud-21-update-fail/ https://matoken.org/blog/2021/07/09/nextcloud-21-update-fail/#respond Thu, 08 Jul 2021 22:16:37 +0000 http://matoken.org/blog/?p=3292

Nextcloud 21.02から21.0.3にアップデートしました.
しかしアップデート終了後に動作しなくなってしまいました.非対応アプリがあったせいだったのでそれを無効化して復活しました.

いつものように occ コマンドでアップデートを行いました.

$ sudo -u www-data php ${NEXTCLOUDPATH}/updater/updater.phar
Nextcloud Updater - version: v20.0.0beta4-11-g68fa0d4

Current version is 21.0.2.

Update to Nextcloud 21.0.3 available. (channel: "stable")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-21.0.3.zip
Open changelog ↗

Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrity
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done

Start update? [y/N] y

Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.

[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] Replace entry points
[✔] Delete old files
[✔] Move new files in place
[✔] Done

Update of code successful.

Should the "occ upgrade" command be executed? [Y/n]
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade

  : (1)

2021-07-07T13:51:49+00:00 Starting code integrity check...
2021-07-07T13:52:09+00:00 Finished code integrity check
2021-07-07T13:52:09+00:00 Update successful
2021-07-07T13:52:09+00:00 Maintenance mode is kept active
2021-07-07T13:52:09+00:00 Resetting log level

Keep maintenance mode active? [y/N]
Maintenance mode disabled

Maintenance mode is disabled
  1. 中略

するとNextcloudが動作しなくなりました.occコマンドも使えなくなっています.files_external_dropbox アプリが怪しそうなのでこれを無効化したいのですが,occコマンド自体が動かなくなっているしWebも動作しないので無効化できません.

$ sudo -u www-data php /var/www/files.matoken.org/occ app:disable files_external_dropbox
An unhandled exception has been thrown:
Error: Undefined class constant 'MAJOR_VERSION' in /var/www/files.matoken.org/3rdparty/guzzlehttp/guzzle/src/Utils.php:118
Stack trace:
#0 /var/www/files.matoken.org/3rdparty/guzzlehttp/guzzle/src/functions.php(71): GuzzleHttp\Utils::defaultUserAgent()
#1 /var/www/files.matoken.org/apps/files_external_dropbox/vendor/guzzlehttp/guzzle/src/Client.php(194): GuzzleHttp\default_user_agent()
#2 /var/www/files.matoken.org/apps/files_external_dropbox/vendor/guzzlehttp/guzzle/src/Client.php(75): GuzzleHttp\Client->configureDefaults(Array)
#3 /var/www/files.matoken.org/lib/private/Http/Client/ClientService.php(62): GuzzleHttp\Client->__construct()
#4 /var/www/files.matoken.org/lib/private/OCS/DiscoveryService.php(55): OC\Http\Client\ClientService->newClient()
#5 /var/www/files.matoken.org/lib/private/Server.php(1264): OC\OCS\DiscoveryService->__construct(Object(OC\Memcache\Factory), Object(OC\Http\Client\ClientService))
#6 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(155): OC\Server->OC\{closure}(Object(OC\Server))
#7 /var/www/files.matoken.org/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(Pimple\Container))
#8 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(122): Pimple\Container->offsetGet('OCP\\OCS\\IDiscov...')
#9 /var/www/files.matoken.org/lib/private/ServerContainer.php(137): OC\AppFramework\Utility\SimpleContainer->query('OCP\\OCS\\IDiscov...', false)
#10 /var/www/files.matoken.org/lib/private/AppFramework/DependencyInjection/DIContainer.php(434): OC\ServerContainer->query('OCP\\OCS\\IDiscov...', true)
#11 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(87): OC\AppFramework\DependencyInjection\DIContainer->query('OCP\\OCS\\IDiscov...', true)
#12 [internal function]: OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(ReflectionParameter))
#13 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(101): array_map(Object(Closure), Array)
#14 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(109): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#15 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(126): OC\AppFramework\Utility\SimpleContainer->resolve('OCA\\Federation\\...')
#16 /var/www/files.matoken.org/lib/private/AppFramework/DependencyInjection/DIContainer.php(459): OC\AppFramework\Utility\SimpleContainer->query('OCA\\Federation\\...')
#17 /var/www/files.matoken.org/lib/private/AppFramework/DependencyInjection/DIContainer.php(431): OC\AppFramework\DependencyInjection\DIContainer->queryNoFallback('OCA\\Federation\\...')
#18 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(87): OC\AppFramework\DependencyInjection\DIContainer->query('OCA\\Federation\\...', true)
#19 [internal function]: OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(ReflectionParameter))
#20 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(101): array_map(Object(Closure), Array)
#21 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(109): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#22 /var/www/files.matoken.org/lib/private/AppFramework/Utility/SimpleContainer.php(126): OC\AppFramework\Utility\SimpleContainer->resolve('OCA\\Federation\\...')
#23 /var/www/files.matoken.org/lib/private/AppFramework/DependencyInjection/DIContainer.php(459): OC\AppFramework\Utility\SimpleContainer->query('OCA\\Federation\\...')
#24 /var/www/files.matoken.org/lib/private/ServerContainer.php(146): OC\AppFramework\DependencyInjection\DIContainer->queryNoFallback('OCA\\Federation\\...')
#25 /var/www/files.matoken.org/lib/private/Console/Application.php(221): OC\ServerContainer->query('OCA\\Federation\\...')
#26 /var/www/files.matoken.org/lib/private/Console/Application.php(136): OC\Console\Application->loadCommandsFromInfoXml(Array)
#27 /var/www/files.matoken.org/console.php(99): OC\Console\Application->loadCommands(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 /var/www/files.matoken.org/occ(11): require_once('/var/www/files....')

ということで,乱暴ですが files_external_dropbox をディレクトリごと退避しました.

$ sudo mv ${NEXTCLOUDPATH}apps/files_external_dropbox ~/tmp/

occコマンドもWebも動作するようになりました.

今回自動的に無効にならなかった原因は調べていませんが,config.php に今回のアプリの記述があったのでそのせいかもしれません.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ --version
Nextcloud 21.0.3
環境
$ sudo -u www-data php ${NEXTCLOUDPATH}/occ --version
Nextcloud 21.0.3
$ dpkg-query -W php apache2 mariadb-server
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.29-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ arch
x86_64
]]>
https://matoken.org/blog/2021/07/09/nextcloud-21-update-fail/feed/ 0
Nextcloudでurl共有したpdfをwebに埋め込みたい その2 https://matoken.org/blog/2021/03/17/i-want-to-embed-nextcloud-pdf-shared-url-on-the-web-part-2/ https://matoken.org/blog/2021/03/17/i-want-to-embed-nextcloud-pdf-shared-url-on-the-web-part-2/#comments Wed, 17 Mar 2021 12:48:59 +0000 http://matoken.org/blog/?p=3111

ドキュメント共有サイトの無料枠を使うのが辛くなったのでNextcloudのURL共有でどうにかならないかなと思っています.
まずはpdfファイルをobjectタグで埋め込む方法を試しました.

この方法のデメリットはcgiを用意しないといけない,pdfを読む気がなくてもページを読み込むとpdfファイルがダウンロードされてしまいページ容量が大きくなってしまう.そしてNextcloudに「<pdfファイル名> が公開リンクからダウンロードされました」という通知がたくさん届いてしまいちょっとうるさいといった感じです.

途中のcgiでキャッシュしてプレビュー用の画像を用意してwebにはそのプレビュー画像を表示しておけばいいのではとcgiを書き換えていました.headで引っ張ってもダウンロードされた扱いになるしdbから実ファイルの場所を探してそこからダウンロードするように,サムネイルもdbから引っ張ってこれるかな?とかやってましたがふとそれだと標準の機能で出来るのではと気づいたので試してみました.

pdf共有URLの末尾に /preview を付けるとプレビュー画像が表示されます.(標準では50MB以下のファイルの場合)

これを利用してこんな感じに書くと,

AsciiDocでの例
[quote,'link:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ[https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ]']
link:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ[image:https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ/preview[width=100%]]
htmlへ変換した例
<div class="quoteblock">
<blockquote>
<a href="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ"><span class="image"><img src="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4
nZ/preview" alt="preview" width="100%"></span></a>
<div class="attribution">
&#8212; <a href="https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ">https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ</a>
</div>
</blockquote>
</div>

こういうふうになりました.クリックするとNextcloudのpdfファイルプレビュー画面が開かれ,最近のモダンウェブブラウザではそのまま閲覧できます.

SpeakerDeckなんかでは埋め込んだページでそのまま読むことも出来ますがとりあえずこれならcgiも必要なくNextcloudの標準機能だけ(恐らくNC13以降で可能)でいけるのでそこそこいい感じではないかなと思います.

環境
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2021/03/17/i-want-to-embed-nextcloud-pdf-shared-url-on-the-web-part-2/feed/ 1
Nextcloudでurl共有したpdfをwebに埋め込みたい https://matoken.org/blog/2021/03/15/i-want-to-embed-url-shared-on-nextcloud-pdf-on-the-web/ https://matoken.org/blog/2021/03/15/i-want-to-embed-url-shared-on-nextcloud-pdf-on-the-web/#comments Sun, 14 Mar 2021 15:46:40 +0000 http://matoken.org/blog/?p=3083

スライドやドキュメントを共有するのにSpeakerDeckやedockrを使っています.(SlideShareは無料アカウントで再アップロードができなくなってしまってから使わなくなりました.)
SpeakerDeckの無料での制限で100アップロードまででそろそろいっぱい,edockrはしばらくしたら消えてしまうということを最近知りました.

pdfファイルを共有するだけならNextcloudでのURL共有を使えばいいのですが,webに埋め込むことが出来ません.Nextcloudの機能やアプリにそういったものがあるといいのですが,セキュリティの問題から実装されていません.

とりあえず雑な方法ですが,こんな感じで実現してみました.

Nextcloud URL共有リンクからpdfファイルを出力する

Nextcloudの公開URLの内容をpdfとして出力します.実行権を付けてcgiとして設定します.

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use IO::Handle;
STDOUT->autoflush(1);

$ARGV[0] = "" unless defined $ARGV[0];
my $url = $ARGV[0];
if( $url !~ /\/download$/ ){
  $url = $url . "/download";
}
print "Content-Type: application/pdf\n\n";
getprint($url);

とりあえずこんな感じでcgiの後ろにNextcloud公開URLを付けてアクセスするとブラウザでpdfを見ることができるようになりました.

embedタグでwebに埋め込む

上で作ったcgiをobjectタグで埋め込んでみるととりあえず埋め込みが出来ました.このとき height% を指定してもサイズが変わらないようでした.(Debian sid amd64 の chromium 88.0.4324.146-1, firefox 86.0.1-1 で確認)

<embed src="http://cgi.example.com/pdf.cgi?http://nextcloud.example.com/index.php/s/XXXXXXXXXXXXXXX" type="application/pdf" width="640px" height="480px">

とりあえずそれっぽいことは出来ましたが,この方法ではpdfを読まなくてもページ読み込み時にpdfを全部読み込んでしまうようなのであまりよろしくない感じです.このあたりはSpeakerdeckなどはちゃんとしてていいですね.

とりあえずはリンクで共有かな?

]]>
https://matoken.org/blog/2021/03/15/i-want-to-embed-url-shared-on-nextcloud-pdf-on-the-web/feed/ 2
Nextcloudの2要素認証が出来ないときに管理者が1度限りのワンタイムコードを発行できる「Two-Factor Admin Support」 https://matoken.org/blog/2021/03/13/two-factor-admin-support-that-allows-the-administrator-to-issue-a-one-time-code-when-nextclouds-two-factor-authentication-is-not-possible/ https://matoken.org/blog/2021/03/13/two-factor-admin-support-that-allows-the-administrator-to-issue-a-one-time-code-when-nextclouds-two-factor-authentication-is-not-possible/#respond Sat, 13 Mar 2021 12:22:55 +0000 http://matoken.org/blog/?p=3081

Nextcloudユーザが2要素認証を出来ないときにNextcloud管理者が48時間有効な1度限りのワンタイムコードを作成することができる「Two-Factor Admin Support」を試してみました.

「Two-Factor Admin Support」install
$ sudo -u www-data php occ app:install twofactor_admin

occコマンドで導入しました.WebインターフェイスからでもOKです.

nextcloud towfactor admin01

導入後,管理者アカウントで「設定」→「管理」→「セキュリティ」の「Two-Factor Admin」が出来ています.この「User ID」のテキストボックスにワンタイムコードを発行したいユーザIDを入力して「Generate」を押すと48時間有効なワンタイムコードが発行されます.このコードをユーザに伝えてログインしてもらいます.

occコマンドでのワンタイムコードの発行
$ sudo -u www-data php occ twofactorauth:admin:generate-code $USERID
There is an existing code that will be overwritten.

Generated new one-time code for test01: 163929
This code is valid for 48 hours.

occコマンドでも発行できます.

nextcloud towfactor admin02

該当ユーザはユーザID/パスワードを入力した後の2要素認証で「Admin code」という選択肢が増えるのでそれを選びます.

nextcloud towfactor admin03

管理者に教えてもらったワンタイムコードを入力してログインします.

TOTPのデバイスを壊してしまったり家に忘れてきたとかいったときに便利そうです.(数が少なければ)

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ app:list | grep twofactor_admin:
  - twofactor_admin: 3.0.0
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2021/03/13/two-factor-admin-support-that-allows-the-administrator-to-issue-a-one-time-code-when-nextclouds-two-factor-authentication-is-not-possible/feed/ 0
Nextcloudのmailアプリのアップデートに失敗してNextcloudが使えなくなって困る https://matoken.org/blog/2021/03/12/im-having-trouble-updating-nextclouds-mail-app-and-not-being-able-to-use-nextcloud/ https://matoken.org/blog/2021/03/12/im-having-trouble-updating-nextclouds-mail-app-and-not-being-able-to-use-nextcloud/#respond Fri, 12 Mar 2021 14:32:38 +0000 http://matoken.org/blog/?p=3078

Nextcloudアプリのアップデートを行ったところmailの処理中にコケてしまったようです.

$ sudo -u www-data php occ app:update --all
richdocuments new version available: 3.7.17
richdocuments updated
forms new version available: 2.2.1
forms updated
mail new version available: 1.9.2
An unhandled exception has been thrown:
Error: Call to undefined method OCA\Mail\Db\MessageMapper::findWithEmptyMessageId() in /var/www/files.matoken.org/apps/mail/lib/Migration/AddMissingMessageIds.
php:55
Stack trace:
#0 /var/www/files.matoken.org/lib/private/Repair.php(112): OCA\Mail\Migration\AddMissingMessageIds->run(Object(OC\Repair))
#1 /var/www/files.matoken.org/lib/private/legacy/OC_App.php(1042): OC\Repair->run()
#2 /var/www/files.matoken.org/lib/private/legacy/OC_App.php(979): OC_App::executeRepairSteps('mail', Array)
#3 /var/www/files.matoken.org/lib/private/Installer.php(206): OC_App::updateApp('mail')
#4 /var/www/files.matoken.org/core/Command/App/Update.php(116): OC\Installer->updateAppstoreApp('mail', false)
#5 /var/www/files.matoken.org/3rdparty/symfony/console/Command/Command.php(255): OC\Core\Command\App\Update->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /var/www/files.matoken.org/3rdparty/symfony/console/Application.php(1000): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /var/www/files.matoken.org/3rdparty/symfony/console/Application.php(271): Symfony\Component\Console\Application->doRunCommand(Object(OC\Core\Command\App\Update), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 /var/www/files.matoken.org/3rdparty/symfony/console/Application.php(147): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 /var/www/files.matoken.org/lib/private/Console/Application.php(215): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /var/www/files.matoken.org/console.php(100): OC\Console\Application->run()
#11 /var/www/files.matoken.org/occ(11): require_once('/var/www/files....')
#12 {main}mk@www6073uo:/var/www/files.matoken.org

再度実行すると処理は進んだようですが,縮退モードのような感じになっています.この状態でNextcloudのWebにアクセスするとアップデートを求められて利用できません.

$ sudo -u www-data php occ app:update --all
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
files_linkeditor new version available: 1.1.4
files_linkeditor updated

どうしたもんかととりあえず原因であろうmailをアップデートしようとするとすでに最新のようです.
次にmailを無効化してみました.するとNextcloud Webが利用できるようになりました.
一旦削除してインストールし直したほうが確実だろうなと思いつつmailを有効化するとNextcloudもmailも利用できるようになりました.

$ sudo -u www-data php occ app:update mail (1)
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
$ sudo -u www-data php occ app:disable mail (2)
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
mail 1.9.2 disabled
$ sudo -u www-data php occ app:enable mail (3)
mail 1.9.2 enabled
  1. mailアプリをアップデートしても反応はない
  2. mailアプリを無効化してNextcloud復旧
  3. mailアプリを有効化

occ app:disable mail の後 occ app:remove mail && occ app:install mail したほうが確実だと思います.

ちなみにNextcloud Hub以外のあまりメジャーでないアプリなどをインストールしてうまく動かないときにもNextcloudが動かなくなることがあります.そういうときも occ app:disable で復旧できるので覚えておくと助かります.

環境
$ sudo -u www-data php occ app:list | grep \ mail:
  - mail: 1.9.2
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2021/03/12/im-having-trouble-updating-nextclouds-mail-app-and-not-being-able-to-use-nextcloud/feed/ 0
Nextcloudの電子メール2要素認証の「Two Factor e-mail provider」 https://matoken.org/blog/2021/03/12/nextcloud-email-two-factor-authentication-two-factor-e-mail-provider/ https://matoken.org/blog/2021/03/12/nextcloud-email-two-factor-authentication-two-factor-e-mail-provider/#respond Fri, 12 Mar 2021 11:03:17 +0000 http://matoken.org/blog/?p=3075

Nextcloudアプリの「A Two-Factor-Auth Provider for e-mail」を試してみました.これはNextcloud認証時にユーザID/パスワードで認証した後設定されたメールアドレスにワンタイムトークンが届いて,それを使って2要素目の認証ができるようになるものです.

$ sudo -u www-data php occ app:install twofactor_admin
twofactor_admin 3.0.0 installed
twofactor_admin enabled

まずは導入.occ コマンドでインストールしました.WebIFからでもOKです.

nextcloud towfactor email01

2要素認証を有効にしたいユーザでNextcloud Webにログインして,「右上のアイコン」→「設定」→「個人情報」の「メール」に正しいメールアドレスが設定されているのを確認して,「セキュリティ」→「二要素認証」→「Email verification」の「Enable」を押して有効にします.

Note
電子メールアドレスが未登録だと以下のようなメッセージとなりました.
Could not generate a code: user hoge does not exist

nextcloud towfactor email02

するとトークンがNextcloudに設定したメールアドレスに送信されるのでメールを確認してトークンをテキストボックスに入力して,「Veryfi」を押して確認します.

nextcloud towfactor email03

うまく行きました.
一旦ログアウトしてログインしてみます.

nextcloud towfactor email04

ユーザID/パスワードで認証した後,「Email verification」の画面になります.メールが送信されているはずかので確認してそこに書かれているトークンを入力してログインします.

2要素認証ではTOTP以外にもSMS, Telegram, Signalなどもありますがそれぞれ設定が面倒です.電子メールであればユーザの設定は少ないので良さそうです.

環境
$ sudo -u www-data php occ app:list | grep previewgenerator:
  - previewgenerator: 3.1.1
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2021/03/12/nextcloud-email-two-factor-authentication-two-factor-e-mail-provider/feed/ 0
Nextcloudのファイルプレビューを少しカスタマイズ https://matoken.org/blog/2021/03/12/customized-file-preview-for-nextcloud/ https://matoken.org/blog/2021/03/12/customized-file-preview-for-nextcloud/#respond Thu, 11 Mar 2021 22:36:08 +0000 http://matoken.org/blog/?p=3073

Nextcloudでは画像ファイル,MP3ファイルのカバー,テキストファイルのプレビューを生成できます.既定値ではこの機能は有効になっていて,アクセス時にプレビューが生成されます.
Nextcloudを軽く出来ないかと config/config.php ファイルに 'enable_previews' ⇒ false, を設定して無効にしてみましたが不便です.

nextcloud preview false

ということで再度プレビューを有効にしました.ついでにプレビューサイズを4096から1024に小さくしてプロバイダーを少し増やしてみました.

config/config.php
  'enable_previews' => true, (1)
  'preview_max_x'  =>  1024, (2)
  'preview_max_y'  =>  1024, (3)
  'preview_max_filesize_image'  =>  50, (4)
  'enabledPreviewProviders' => [ (5)
        'OC\Preview\PNG',
        'OC\Preview\JPEG',
        'OC\Preview\GIF',
        'OC\Preview\HEIC',
        'OC\Preview\BMP',
        'OC\Preview\XBitmap',
        'OC\Preview\MP3',
        'OC\Preview\TXT',
        'OC\Preview\MarkDown',
        'OC\Preview\OpenDocument',
        'OC\Preview\Krita',
        'OC\Preview\PDF',
        'OC\Preview\Postscript',
        'OC\Preview\SVG',
        'OC\Preview\TIFF',
        'OC\Preview\Font',
  ],
  1. プレビューを有効にする,既定値 true
  2. プレビュー横サイズ,既定値 4096
  3. プレビュー縦サイズ,既定値 4096
  4. プレビュー対象の最大ファイルサイズ,これ以上のサイズのファイルはプレビューが作られない,単位はMB,既定値 50
  5. プレビューファイルプロバイダー,既定値は '' で内容は,

edit 2021-03-17)
スマホ写真やpdfはあらかた1MBを超えるので preview_max_filesize_image は1MBから規定値の50MBに戻しました.

OC\Preview\BMP
OC\Preview\GIF
OC\Preview\HEIC
OC\Preview\JPEG
OC\Preview\MarkDown
OC\Preview\MP3
OC\Preview\PNG
OC\Preview\TXT
OC\Preview\XBitmap
OC\Preview\OpenDocument
OC\Preview\Krita

その他の既定値以外のプロバイダー

OC\Preview\Illustrator
OC\Preview\Movie
OC\Preview\MSOffice2003
OC\Preview\MSOffice2007
OC\Preview\MSOfficeDoc
OC\Preview\PDF
OC\Preview\Photoshop
OC\Preview\Postscript
OC\Preview\StarOffice
OC\Preview\SVG
OC\Preview\TIFF
OC\Preview\Font

そして Preview Generator というプレビューを事前生成してくれるアプリを試してみようとしましたが,暗号化を有効にしていると利用できませんでした.パスワード入力してプレビュー生成ができると便利かもですがなんにせよ自分以外のデータは触れないので微妙ですね.

Known issues
The app does not work with encryption enabled

— https://github.com/rullzer/previewgenerator#known-issues
$ sudo -u www-data php occ app:install previewgenerator (1)
previewgenerator 3.1.1 installed
previewgenerator enabled
$ sudo -u www-data php /var/www/files.matoken.org/occ | grep preview$ -A4 (2)
 preview
  preview:delete_old                      Delete old preview folder (pre NC11)
  preview:generate-all                    Generate previews
  preview:pre-generate                    Pre generate previews
  preview:repair                          distributes the existing previews into subfolders
$ sudo -u www-data php occ preview:generate-all (3)
Encryption is enabled. Aborted.
$ sudo -u www-data php occ app:remove previewgenerator (4)
previewgenerator disabled
previewgenerator 3.1.1 removed
  1. Preview Generatorをインストール
  2. usage
  3. 暗号化が有効だとプレビューの手動生成に失敗する
  4. Preview Generatorを削除
環境
$ sudo -u www-data php occ app:list | grep previewgenerator:
  - previewgenerator: 3.1.1
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2021/03/12/customized-file-preview-for-nextcloud/feed/ 0
Nextcloudで画像ファイルをURL共有してWebに埋め込んで利用したい https://matoken.org/blog/2021/03/11/i-want-to-share-an-image-file-with-nextcloud-and-embed-it-on-the-web/ https://matoken.org/blog/2021/03/11/i-want-to-share-an-image-file-with-nextcloud-and-embed-it-on-the-web/#respond Thu, 11 Mar 2021 11:34:45 +0000 http://matoken.org/blog/?p=3067

NextcloudでURL共有した画像をblogなどに埋め込む方法のメモです.今回はNextcloud 20.0.8ですが,Nextcloud 13.0.0から可能になった機能のようです.
共有単位は画像ファイル単体はOKですが,画像ファイルを含むディレクトリ共有ではうまく動かないようです.

20210311 18:03:55 252379

共有したい画像を共有

20210311 18:03:42 228558

「URLで共有」の右の「+」で共有

20210311 18:03:55 228828

URL共有されてURLがコピーされる

20210311 18:03:19 229349

既定値では共有有効期限が1週間に設定されているのでずっと公開したい場合は「有効期限を設定」のチェックを外す

20210311 18:03:02 234008

共有されたURLを開くとプレビューになる

画像をクリックすると,画像が開ける.
若しくは共有URLに /preview を追加する.
拡張子がないとうまく動作しないsiteなどの場合は,/preview?dummy.jpg などのように /preview の後ろにさらにそれらしい文字列を追加すると開けたりする.

https://files.matoken.org/index.php/s/bsaAdtxp8WgXLXE (1)
https://files.matoken.org/index.php/s/bsaAdtxp8WgXLXE/preview (2)
https://files.matoken.org/index.php/s/bsaAdtxp8WgXLXE/preview?/dummy.jpg (3)
  1. 共有URL(プレビューURL)
  2. URL末尾に /preview をつけると画像が表示される
  3. /preview の後ろにダミーファイル名をつける

後は普通に静的画像URLのようにして使えます.

$ wget -o /dev/null -O - https://files.matoken.org/index.php/s/bsaAdtxp8WgXLXE/preview | pee "file -" display
/dev/stdin: JPEG image data, JFIF standard 1.01, resolution (DPI), density 96x96, segment length 16, comment: "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90", baseline, precision 8, 512x342, components 3
preview

blogに貼り付けもできる :)

環境
$ sudo -u www-data php occ --version
Nextcloud 20.0.8
$ dpkg-query -W php mariadb-server apache2
apache2 2.4.38-3+deb10u4
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2021/03/11/i-want-to-share-an-image-file-with-nextcloud-and-embed-it-on-the-web/feed/ 0
Nextcloud 18 -> 19 アップグレード時のセキュリティ&セットアップ警告を解決 https://matoken.org/blog/2021/02/15/nextcloud-18-19-resolved-security-setup-warning-when-upgrading/ https://matoken.org/blog/2021/02/15/nextcloud-18-19-resolved-security-setup-warning-when-upgrading/#respond Sun, 14 Feb 2021 23:30:00 +0000 http://matoken.org/blog/?p=2991

Nextcloud 18 がEoL になっていたので,Nextcloud 18.0.14 から Nextcloud 19.0.7 にアップグレードしました.

表 1. Maintenance and Release Schedule · nextcloud/server Wiki
release date end of life current version next version

20

2020-10-03

2021-10

20.0.7 (2021-02-02)

20.0.8 (2021-02-25)

19

2020-06-03

2021-06

19.0.8 (2021-01-27)

19.0.9 (2021-02-25)

18

2020-01-16

2021-01

18.0.14 (2021-01-27)

End of Life

$ sudo -u www-data php $NEXTCLOUDPATH/occ app:update --all
$ sudo -u www-data php $NEXTCLOUDPATH/updater/updater.phar
$ sudo -u www-data php $NEXTCLOUDPATH/occ app:update --all

以前実行したときと比べて「セキュリティ&セットアップ警告」の内容が違っていたのでメモしておきます.

警告を解決

警告メッセージ全体
セキュリティ&セットアップ警告
サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。

セットアップに関して警告がいくつかあります。
PHPのメモリ制限が推奨値の512MB以下です。
"Strict-Transport-Security" HTTPヘッダが最低でも "15552000" 秒に設定されていません。セキュリティを強化するには、セキュリティTips ↗で解説しているHSTSを有効にすることを推奨します。
Webサーバーは適切にホスト名 "/.well-known/caldav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
Webサーバーは適切にホスト名 "/.well-known/carddav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
メモリキャッシュが設定されていません。可能であれば、パフォーマンスを向上するため、memcacheを設定してください。より詳しい情報はドキュメントで参照できます。
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_calendarobjects_props"のインデックス "calendarobject_calid_index"が見つかりません。
テーブル "oc_schedulingobjects"のインデックス "schedulobj_principuri_index"が見つかりません。
テーブル "oc_properties"のインデックス "properties_path_index"が見つかりません。
データベースにはオプションのカラムがいくつかありません。大きなテーブルにカラムを追加するには時間がかかるため、オプションのカラムは自動的に追加されませんでした。"occ db:add-missing-columns"を実行することで、不足しているカラムはインスタンスの実行中に手動で追加することができます。カラムが追加されると、応答性や使い勝手が改善される可能性があります。
テーブル "oc_comments" にオプションのカラム "reference_id" が存在しません。
このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。
intl
bcmath
gmp
データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 'occ db:convert-filecache-bigint'を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。 詳細についてはこれに関するドキュメントページを読んでください。
filecache_extended.fileid
mounts.storage_id
mounts.root_id
mounts.mount_id
インストールガイド ↗を再確認して、 ログ にあるすべてのエラーや警告を確認してください。

「このインスタンスには推奨されるPHPモジュールがいくつかありません。」

php

このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。
intl
bcmath
gmp

該当パッケージを導入してhttpdを再読込します.

$ sudo apt install php-intl php-bcmath php-gmp (1)
$ sudo service apache2 reload (2)
  1. 対応パッケージの導入
  2. apache httpd 再読込

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

データベースにいくつかのインデックスがありません。

db index

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_calendarobjects_props"のインデックス "calendarobject_calid_index"が見つかりません。
テーブル "oc_schedulingobjects"のインデックス "schedulobj_principuri_index"が見つかりません。
テーブル "oc_properties"のインデックス "properties_path_index"が見つかりません。

メッセージの通りoccコマンドでインデックスを作成します.メッセージそのままコピーすると:がマルチバイト文字になっているので注意しましょう.

$ sudo -u www-data php $NEXTCLOUDPATH/occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Adding calendarobject_calid_index index to the calendarobjects_props table, this can take some time...
calendarobjects_props table updated successfully.
Check indices of the schedulingobjects table.
Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time...
schedulingobjects table updated successfully.
Check indices of the oc_properties table.
Adding properties_path_index index to the oc_properties table, this can take some time...
oc_properties table updated successfully.

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「データベースにはオプションのカラムがいくつかありません。」

db collum

データベースにはオプションのカラムがいくつかありません。大きなテーブルにカラムを追加するには時間がかかるため、オプションのカラムは自動的に追加されませんでした。"occ db:add-missing-columns"を実行することで、不足しているカラムはインスタンスの実行中に手動で追加することができます。カラムが追加されると、応答性や使い勝手が改善される可能性があります。
テーブル "oc_comments" にオプションのカラム "reference_id" が存在しません。

メッセージの通りoccコマンドでカラムを追加します.メッセージそのままコピーすると:がマルチバイト文字になっているので注意しましょう.

$ sudo -u www-data php $NEXTCLOUDPATH/occ db:add-missing-columns
Check columns of the comments table.
Adding additional reference_id column to the comments table, this can take some time...
Comments table updated successfully.

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「データベース内のいくつかの列で、big intへの変換が行われていません。」

db big init

データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 'occ db:convert-filecache-bigint'を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。 詳細についてはこれに関するドキュメントページを読んでください。
filecache_extended.fileid
mounts.storage_id
mounts.root_id
mounts.mount_id

メッセージの通りoccコマンドでbig intへの変換をします.メッセージそのままコピーすると:がマルチバイト文字になっているので注意しましょう.
途中時間がかかる旨のメッセージが表示されます.y を指定することで処理を続行します.siteの規模や利用状況によって実行時間を考えましょう.

$ sudo -u www-data php $NEXTCLOUDPATH/occ db:convert-filecache-bigint
Following columns will be updated:

* filecache_extended.fileid
* mounts.storage_id
* mounts.root_id
* mounts.mount_id

This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「PHPのメモリ制限が推奨値の512MB以下です。」

php memory

PHPのメモリ制限が推奨値の512MB以下です。

phpの memory_limit の値を /etc/php/7.4/apache2/php.ini を編集して修正します.その後httpdの再読込を行います.

$ sudo vim /etc/php/7.4/apache2/php.ini (1)
$ sudo git -C /etc diff /etc/php/7.4/apache2/php.ini (2)
diff --git a/php/7.4/apache2/php.ini b/php/7.4/apache2/php.ini
index ef89b713..407ee04d 100644
--- a/php/7.4/apache2/php.ini
+++ b/php/7.4/apache2/php.ini
@@ -406,7 +406,7 @@ max_input_time = 60

 ; Maximum amount of memory a script may consume (128MB)
 ; http://php.net/memory-limit
-memory_limit = 128M
+memory_limit = 512M

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Error handling and logging ;
$ php --php-ini /etc/php/7.4/apache2/php.ini -i | grep memory_limit (3)
memory_limit => 512M => 512M
$ sudo service apache2 reload (4)
  1. vimで設定ファイルを修正
  2. 編集内容確認
  3. 設定確認
  4. apache httpd を再読込

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「”Strict-Transport-Security” HTTPヘッダが最低でも “15552000” 秒に設定されていません。」

hsts

"Strict-Transport-Security" HTTPヘッダが最低でも "15552000" 秒に設定されていません。セキュリティを強化するには、セキュリティTips ↗で解説しているHSTSを有効にすることを推奨します。
$ sudo vi /etc/apache2/sites-available/nextcloud.conf (1)
$ sudo git -C /etc diff /etc/apache2/sites-available/nextcloud.conf (2)
diff --git a/apache2/sites-available/nextcloud.conf b/apache2/sites-available/nextcloud.conf
index 2844232c..4a064d52 100644
--- a/apache2/sites-available/nextcloud.conf
+++ b/apache2/sites-available/nextcloud.conf
@@ -135,6 +135,10 @@
                #               nokeepalive ssl-unclean-shutdown \
                #               downgrade-1.0 force-response-1.0

+               <IfModule mod_headers.c>
+                       Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
+               </IfModule>
+
        </VirtualHost>
 </IfModule>

$ sudo apache2ctl configtest (3)
Syntax OK
$ sudo service apache2 reload (4)
  1. apacheの該当のサイト設定修正
  2. 設定確認
  3. 文法チェック
  4. apache httpd再読込

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「Webサーバーは適切にホスト名が引けるように設定されていません。」

well known

Webサーバーは適切にホスト名 "/.well-known/caldav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。
Webサーバーは適切にホスト名 "/.well-known/carddav" が引けるように設定されていません。より詳しい情報については、ドキュメントを参照ください。

専用のドメインではなくサブディレクトリ( nextcloud )で運用しているNextcloud なので,ドメインのドキュメントルートに以下のような .htaccess ファイルを用意します.caldav/carddavだけでなく一緒に他のものも設定しました.専用の(サブ)ドメインならこの問題は出ないと思います.

$ sudo -u www-data vi $HTTPROOTPATH/.htaccess (1)
$ cat $HTTPROOTPATH/.htaccess (2)
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
  RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
  RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
  RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
  RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>
  1. NextcloudのhttpdのROOT直下の .htaccess ファイルを編集
  2. 編集内容を確認.

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「メモリキャッシュが設定されていません。」

memcache

メモリキャッシュが設定されていません。可能であれば、パフォーマンスを向上するため、memcacheを設定してください。より詳しい情報はドキュメントで参照できます。
A memcache is not required and you may safely ignore the warning if you prefer.

この設定は必須ではなさそうですが,RAMは余っているので設定します.

いくつか種類があるようですが,今回はAPCuを設定しました.

$ sudo apt install php-apcu (1)
$ sudo -u www-data vim $NEXTCLOUDPATH/config/config.php (2)
$ sudo git --git-dir=/var/git/nextcloud --work-tree=. diff config/config.php (3)
diff --git a/config/config.php b/config/config.php
index f62133e..62d137d 100644
--- a/config/config.php
+++ b/config/config.php
@@ -41,4 +41,5 @@ $CONFIG = array (
   array (
   ),
   'mail_sendmailmode' => 'smtp',
+  'memcache.local' => '\OC\Memcache\APCu',
 );
  1. APCuのパッケージを導入
  2. Nextcloudの設定ファイルを編集して設定を追加
  3. 設定確認

「セキュリティ&セットアップ警告」ページを再読込して警告が消えるのを確認します.

「すべてのチェックに合格しました。」

ok

:)

環境

今回のホストの環境はUbuntu 20.04 LTS amd64のapache httpd 2.4, mysql server 8, php 7.4です.

$ dpkg-query -W php7.4-common php7.4-apcu apache2 mysql-server
apache2 2.4.41-4ubuntu3.2
mysql-server    8.0.23-0ubuntu0.20.04.1
php7.4-apcu
php7.4-common   7.4.3-4ubuntu2.4
$ lsb_release -dr
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
$ uname -m
x86_64

]]>
https://matoken.org/blog/2021/02/15/nextcloud-18-19-resolved-security-setup-warning-when-upgrading/feed/ 0
Nextcloudが Internal Server Error を返すようになって困った https://matoken.org/blog/2021/01/19/im-having-trouble-getting-nextcloud-to-return-an-internal-server-error/ https://matoken.org/blog/2021/01/19/im-having-trouble-getting-nextcloud-to-return-an-internal-server-error/#respond Mon, 18 Jan 2021 23:42:49 +0000 http://matoken.org/blog/?p=2924

NextcloudのWeb版にアクセスすると Internal Server Error が帰ってくるようになっていました.

20210119 00:01:55 1076844

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

別のユーザで試すとログイン画面は表示されて認証機能は動作します.しかしログイン後同じように Internal Server Error このときAndroid版アプリでは普通に利用できていそうです.

よくあるのがサポート対象外になったレガシーなアプリを導入すると同じような状態になることがあります.
しかし,前回利用できていたときと現在の間に特にディストリビューション, Nextcloud, Nextcloudアプリ共にアップデートはしていないはずです.

ログを確認するとhttpdのaccess/errorのlogは特に問題なさそう.
nextcloud.logでそれらしいのは file_put_contents failed でしょうか?

logはNextcloudの設定ファイルの config.php で確認できる.
$ grep log config/config.php
  'log_type' => 'file',
  'logfile' => '/var/log/nextcloud.log',
  'loglevel' => 0,
$ tail -f /var/log/nextcloud.log | jq .
errorっぽいところ?
{
  "reqId": "DVQsgBekfOCY3dvjYO6w",
  "level": 3,
  "time": "2021-01-18T14:59:53+00:00",
  "remoteAddr": "180.131.110.140",
  "user": "matoken",
  "app": "core",
  "method": "GET",
  "url": "/index.php/apps/files/",
  "message": {
    "Exception": "OCP\\Files\\GenericFileException",
    "Message": "file_put_contents failed",
    "Code": 0,
    "Trace": [
      {

まずは手動でファイルとデータベースのバックアップを取っておきます.

バックアップ例
$ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --on (1)
$ sudo -u www-data tar cvf - ${NEXTCLOUD_PATH} | xz > ${BACKUP_PATH}/nextcloud-`date +%F_%T`.tar.xz (2)
$ sudo -u www-data tar cvf - ${NEXTCLOUD_DATA_PATH} | xz > ${BACKUP_PATH}/nextcloud-data-`date +%F_%T`.tar.xz (3)
$ mysqldump --opt --all-databases --events | xz > ${BACKUP_PATH}/nextcloud-`date +%F_%T`.sql.xz (4)
$ sudo -u www-data php /var/www/files.matoken.org/occ maintenance:mode --off (5)
1 メンテナンスモードにする
2 Nextcloud自体のバックアップ
3 Nextcloudデータのバックアップ
4 データベースのバックアップ
5 メンテンスモードを終了

occmaintenance:repair コマンドを試します.

$ sudo -u www-data php ${NEXTCLOUD_PATH}/occ maintenance:repair
 - Repair MySQL collation
     - All tables already have the correct collation -> nothing to do
 - Repair mime types
  : 以下略

コマンド終了後webを再読込するとエラーは解消されました. :)

しかしファイルの一覧が表示されません.最新ファイルは表示されるのでそのファイルを確認すると表示されます.

次に occ files:scan を試してみました.

$ sudo -u www-data php ${NEXTCLOUD_PATH}/occ files:scan --all
Starting scan for user 1 out of 7 (user1)
  : ※省略
+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 20752   | 34164 | 00:04:33     |
+---------+-------+--------------+

これでは変わらなかったようです.多分必要なかった.

次に occ files:scan-app-data を試します.

$ sudo -u www-data php ${NEXTCLOUD_PATH}/occ files:scan-app-data
Scanning AppData for files

+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 84      | 97    | 00:00:01     |
+---------+-------+--------------+

これが当たりだったようで復活しました!

ログを見るとこの問題が発生している間も他のNextcloudアプリは動作していたようだし,Androidアプリ版ではファイルの自動アップロードも動いていたようなので恐らくNextcloud Web版の部分が壊れていたのではないかと思います.

しかし治ったのはいいけどなぜこれが起こったかが謎なのが気持ち悪いです…….

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ -V
Nextcloud 20.0.5
$ dpkg-query -W php mariadb-server
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

]]>
https://matoken.org/blog/2021/01/19/im-having-trouble-getting-nextcloud-to-return-an-internal-server-error/feed/ 0
Nextcloud 20.0.4のセキュリティ&セットアップ警告に対応 https://matoken.org/blog/2021/01/11/fixed-nextcloud-20-0-4-security-setup-warnings/ https://matoken.org/blog/2021/01/11/fixed-nextcloud-20-0-4-security-setup-warnings/#respond Mon, 11 Jan 2021 11:48:33 +0000 http://matoken.org/blog/?p=2916

先日 Nextcloud 19.0.6 から 20.0.4 にアップデートしました.
すると「セキュリティ&セットアップ警告」画面にいくつか警告が出てきたのでその対応メモです.

20201227 19:12:04 2470200

セキュリティ&セットアップ警告
サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。

セットアップに関して警告がいくつかあります。
The old server-side-encryption format is enabled. We recommend disabling this. For more details see the documentation.
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_cards"のインデックス "cards_abiduri"が見つかりません。
The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.
Missing primary key on table "oc_federated_reshares".
Missing primary key on table "oc_systemtag_object_mapping".
Missing primary key on table "oc_comments_read_markers".
Missing primary key on table "oc_collres_resources".
Missing primary key on table "oc_collres_accesscache".
Missing primary key on table "oc_filecache_extended".
データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 'occ db:convert-filecache-bigint'を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。 詳細についてはこれに関するドキュメントページを読んでください。
federated_reshares.share_id
filecache_extended.fileid
share_external.id
share_external.parent
インストールガイド ↗を再確認して、 ログ にあるすべてのエラーや警告を確認してください。

データベースにいくつかのインデックスがありません。

データベースから修正していきます.まあ書いてあるコマンドを叩くだけですが.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Adding cards_abiduri index to the cards table, this can take some time...
cards table updated successfully.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.

The database is missing some primary keys.

The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running “occ db:add-missing-primary-keys” those missing primary keys could be added manually while the instance keeps running.
Missing primary key on table “oc_federated_reshares”.
Missing primary key on table “oc_systemtag_object_mapping”.
Missing primary key on table “oc_comments_read_markers”.
Missing primary key on table “oc_collres_resources”.
Missing primary key on table “oc_collres_accesscache”.
Missing primary key on table “oc_filecache_extended”.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ db:add-missing-primary-keys
Check primary keys.
Adding primary key to the federated_reshares table, this can take some time...
federated_reshares table updated successfully.
Adding primary key to the systemtag_object_mapping table, this can take some time...
systemtag_object_mapping table updated successfully.
Adding primary key to the comments_read_markers table, this can take some time...
comments_read_markers table updated successfully.
Adding primary key to the collres_resources table, this can take some time...
collres_resources table updated successfully.
Adding primary key to the collres_accesscache table, this can take some time...
collres_accesscache table updated successfully.
Adding primary key to the filecache_extended table, this can take some time...
filecache_extended table updated successfully.

データベース内のいくつかの列で、big intへの変換が行われていません。

データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 ‘occ db:convert-filecache-bigint’を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ db:convert-filecache-bigint
Following columns will be updated:

* federated_reshares.share_id
* filecache_extended.fileid
* share_external.id
* share_external.parent

This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y

The old server-side-encryption format is enabled. We recommend disabling this.

ここはE2EEで使うサーバサイドの暗号化形式で古い形式が有効になっているのを無効にしたほうがいいよって警告のようです.

The old server-side-encryption format is enabled. We recommend disabling this. For more details see the documentation.

古い形式が使われているかを確認します.

$ sudo -u www-data php ${NEXTCLOUDPATH}/occ encryption:scan:legacy-format
Scanning all files for legacy encryption
Scanning all files for matoken
Scanning all files for hoge
  :

encryption:scan:legacy-format

古い形式は使われていなかったので設定( ${NEXTCLOUDPATH/config/config.php )で明示的に無効にしてしまいます.

-  'encryption.legacy_format_support' => false,
+  'encryption.legacy_format_support' => true,

もし古い形式が残っていて移行したいでもマスターキーを設定していないという場合は該当ファイルの所持ユーザーにデータをコピーし直してもらう必要がありそうです.あまりやりたくない作業ですね.(以下のページを見るとクライアントがアップロードし直しをしてくれるのかもしれない)

これで再読込するとすべてのチェックに合格しました :)

20201227 19:12:47 2533788

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ -V
Nextcloud 20.0.4
$ dpkg-query -W php mariadb-server
mariadb-server  1:10.3.27-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -vm
#1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

]]>
https://matoken.org/blog/2021/01/11/fixed-nextcloud-20-0-4-security-setup-warnings/feed/ 0
センサーのログをNextcloudのSensorloggerで記録してみる https://matoken.org/blog/2020/12/20/try-to-record-the-sensor-log-with-nextclouds-sensorlogger/ https://matoken.org/blog/2020/12/20/try-to-record-the-sensor-log-with-nextclouds-sensorlogger/#respond Sat, 19 Dec 2020 15:00:17 +0000 http://matoken.org/blog/?p=2897

この記事は 日本Androidの会秋葉原支部ロボット部 Advent Calendar 2020 の20日分の記事です.
日本Androidの会秋葉原支部ロボット部は現在月に一回勉強会を行い様々な話題で盛り上がっています.
次の勉強会はちょうど今日(20日)です.興味のある方は覗いてみてください.

センサーのログなどをアップロードするのに色々なwebサービスを使ったり,Googleスプレッドシートに書いたりしています.
便利なんだけどロックインになるのは嫌だなって思ったりします.

Nextcloudというファイル共有サービス+αなOSSがあります.アプリケーションを追加して機能を増やすことが出来ます.例えばテレビ電話や,オンラインオフィスとか,マップサービスとか様々なアプリがあります.
これを個人的に立てて便利に使っています

この中のアプリを眺めているとSensorloggerというセンサーのログを保存できそうなものを見つけたので試してみました.

まずNextcloudですが,とりあえず試すだけならsnapを利用するのがお手軽です.Raspberry Pi + Raspberry Pi OSなどでもOKです.

Debian sid amd64/Ubuntu 20.04 LTS/Raspberry Pi OS armhfでは以下の手順でOKでした.

$ sudo apt update && sudo apt upgrade   (1)
$ sudo apt install snapd    (2)
$ sudo snap install nextcloud   (3)
  1. システムのパッケージを最新にする
  2. snapを使えるように snapd パッケージを導入
  3. snapでnextcloudを導入

10分位待つと導入が終わります.ウェブブラウザにIPアドレスを入力するとセットアップ画面が表示されるので管理者ID/PASSWORDを設定します.

これでとりあえず使えるようになったと思います.

この後Sensorloggerを導入します.
管理者権限のアカウントでNextcloudの右上のメニューから「アプリ」を開きます.

20201219 20:12:45 2014278

次に上の検索バーに「Sensorlogger」とかの文字列で検索して「有効」ボタンを押して導入します.

20201219 20:12:42 2017785

Tip
Nextcloudのアプリケーションはコマンドラインから導入することも出来ます.
$ sudo -u www-data occ app:install sensorlogger #通常導入した場合
$ sudo /snap/bin/nextcloud.occ app:install sensorlogger #snapで導入した場合

ここからは一般ユーザでOKです.

Nextcloudの上部から「Sensorlogger」のアイコンをクリックするとSensorloggerの画面が表示されます.

20201219 20:12:03 2021911

はじめはデータがないのでまっさらです.「Device」辺りでデバイスの登録をするのかな?と思いましたが出来ません.
「Read SensorLogger Wiki Devices」と書かれているのでWikiを参照してみます.

データを送ると自動的にデバイスが出来るようです.Simple, Complexの2種類のデータタイプがあるようです.Simpleは温度,湿度のようでとりあえずこれを試してみます.

以下の辺りから post.php を持ってきて使います.このscriptはダミーのランダムな温度と湿度データを作ってSensourloggerにデータを投げます.

何箇所か書き換えます.
* $url = ` を自分のNextcloudのURLに変更します.
* `$array = array("deviceId" ⇒
uuidgen コマンドなどで生成したUUIDに変更します.
* $username = をNextcloudの自分のユーザーに変更します.
* $token = に「設定」「セキュリティ」ページの「デバイスとセッション」の一番下の「新しいアプリパスワードを作成」で作成したトークンに修正します.

そしてphpとphp-curlが必要なので導入します.

Debian sid amd64/Ubuntu 20.04 LTS/Raspberry Pi OS armhfでの例
$ sudo apt install php-cli php-curl

この状態で post.php を実行して成功すると以下のようなメッセージが帰ってきます.

$ php ./post.php
{"success":true,"message":"Sensor Log successfully stored","data":null}

Sensorloggerのページの List を見るとエータがアップロードされているのが解ります :)

手動で実行するのは大変なのでcrontabにこんな感じで登録してみます.5分に一回データを送信します.

$ crontab -e (1)
$ crontab -l | grep post.php (2)
*/5 * * * *     php ~/tmp/post.php 2&>1 > ~/tmp/post.php.log
  1. crontabの編集
  2. crontabに登録されたか確認

同様にRaspberry Piの温度も送ってみます.温度の $temperature を以下のような感じで書き換えて,UUIDも書き換えるとOK.これもcrontabに登録します.

    $temperature = system( '/opt/vc/bin/vcgencmd measure_temp | awk -F "[=\']" \'{print $2 }\' | tr -d \'\n\'' );

しばらく動かしてからダッシュボードを設定するとこんな感じのチャートが表示できました.

20201219 20:12:13 2035392

密集してよくわからない部分はマウスドラッグで矩形選択するとその部分がズームされます.

20201219 22:12:30 2180945

という感じでとりあえず動きました.ドキュメントが未だ充実していな買ったり使い勝手も悪いですが最低限の機能はあるかなという感じです.
興味があったら試してみてください.
若しくはおすすめのアプリやサービスを教えてください.

]]>
https://matoken.org/blog/2020/12/20/try-to-record-the-sensor-log-with-nextclouds-sensorlogger/feed/ 0
snapでNextcloudを導入して手軽にGoogleDocぽく使う(snap版Nextcloud + OnlyOffice) https://matoken.org/blog/2020/06/10/install-nextcloud-in-a-snap-and-easily-use-it-like-google-doc-nextcloud-for-snap-version-onlyoffice/ https://matoken.org/blog/2020/06/10/install-nextcloud-in-a-snap-and-easily-use-it-like-google-doc-nextcloud-for-snap-version-onlyoffice/#respond Wed, 10 Jun 2020 13:39:13 +0000 http://matoken.org/blog/?p=2792

Nextcloud導入が面倒?snapを使うとこれだけでGoogleDocみたいなことができます(Debian sid amd64/Ubuntu 20.04 LTSで確認済み).

$ sudo apt update && sudo apt upgrade
$ sudo apt install snapd
$ sudo snap install nextcloud
$ sudo /snap/bin/nextcloud.occ app:install documentserver_community
$ sudo /snap/bin/nextcloud.occ app:install onlyoffice

snap nextcloud 20200610 00:06:05 415116

簡単に説明していきます.

OSの状態を最新にしておきます.
$ sudo apt update && sudo apt upgrade
snapを使うためにsnapdを導入します(最近のUbuntuだと標準で入ってると思います).
$ sudo apt install snapd
snapでNextcloudを検索してみます.
$ snap find nextcloud
Name                       Version                    Publisher         Notes  Summary
nextcloud                  18.0.4snap3                nextcloud✓        -      Nextcloud Server - A safe home for all your data
spreedme                   0.29.5snap1                nextcloud✓        -      Spreed.ME audio/video calls and conferences feature for the Nextcloud Snap
onlyoffice-desktopeditors  5.5.1                      onlyoffice✓       -      A comprehensive office suite for editing documents, spreadsheets and presentations
qownnotes                  20.6.2                     pbek              -      Plain-text file markdown note taking with Nextcloud / ownCloud integration
nextcloud-port8080         1.01                       arcticslyfox      -      Nextcloud Server
nextcloud-snap-abacao      11.0.3snap4                abacao            -      Nextcloud Server
nextcloud-nextant          11.0.0snap3                rmescandon        -      Nextcloud Server + search support
nextcloud-abacao           11.0.3snap4                abacao            -      Nextcloud Server
cashbox-nextcloud          11.0.2snap2                cashbox           -      Nextcloud Server for www.cashBOX.plus
nextcloudsnap              12.0.4snap1                oscarbrolin       -      Nextcloud Server - A safe home for all your data
ghostcloud                 0.9.5                      beidl             -      A modern cross-platform client for Nextcloud, ownCloud, WebDav.
htxucloud                  12.0.3snap7                htxu              -      Nextcloud Server
carnet                     0.22.1                     alexandre-roux-m  -      Powerful note taking app with sync, online editor and android app
opentodolist               3.23.0                     mhoeher           -      Todo list and note taking application
solr                       0.1                        rmescandon        -      Starts up solr as forking daemon
mdns-hostname              0.0.1                      welike            -      mDNS mini-daemon to published hostname.local
nextcloud-stondino         15.0.10snap3+git1.ff25cb9  zmusselman        -      Nextcloud Server - A safe home for all your data
vmcloud-nextcloud          1.0.0                      victoriususm      -      Nextcloud 16.0.3 Optimized-Boosted
feedreader                 0+git.9ac478f7             ken-vandine       -      RSS client for various webservices
test003-nc                 13.0.4.snap1               reinism           -      Nextcloud Server - A safe home for all your data
$ snap info nextcloud
name:      nextcloud
summary:   Nextcloud Server - A safe home for all your data
publisher: Nextcloud*
store-url: https://snapcraft.io/nextcloud
contact:   https://github.com/nextcloud/nextcloud-snap
license:   unset
description: |
  Where are your photos and documents? With Nextcloud you pick a server of
  your choice, at home, in a data center or at a provider. And that is where
  your files will be. Nextcloud runs on that server, protecting your data and
  giving you access from your desktop or mobile devices. Through Nextcloud
  you also access, sync and share your existing data on that FTP drive at
  school, a Dropbox or a NAS you have at home.
commands:
  - nextcloud.disable-https
  - nextcloud.enable-https
  - nextcloud.export
  - nextcloud.import
  - nextcloud.manual-install
  - nextcloud.mysql-client
  - nextcloud.mysqldump
  - nextcloud.occ
services:
  nextcloud.apache:          simple, enabled, active
  nextcloud.mdns-publisher:  simple, enabled, active
  nextcloud.mysql:           simple, enabled, active
  nextcloud.nextcloud-cron:  simple, enabled, active
  nextcloud.nextcloud-fixer: simple, enabled, inactive
  nextcloud.php-fpm:         simple, enabled, active
  nextcloud.redis-server:    simple, enabled, active
  nextcloud.renew-certs:     simple, enabled, active
snap-id:      njObIbGQEaVx1H4nyWxchk1i8opy4h54
tracking:     latest/stable
refresh-date: yesterday at 21:53 JST
channels:
  latest/stable:    18.0.4snap4               2020-06-08 (21413) 264MB -
  latest/candidate: ^
  latest/beta:      18.0.4snap4+git5.31f0acd  2020-06-09 (21469) 264MB -
  latest/edge:      master-2020-06-10         2020-06-10 (21487) 267MB -
  18/stable:        18.0.4snap4               2020-06-08 (21413) 264MB -
  18/candidate:     ^
  18/beta:          ^
  18/edge:          18-2020-06-10             2020-06-10 (21482) 265MB -
  17/stable:        17.0.6snap1               2020-05-03 (20616) 229MB -
  17/candidate:     ^
  17/beta:          17.0.6snap1+git10.8f765f8 2020-06-09 (21474) 249MB -
  17/edge:          17-2020-06-10             2020-06-10 (21483) 250MB -
  16/stable:        16.0.11snap1              2020-06-08 (21459) 225MB -
  16/candidate:     ^
  16/beta:          ^
  16/edge:          ^
  15/stable:        15.0.14snap1              2020-01-20 (18374) 216MB -
  15/candidate:     ^
  15/beta:          ^
  15/edge:          ^
  14/stable:        14.0.10snap1              2019-05-04 (13208) 202MB -
  14/candidate:     ^
  14/beta:          ^
  14/edge:          ^
  13/stable:        13.0.12snap1              2019-05-03 (13155) 193MB -
  13/candidate:     ^
  13/beta:          ^
  13/edge:          ^
  12/stable:        12.0.13snap1              2019-01-07 (10632) 206MB -
  12/candidate:     ^
  12/beta:          ^
  12/edge:          ^
  11/stable:        11.0.8snap1               2018-05-10  (6942) 202MB -
  11/candidate:     ^
  11/beta:          ^
  11/edge:          ^

いくつかでてきますが,Publisherが nextcloud になっている公式のstableを使います.ちなみにこのコマンドを叩いた時点で19.0.0や18.0.5が出ていてこの記事執筆時点で18.0.6が出ています.ちょっと反映が遅いみたいですね.

snap版Nextcloudを導入
$ sudo snap install nextcloud

しばらく時間がかかりますが,これでNextcloudと関連のApache httpd/PHP/MySQL等が設定済みの状態で導入されます.

$ ps aux | grep -i nextcloud
root     17628  0.0  0.0   1872   196 ?        Ss   00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/delay-on-failure mdns-publisher nextcloud
root     17615  0.0  0.1   1872  1168 ?        Ss   00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/nextcloud-cron
root     17657  0.0  0.1   1872  1200 ?        Ss   00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/renew-certs
root     17681  0.0  0.1   1872  1272 ?        Ss   00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/start-php-fpm
root     17712  0.0  0.1   1872  1216 ?        Ss   00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/start-redis-server
root     17765  0.0  0.6 258120  6008 ?        Sl   00:10   0:00 mdns-publisher nextcloud
root     17987  0.0  0.1   1872  1200 ?        Ss   00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/run-httpd -k start -DFOREGROUND
root     18069  0.1  0.1   1872  1168 ?        Ss   00:10   0:01 /bin/sh /snap/nextcloud/21169/bin/start_mysql
root     18111  0.0  0.1   1872  1100 ?        S    00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/mysqld_safe --datadir=/var/snap/nextcloud/21169/mysql --pid-file=/tmp/pids/mys
ql.pid --lc-messages-dir=/snap/nextcloud/21169/share --socket=/tmp/sockets/mysql.sock
root     18128  0.9 22.0 1815000 210060 ?      Sl   00:10   0:08 /snap/nextcloud/21169/bin/mysqld --basedir=/snap/nextcloud/21169 --datadir=/var/snap/nextcloud/21169/mysql --plu
gin-dir=/snap/nextcloud/21169/lib/plugin --lc-messages-dir=/snap/nextcloud/21169/share --log-error=error.log --pid-file=/tmp/pids/mysql.pid --socket=/tmp/sockets/mysql.sock
root     18196  0.0  2.1 200580 21712 ?        Ss   00:10   0:00 php-fpm: master process (/snap/nextcloud/21169/config/php/php-fpm.conf)
root     18980  0.0  0.1   1872  1276 ?        S    00:10   0:00 /bin/sh /snap/nextcloud/21169/bin/httpd-wrapper -k start -DFOREGROUND
root     19017  0.0  0.0   6168  0280 ?        S    00:10   0:00 httpd -d /snap/nextcloud/21169 -k start -DFOREGROUND
root     19018  0.0  0.1 1211772 1612 ?        Sl   00:10   0:00 httpd -d /snap/nextcloud/21169 -k start -DFOREGROUND
root     19019  0.0  0.1 880108  1668 ?        Sl   00:10   0:00 httpd -d /snap/nextcloud/21169 -k start -DFOREGROUND
root     19020  0.0  0.1 1080512 1656 ?        Sl   00:10   0:00 httpd -d /snap/nextcloud/21169 -k start -DFOREGROUND
root     19221  0.0  0.0 1716012 0292 ?        Sl   00:10   0:00 httpd -d /snap/nextcloud/21169 -k start -DFOREGROUND

これでもうデーモンも起動しているので対象マシンのホスト名やipアドレスをウェブブラウザに入力して任意の管理者ユーザのユーザ名とパスワードを入力して登録します.同じネットワークだと誰でも繋いで設定できてしまうので注意しましょう.

管理者ユーザ登録画面

snap nextcloud 20200609 22:06:09 329531

「推奨アプリをインストール」にチェックを入れておくと便利な推奨アプリが導入されます.時間がかかるので後でもいいかもしれません.

これでとりあえずNextcloudが利用できるようになりました.実はここまでは snapパッケージが amd64以外にも arm64. armhf, i386, ppc64el に対応しているので armhf/arm64 な Raspberry Pi などでも動作します.

続いて OnlyOffice, community edition の server版を導入します.

Nextcloudのウェブからも導入できるのですが,300MB程とサイズが大きく回線によってはタイムアウトしてしまいます.

snap nextcloud 20200606 19:06:50 477356

その場合は occ コマンドで導入します.(snapなので nextcloud.occ コマンドを使います)

$ sudo /snap/bin/nextcloud.occ app:install documentserver_community

これでも失敗することがあります.その場合は手動でGitHub からアーカイブを入手して手動で展開して有効化します.(この方法だとamd64以外でも導入はできちゃいますが動かないので注意)

$ COUNT=1; while :;do wget https://github.com/nextcloud/documentserver_community/releases/download/v0.1.6/documentserver_community.tar.gz && break; c=$(( $c + 1 )) ;sleep 10; done;echo $COUNT
$ sudo tar xvf ./documentserver_community.tar.gz -C /var/snap/nextcloud/current/nextcloud/extra-apps/
$ sudo chown -R root.root /var/snap/nextcloud/current/nextcloud/extra-apps/documentserver_community
$ sudo /snap/bin/nextcloud.occ app:enable documentserver_community

CollaboraはAppImageを使っていたのでファイル数は少なかったですがこちらは普通にディレクトリに展開されるようでたくさんあります.

$ sudo find /var/snap/nextcloud/current/nextcloud/extra-apps/documentserver_community | wc -l
12935

続いてOnlyOfficeアプリも導入します.

これはOnlyOffice Serverに繋いでやり取りするものです.Nextcloud のアプリ画面若しくは以下のコマンドで導入します.

$ sudo /snap/bin/nextcloud.occ app:install onlyoffice

これでNextcloudに戻って対応ドキュメントを開いたり新規作成するとOnlyOfficeが起動して編集できるはずです :)

snap nextcloud 20200609 23:06:12 405447
snap nextcloud 20200610 00:06:05 415116

アプリが導入されているけどうまく行かない場合はOnlyOfficeアプリを導入し直すとうまく行くかもしれません.(OnlyOfficeアプリがServerより先に導入されるとうまく行かない)

$ sudo /snap/bin/nextcloud.occ app:remove onlyoffice
$ sudo /snap/bin/nextcloud.occ app:install onlyoffice

とりあえずこれでお試しは出来る感じです.実際に運用するにはhttps化したりバックアップを定期的に取るようにしたりなど設定したほうがいいですがパスやコマンド以外は通常のNextcloudと同じだと思います.
主なパスやコマンドはこうなっています.

  • 設定ファイル /var/snap/nextcloud/current/nextcloud/config/config.php
  • Nextcloudデータ,ログ /var/snap/nextcloud/common/
  • 関連アプリ格納 /var/snap/nextcloud/current/
  • occ /snap/bin/nextcloud.occ
  • mysql-client /snap/bin/mysql-client
  • mysqldump /snap/bin/nextcloud.mysqldump

dbのアカウント情報は設定ファイルに載っています.

$ sudo grep db /var/snap/nextcloud/current/nextcloud/config/config.php
  'dbtype' => 'mysql',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost:/tmp/sockets/mysql.sock',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'nextcloud',
  'dbpassword' => 'wdwYevflNhziZDUxxG2OXJs6el4zThtkmX20Bijih7Zh_4XU58OkZs3TAt7TCJjt',

設定ファイルを編集してデーモンを再起動したい場合はこんな感じで再起動できます.

$ sudo snap restart nextcloud

てことでsnap版Nextcloudはお試しにはおすすめです.
OnlyOfficeは今のところamd64環境しか提供されていませんがRaspberry Pi などでも動くようにしたいと言っているのでこれも期待です.

Nextcloud 19 だと先日紹介したCollaboraも同様にWebから導入できるのでおすすめです.

]]>
https://matoken.org/blog/2020/06/10/install-nextcloud-in-a-snap-and-easily-use-it-like-google-doc-nextcloud-for-snap-version-onlyoffice/feed/ 0
Nextcloud 19からのNextcloudアプリ化したCollabora Online を試す https://matoken.org/blog/2020/06/05/the-nextcloud-app-ified-collabora-from-nextcloud-19-try-online/ https://matoken.org/blog/2020/06/05/the-nextcloud-app-ified-collabora-from-nextcloud-19-try-online/#comments Fri, 05 Jun 2020 14:14:10 +0000 http://matoken.org/blog/?p=2787

Nextcloud 19がリリースされました.

今回の新機能にCollabora Online がNextcloud Hub に含まれるようになり,簡単にすべてのユーザが利用できるようになったそうです.

Easy to install for every user
Collabora Online will be shipped out of the box with the new Nextcloud 19 Hub. A special community server has been developed, that can easily be installed with a single click by every user, and so avoiding web server and docker containers installation and configuration.

少し前にもデモサーバーを用意してくれてお手軽に試せるようにしてくれていましたが今回は自分の環境でとても簡単に動くようになったようです.

ということでNextcloud 19 にアップデートして試してみました.

Nextcloud 19環境管理者権限で https://$NEXTCLOUDURL/index.php/settings/admin/richdocuments にアクセスして設定を見てみます.

NC19 CODE 01

Use the built-in CODE という設定が増えています.がグレーアウトしています.

Use the built-in CODE – Collabora Online Development Edition
Easy to install, for personal use or for small teams. A bit slower than a standalone server and without the advanced scalability features.

てことで,以下のNextcloud アプリを導入します.

NC19 CODE 02

導入は本当に簡単で「ダウンロードして有効にする」を押すだけです.

コマンドラインではこんな感じで導入できます.

$ sudo -u www-data php ./occ app:install richdocumentscode
richdocumentscode installed
richdocumentscode enabled

導入されると Built-in CODE が選べるようになっているので選択します.後はファイルでオフィス文章を開いたり新規作成すれば自動的に起動して利用できます.

NC19 CODE 03

初回はちょっと時間がかかります.これはCODEが裏で起動する時間がかかるからみたいです.
後は普通に利用できます :)
Demoサーバと違って制限もないので普通に使えます.NextcloudでURL共有をするとGoogleDoc のようにみんなで同時にドキュメントを編集したりも出来ます.(Nextcloudの指定ユーザだけ編集可能とかURLを知ってる人は誰でも編集できるとかも出来ます.)

少し使っていて気になったのは以下のメッセージがたまに出ます.ディスク空き容量が 4GBで出るときと出ないときがありぎりぎり動いているのかなと思いましたが,空き容量を6GBに空けても出たり出なかったりします.もしかしたらバグかも?

NC19 CODE 04

そしてこちらの画面はセッションが数個(2個のつもり)でも出ます.セッションのカウントがおかしいのか他のバグなのか?

NC19 CODE 05

今回のCollabora Online はどんな仕組みなのかなとディレクトリを覗くと,Collabora Online がAppImage 化されてごろっと置かれているようです.

$ ls -l apps/richdocumentscode/collabora/
total 339320
-rwxr--r-- 1 www-data www-data 347455528 Jun  5 01:27 Collabora_Online.AppImage

これが文章を閉じてもずっと起動しているようです.RAMが少ないのでちょっと辛い.

$ ps aux | pee "head -1" "grep Collabora_OnlineAppImage"
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mk       29361  0.0  0.0   2272   752 pts/2    S+   23:04   0:00 pee head -1 grep Collabora_OnlineAppImage

このマシンはリモートのサーバで日本語フォントがほとんど入っていないのでCollabora Online でもフォントがあまり選べません.システムにフォントを導入します.今回はNoto CJK を導入してみました.

$ sudo apt install fonts-noto-cjk

導入してもそのままではCollabora Online には反映されませんでした.文章を閉じて,AppImage のプロセスをkill して再度文章を開くとまた AppImage が起動して反映されました.

ということでとても簡単にWebだけでNextcloud からCollabora Online が導入できるようになりました.
とても便利なのでおすすめです.

環境
$ sudo -u www-data php ./occ app:list | grep richdocuments
  - richdocuments: 3.7.0
  - richdocumentscode: 4.2.403
$ sudo -u www-data php ./occ status
  - installed: true
  - version: 19.0.0.12
  - versionstring: 19.0.0
  - edition:
$ dpkg-query -W php apache2
apache2 2.4.38-3+deb10u3
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2020/06/05/the-nextcloud-app-ified-collabora-from-nextcloud-19-try-online/feed/ 3
Nextcloud 18から19にbeta channel でアップグレード https://matoken.org/blog/2020/06/05/upgrade-from-nextcloud-18-to-19-with-beta-channel/ https://matoken.org/blog/2020/06/05/upgrade-from-nextcloud-18-to-19-with-beta-channel/#comments Fri, 05 Jun 2020 10:59:30 +0000 http://matoken.org/blog/?p=2783

Nextcloud 19が06/03にリリースされました.

未だ18からのアップデートは来ていませんが一時的に beta channel にして 19 にアップグレードしてみました.

$ sudo -u www-data php ./updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 18.0.5.

No update available.

Nothing to do.

先ずはバックアップをとっておきます.Nextcloudのディレクトリ以下とデータベースをバックアップしておけば最悪データが壊れたり消えてしまって復元できます.データが多いと時間がかかるので日頃取得して差分バックアップするようにしておくといいです.

次にscript コマンド等でログを取っておきます.リモートでssh経由の場合などはGNU screen やtmux などで切断されても復帰出来るようにしておきます.

準備が出来たら先ずは Nextcloud を18 の最新にしておきます.

$ cd $(NEXTCLOUDPATH}
$ sudo -u www-data php ./occ app:update --all
$ sudo -u www-data php ./updater/updater.phar
$ sudo -u www-data php ./occ app:update --all

Nextcloud の update channel を stable から beta にします.

$ sudo -u www-data php ./occ config:system:set updater.release.channel --value 'beta'
System config value updater.release.channel set to string beta

channel はすぐには反映されません.今回は20分ほどで反映されました数時間掛かることもあるよう.
19 が降りてきたら後は普通にアップグレードします.

$ sudo -u www-data php ./updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 18.0.5.

Update to Nextcloud 19.0.0 available. (channel: "beta")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-19.0.0.zip
Open changelog ↗

Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrity
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done

Start update? [y/N] y
Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.

[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] Replace entry points
[✔] Delete old files
[✔] Move new files in place
[✔] Done

Update of code successful.

Should the "occ upgrade" command be executed? [Y/n]
  :
  :
Keep maintenance mode active? [y/N]
Maintenance mode disabled

Maintenance mode is disabled

Nextcloud 19 になりました :)

Nextcloud19 00

$ sudo -u www-data php /var/www/files.matoken.org/updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 19.0.0.

No update available.

Nothing to do.

channel を stable に戻しておきます.一旦19に上げていれば18に戻りません.

$ sudo -u www-data php /var/www/files.matoken.org/occ config:system:set updater.release.channel --value 'stable'
System config value updater.release.channel set to string stable
$ sudo -u www-data php /var/www/files.matoken.org/updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 19.0.0.

No update available.

Nothing to do.

https://$NEXTCLOUDURL/index.php/settings/admin/overview の「セキュリティ&セットアップ警告」を確認するといくつかメッセージが出ているので修正します.

Nextcloud19 01

セキュリティ&セットアップ警告
サーバーのセキュリティとパフォーマンスにとって重要なことは、すべてが正確に設定されていることです。あなたの助けとなるよう、Nextcloudでは一部の自動チェックを行っています。詳細な情報は、リンク先のドキュメントを参照してください。

セットアップに関して警告がいくつかあります。
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 “occ db:add-missing-indices”を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル “oc_properties”のインデックス “properties_path_index”が見つかりません。
データベースにはオプションのカラムがいくつかありません。大きなテーブルにカラムを追加するには時間がかかるため、オプションのカラムは自動的に追加されませんでした。”occ db:add-missing-columns”を実行することで、不足しているカラムはインスタンスの実行中に手動で追加することができます。カラムが追加されると、応答性や使い勝手が改善される可能性があります。
テーブル “oc_comments” にオプションのカラム “reference_id” が存在しません。
このインスタンスには推奨されるPHPモジュールがいくつかありません。 パフォーマンスの向上と互換性の向上のために、それらをインストールすることを強くお勧めします。
bcmath
gmp
インストールガイド ↗を再確認して、 ログ にあるすべてのエラーや警告を確認してください。

Nextcloudのセキュリティは、セキュリティスキャン ↗でチェックしてください。

と言っても基本的にメッセージに従うだけです.

データベースにいくつかのインデックスがありません。
$ sudo -u www-data php ./occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
Adding properties_path_index index to the oc_properties table, this can take some time...
oc_properties table updated successfully.
データベースにはオプションのカラムがいくつかありません。
$ sudo -u www-data php ./occ db:add-missing-columns
Check columns of the comments table.
Adding additional reference_id column to the comments table, this can take some time...
Comments table updated successfully.
このインスタンスには推奨されるPHPモジュールがいくつかありません。

これは環境によって少し代わります.対応パッケージを導入してhttpdを再起動して反映します.以下はDebian Buster amd64 でのパッケージ名.そしてApache httpd でホストしている場合の例です.

$ sudo apt install php7.3-bcmath php7.3-gmp
$ sudo service apache2 reload

これで「セキュリティ&セットアップ警告」ページを再読込すると,「すべてのチェックに合格しました。」となりました :)

Nextcloud19 02

古いバックアップの削除

これは必須ではないのですが,この環境はディスクの空き領域が少ないのでリモートにバックアップした上で最新以外のバックアップは削除しています.以下の updater-ocws62au2wl3 部分は環境によって変わると思います.

$ rm -rf ./data/updater-ocws62au2wl3/backups/nextcloud-18.0.4.2
環境
$ dpkg-query -W php7.3 php7.3-bcmath php7.3-gmp apache2
apache2 2.4.38-3+deb10u3
php7.3  7.3.14-1~deb10u1
php7.3-bcmath   7.3.14-1~deb10u1
php7.3-gmp      7.3.14-1~deb10u1
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

]]>
https://matoken.org/blog/2020/06/05/upgrade-from-nextcloud-18-to-19-with-beta-channel/feed/ 1
Nextcloud とCollarora Demo Server で簡単にLibreOffice Online を試す https://matoken.org/blog/2020/05/21/easy-to-try-libreoffice-online-with-nextcloud-and-collarora-demo-server/ https://matoken.org/blog/2020/05/21/easy-to-try-libreoffice-online-with-nextcloud-and-collarora-demo-server/#respond Wed, 20 May 2020 16:59:42 +0000 http://matoken.org/blog/?p=2749

こちらの記事で知ったのですが,Nextcloud でCollabora Online のDemo Server が簡単に使えるようになったようです.試してみました.

この機能は Collabora Online 3.6.0 で入ったようです.

Add demo server selector and show hint about that when Collabora is not setup

なので,Collabora Online 3.6.0 の動作するNextcloud 15〜19 環境が必要です.今回は Nextcloud 18.0.4 環境で試しました.

Nextcloud にCollabora Online App を導入します.

導入は簡単で,管理者権限のあるユーザでWeb経由で導入したり,CLIで導入できます.

cliでの導入例
$ sudo -u www-data php $NEXTCLOUD/occ app:install richdocuments
richdocuments installed
richdocuments enabled

次にDemo Server を設定します.
管理者ユーザでログインした状態のNextcloud で「設定」→「Collabora Online」で設定します.

確認メッセージが表示されます.

lool demo04

「Use a demo server」にチェックするとDemo Serverが選択できます.いくつか選択肢があるので今回は「Tokyo, Japan」を選びました.

lool demo03

少し設定が出来ます.

lool demo05

この状態でファイル画面に遷移して,「新しいドキュメント」を作成してみます.

lool demo06

LibreOffice Onlineが起動してDemo Server のメッセージが表示されます.

lool demo07

後は普通に編集できます :)
Demo ServerなのでこまめにDemoのメッセージが表示されますがこれはDemoなのでしょうがないですね.テキスト編集は特にもたつく感じはなくネイティブとそう変わらない感じ.スライドで画像やシェイプ図形など使うとまた違うかもしれません.

lool demo08

LibreOffice Online を自分のサーバに導入するのも以下のあたりでバイナリが配布されているので案外お手軽なのでこのDemo Server で気に入ったらLibreOffice Online を導入するといいと思います.

環境
$ sudo -u www-data php /var/www/files.matoken.org/occ app:list | grep richdocuments
  - richdocuments: 3.6.0
$ sudo -u www-data php /var/www/files.matoken.org/occ --version
Nextcloud 18.0.4
$ dpkg-query -W php apache2 mariadb-server
apache2 2.4.38-3+deb10u3
mariadb-server  1:10.3.22-0+deb10u1
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

]]>
https://matoken.org/blog/2020/05/21/easy-to-try-libreoffice-online-with-nextcloud-and-collarora-demo-server/feed/ 0
Nextcloud 17.0.2 → 18.0.1 upgrade memo https://matoken.org/blog/2020/03/04/nextcloud-17-0-2-%e2%86%92-18-0-1-upgrade-memo/ https://matoken.org/blog/2020/03/04/nextcloud-17-0-2-%e2%86%92-18-0-1-upgrade-memo/#respond Wed, 04 Mar 2020 10:07:22 +0000 http://matoken.org/blog/?p=2701

Nextcloudを17.0.2から18.0.1にupgradeしました.

$ sudo -u www-data php ./occ status
  - installed: true
  - version: 18.0.1.3
  - versionstring: 18.0.1
  - edition:

17系のeolは2020-09で18系のeolは2021-01のようです.もうしばらく17でもいいかも.

今回以下のページを参考に updater.phar でupgradeしました.
※実行前に念の為dbバックアップとかしておきましょう.

$ cd $NEXTCLIUDPATH
$ sudo -u www-data php ./updater/updater.phar
Nextcloud Updater - version: v16.0.3-3-ga0c2b25 dirty

Current version is 17.0.2.

Update to Nextcloud 18.0.1 available. (channel: "stable")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-18.0.1.zip
Open changelog ↗

Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrityapp:check-code
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done

Start update? [y/N] y

Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.

[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] Replace entry points
[✔] Delete old files
[✔] Move new files in place
[✔] Done

Update of code successful.

Should the "occ upgrade" command be executed? [Y/n] Y
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
2020-03-02T19:16:42+00:00 Set log level to debug
2020-03-02T19:16:42+00:00 Repair step: Repair MySQL collation
2020-03-02T19:16:42+00:00 Repair info: All tables already have the correct collation -> nothing to do
2020-03-02T19:16:42+00:00 Repair step: Repair SQLite autoincrement
2020-03-02T19:16:42+00:00 Repair step: Copy data from accounts table when migrating from ownCloud
2020-03-02T19:16:43+00:00 Repair step: Drop account terms table when migrating from ownCloud
2020-03-02T19:16:43+00:00 Updating database schema
2020-03-02T19:16:46+00:00 Updated database
2020-03-02T19:16:46+00:00 Disabled incompatible app: announcementcenter
2020-03-02T19:16:46+00:00 Disabled incompatible app: data_request
2020-03-02T19:16:46+00:00 Disabled incompatible app: external
2020-03-02T19:16:46+00:00 Disabled incompatible app: files_snapshots
2020-03-02T19:16:46+00:00 Disabled incompatible app: fulltextsearch_elasticsearch
2020-03-02T19:16:46+00:00 Disabled incompatible app: gallery
2020-03-02T19:16:46+00:00 Disabled incompatible app: gpxedit
2020-03-02T19:16:46+00:00 Disabled incompatible app: quota_warning
2020-03-02T19:16:46+00:00 Disabled incompatible app: ransomware_protection
2020-03-02T19:16:46+00:00 Disabled incompatible app: sharerenamer
2020-03-02T19:16:46+00:00 Disabled incompatible app: social
2020-03-02T19:16:46+00:00 Disabled incompatible app: socialsharing_diaspora
2020-03-02T19:16:46+00:00 Disabled incompatible app: socialsharing_email
2020-03-02T19:16:46+00:00 Disabled incompatible app: socialsharing_twitter
2020-03-02T19:16:46+00:00 Disabled incompatible app: spreed
2020-03-02T19:16:46+00:00 Updating <accessibility> ...
2020-03-02T19:16:46+00:00 Repair step: Migrate old user config
2020-03-02T19:16:46+00:00 Migrate old user config
2020-03-02T19:16:46+00:00
2020-03-02T19:16:46+00:00  Starting ...
    0/0 [>-]   0%2020-03-02T19:16:46+00:00
 Starting ...
    1/0 [->]   0%2020-03-02T19:16:46+00:00
 Starting ...
    2/0 [-->]   0%2020-03-02T19:16:46+00:00
 Starting ...
    3/0 [--->]   0%2020-03-02T19:16:46+00:00
2020-03-02T19:16:46+00:00 Updated <accessibility> to 1.4.0
2020-03-02T19:16:46+00:00 Updating <federatedfilesharing> ...
2020-03-02T19:16:46+00:00 Updated <federatedfilesharing> to 1.8.0
2020-03-02T19:16:46+00:00 Updating <files_pdfviewer> ...
2020-03-02T19:16:47+00:00 Updated <files_pdfviewer> to 1.7.0
2020-03-02T19:16:47+00:00 Updating <files_rightclick> ...
2020-03-02T19:16:47+00:00 Updated <files_rightclick> to 0.15.2
2020-03-02T19:16:47+00:00 Updating <files_videoplayer> ...
2020-03-02T19:16:47+00:00 Updated <files_videoplayer> to 1.7.0
2020-03-02T19:16:47+00:00 Updating <logreader> ...
2020-03-02T19:16:47+00:00 Updated <logreader> to 2.3.0
2020-03-02T19:16:47+00:00 Updating <password_policy> ...
2020-03-02T19:16:47+00:00 Updated <password_policy> to 1.8.0
2020-03-02T19:16:47+00:00 Updating <privacy> ...
2020-03-02T19:16:48+00:00 Updated <privacy> to 1.2.0
2020-03-02T19:16:48+00:00 Updating <provisioning_api> ...
2020-03-02T19:16:48+00:00 Updated <provisioning_api> to 1.8.0
2020-03-02T19:16:48+00:00 Updating <recommendations> ...
2020-03-02T19:16:48+00:00 Updated <recommendations> to 0.6.0
2020-03-02T19:16:48+00:00 Updating <serverinfo> ...
2020-03-02T19:16:48+00:00 Updated <serverinfo> to 1.8.0
2020-03-02T19:16:48+00:00 Updating <support> ...
2020-03-02T19:16:49+00:00 Updated <support> to 1.1.0
2020-03-02T19:16:49+00:00 Updating <survey_client> ...
2020-03-02T19:16:49+00:00 Updated <survey_client> to 1.6.0
2020-03-02T19:16:49+00:00 Updating <text> ...
2020-03-02T19:16:49+00:00 Updated <text> to 2.0.0
2020-03-02T19:16:49+00:00 Updating <twofactor_backupcodes> ...
2020-03-02T19:16:49+00:00 Repair step: Add background job to check for backup codes
2020-03-02T19:16:49+00:00 Updated <twofactor_backupcodes> to 1.7.0
2020-03-02T19:16:49+00:00 Updating <updatenotification> ...
2020-03-02T19:16:50+00:00 Updated <updatenotification> to 1.8.0
2020-03-02T19:16:50+00:00 Updating <federation> ...
2020-03-02T19:16:50+00:00 Updated <federation> to 1.8.0
2020-03-02T19:16:50+00:00 Updating <lookup_server_connector> ...
2020-03-02T19:16:50+00:00 Updated <lookup_server_connector> to 1.6.0
2020-03-02T19:16:50+00:00 Updating <oauth2> ...
2020-03-02T19:16:50+00:00 Repair step: Update OAuth token expiration times
2020-03-02T19:16:50+00:00 Updated <oauth2> to 1.6.0
2020-03-02T19:16:50+00:00 Updating <files> ...
2020-03-02T19:16:51+00:00 Updated <files> to 1.13.1
2020-03-02T19:16:51+00:00 Updating <activity> ...
2020-03-02T19:16:52+00:00 Updated <activity> to 2.11.0
2020-03-02T19:16:52+00:00 Updating <cloud_federation_api> ...
2020-03-02T19:16:52+00:00 Updated <cloud_federation_api> to 1.1.0
2020-03-02T19:16:52+00:00 Updating <dav> ...
2020-03-02T19:16:52+00:00 Repair step: Fix component of birthday calendars
2020-03-02T19:16:52+00:00 Repair info: 4 birthday calendars updated.
2020-03-02T19:16:52+00:00 Repair step: Regenerating birthday calendars to use new icons and fix old birthday events without year
2020-03-02T19:16:52+00:00 Repair info: Repair step already executed
2020-03-02T19:16:52+00:00 Repair step: Fix broken values of calendar objects
2020-03-02T19:16:52+00:00  Starting ...
    0/0 [>-]   0%2020-03-02T19:16:52+00:00 Fix broken values of calendar objects
2020-03-02T19:16:52+00:00
2020-03-02T19:16:52+00:00
2020-03-02T19:16:52+00:00 Repair step: Registering building of calendar search index as background job
2020-03-02T19:16:52+00:00 Repair info: Repair step already executed
2020-03-02T19:16:52+00:00 Repair step: Registering background jobs to update cache for webcal calendars
2020-03-02T19:16:52+00:00 Repair info: Added 0 background jobs to update webcal calendars
2020-03-02T19:16:52+00:00 Repair step: Registering building of calendar reminder index as background job
2020-03-02T19:16:52+00:00 Repair info: Repair step already executed
2020-03-02T19:16:52+00:00 Repair step: Clean up orphan event and contact data
2020-03-02T19:16:52+00:00 Repair info: 0 events without a calendar have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 properties without an events have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 changes without a calendar have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 cached events without a calendar subscription have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 changes without a calendar subscription have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 contacts without an addressbook have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 properties without a contact have been cleaned up
2020-03-02T19:16:52+00:00 Repair info: 0 changes without an addressbook have been cleaned up
2020-03-02T19:16:52+00:00 Repair step: Remove activity entries of private events
2020-03-02T19:16:53+00:00 Repair info: Removed 0 activity entries
2020-03-02T19:16:53+00:00 Updated <dav> to 1.14.0
2020-03-02T19:16:53+00:00 Updating <encryption> ...
2020-03-02T19:16:53+00:00 Repair step: Write default encryption module configuration to the database
2020-03-02T19:16:53+00:00 Updated <encryption> to 2.6.0
2020-03-02T19:16:53+00:00 Updating <files_external> ...
2020-03-02T19:16:53+00:00 Updated <files_external> to 1.9.0
2020-03-02T19:16:53+00:00 Updating <files_sharing> ...
2020-03-02T19:16:54+00:00 Repair step: Fix the share type of guest shares when migrating from ownCloud
2020-03-02T19:16:54+00:00 Repair step: Copy the share password into the dedicated column
2020-03-02T19:16:54+00:00 Repair step: Set existing shares as accepted
2020-03-02T19:16:54+00:00 Updated <files_sharing> to 1.10.1
2020-03-02T19:16:54+00:00 Updating <files_trashbin> ...
2020-03-02T19:16:54+00:00 Updated <files_trashbin> to 1.8.0
2020-03-02T19:16:54+00:00 Updating <files_versions> ...
2020-03-02T19:16:54+00:00 Updated <files_versions> to 1.11.0
2020-03-02T19:16:54+00:00 Updating <sharebymail> ...
2020-03-02T19:16:55+00:00 Updated <sharebymail> to 1.8.0
2020-03-02T19:16:55+00:00 Updating <workflowengine> ...
2020-03-02T19:16:56+00:00 Repair step: Populating added database structures for workflows
2020-03-02T19:16:56+00:00 Updated <workflowengine> to 2.0.0
2020-03-02T19:16:56+00:00 Updating <admin_audit> ...
2020-03-02T19:16:56+00:00 Updated <admin_audit> to 1.8.0
2020-03-02T19:16:56+00:00 Updating <comments> ...
2020-03-02T19:16:56+00:00 Updated <comments> to 1.8.0
2020-03-02T19:16:56+00:00 Updating <firstrunwizard> ...
2020-03-02T19:16:56+00:00 Updated <firstrunwizard> to 2.7.0
2020-03-02T19:16:56+00:00 Updating <nextcloud_announcements> ...
2020-03-02T19:16:57+00:00 Updated <nextcloud_announcements> to 1.7.0
2020-03-02T19:16:57+00:00 Updating <notifications> ...
2020-03-02T19:16:57+00:00 Updated <notifications> to 2.6.0
2020-03-02T19:16:57+00:00 Updating <systemtags> ...
2020-03-02T19:16:57+00:00 Updated <systemtags> to 1.8.0
2020-03-02T19:16:57+00:00 Updating <theming> ...
2020-03-02T19:16:57+00:00 Updated <theming> to 1.9.0
2020-03-02T19:16:57+00:00 Checking for update of app accessibility in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "accessibility" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app activity in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "activity" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app admin_audit in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "admin_audit" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app bruteforcesettings in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "bruteforcesettings" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app calendar in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "calendar" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app camerarawpreviews in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "camerarawpreviews" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app carnet in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "carnet" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app checksum in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "checksum" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app cloud_federation_api in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "cloud_federation_api" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app cms_pico in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "cms_pico" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app comments in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "comments" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app dav in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "dav" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app encryption in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "encryption" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app federatedfilesharing in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "federatedfilesharing" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app federation in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "federation" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_antivirus in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_antivirus" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_external in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_external" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_markdown in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_markdown" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_mindmap in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_mindmap" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_pdfviewer in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_pdfviewer" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_rightclick in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_rightclick" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_sharing in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_sharing" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_trashbin in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_trashbin" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_versions in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_versions" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app files_videoplayer in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "files_videoplayer" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app firstrunwizard in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "firstrunwizard" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app forms in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "forms" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app gpxpod in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "gpxpod" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app logreader in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "logreader" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app lookup_server_connector in appstore
2020-03-02T19:17:02+00:00 Checked for update of app "lookup_server_connector" in appstore
2020-03-02T19:17:02+00:00 Checking for update of app mail in appstore
2020-03-02T19:17:02+00:00 Update app mail from appstore
2020-03-02T19:17:13+00:00 Repair step: Purify and migrate collected mail addresses
2020-03-02T19:17:13+00:00 Purify and migrate collected mail addresses
2020-03-02T19:17:13+00:00
2020-03-02T19:17:13+00:00  Starting ...
    0/0 [>-]   0%2020-03-02T19:17:13+00:00
2020-03-02T19:17:13+00:00 Repair step: Make Mail itinerary extractor executable
2020-03-02T19:17:13+00:00 Repair step: Migrate Mail provisioning config from config.php to the database
2020-03-02T19:17:13+00:00 Repair info: No old config found
2020-03-02T19:17:13+00:00 Repair step: Create or update provisioned Mail accounts
2020-03-02T19:17:13+00:00 Repair info: No Mail provisioning config set
2020-03-02T19:17:13+00:00 Checked for update of app "mail" in appstore
2020-03-02T19:17:13+00:00 Checking for update of app maps in appstore
2020-03-02T19:17:13+00:00 Update app maps from appstore
2020-03-02T19:17:19+00:00 Checked for update of app "maps" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app metadata in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "metadata" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app nextcloud_announcements in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "nextcloud_announcements" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app notes in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "notes" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app notifications in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "notifications" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app oauth2 in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "oauth2" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app password_policy in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "password_policy" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app phonetrack in appstore
2020-03-02T19:17:19+00:00 Checked for update of app "phonetrack" in appstore
2020-03-02T19:17:19+00:00 Checking for update of app polls in appstore
2020-03-02T19:17:19+00:00 Update app polls from appstore
2020-03-02T19:17:22+00:00 Checked for update of app "polls" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app privacy in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "privacy" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app provisioning_api in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "provisioning_api" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app recommendations in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "recommendations" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app registration in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "registration" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app richdocuments in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "richdocuments" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app serverinfo in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "serverinfo" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app settings in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "settings" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app sharebymail in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "sharebymail" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app support in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "support" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app survey_client in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "survey_client" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app systemtags in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "systemtags" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app tasks in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "tasks" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app text in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "text" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app theming in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "theming" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app twofactor_backupcodes in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "twofactor_backupcodes" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app twofactor_totp in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "twofactor_totp" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app updatenotification in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "updatenotification" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app viewer in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "viewer" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app workflowengine in appstore
2020-03-02T19:17:22+00:00 Checked for update of app "workflowengine" in appstore
2020-03-02T19:17:22+00:00 Checking for update of app announcementcenter in appstore
2020-03-02T19:17:22+00:00 Update app announcementcenter from appstore
2020-03-02T19:17:24+00:00 Repair step: Add read permissions for existing announcements
2020-03-02T19:17:24+00:00 Add read permissions for existing announcements
2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00  Starting ...
    0/0 [>-]   0%2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00 Checked for update of app "announcementcenter" in appstore
2020-03-02T19:17:24+00:00 Repair step: Add read permissions for existing announcements
2020-03-02T19:17:24+00:00 Add read permissions for existing announcements
2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00  Starting ...
    0/0 [>-]   0%2020-03-02T19:17:24+00:00
2020-03-02T19:17:24+00:00 Checking for update of app data_request in appstore
2020-03-02T19:17:24+00:00 Update app data_request from appstore
2020-03-02T19:17:27+00:00 Checked for update of app "data_request" in appstore
2020-03-02T19:17:27+00:00 Checking for update of app external in appstore
2020-03-02T19:17:27+00:00 Update app external from appstore
2020-03-02T19:17:29+00:00 Repair step: Copy default images to the app data directory
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Checked for update of app "external" in appstore
2020-03-02T19:17:29+00:00 Repair step: Copy default images to the app data directory
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair step: Copy default images to the app data directory
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Repair info: Icon %s already exists
2020-03-02T19:17:29+00:00 Checking for update of app files_snapshots in appstore
2020-03-02T19:17:29+00:00 Checked for update of app "files_snapshots" in appstore
2020-03-02T19:17:29+00:00 Checking for update of app fulltextsearch_elasticsearch in appstore
2020-03-02T19:17:29+00:00 Update app fulltextsearch_elasticsearch from appstore
2020-03-02T19:17:32+00:00 Checked for update of app "fulltextsearch_elasticsearch" in appstore
2020-03-02T19:17:32+00:00 Checking for update of app gallery in appstore
2020-03-02T19:17:32+00:00 Checked for update of app "gallery" in appstore
2020-03-02T19:17:32+00:00 Checking for update of app gpxedit in appstore
2020-03-02T19:17:32+00:00 Update app gpxedit from appstore
2020-03-02T19:17:34+00:00 Checked for update of app "gpxedit" in appstore
2020-03-02T19:17:34+00:00 Checking for update of app quota_warning in appstore
2020-03-02T19:17:34+00:00 Update app quota_warning from appstore
2020-03-02T19:17:36+00:00 Checked for update of app "quota_warning" in appstore
2020-03-02T19:17:36+00:00 Repair step: Add background jobs for existing users
2020-03-02T19:17:36+00:00 Add background jobs for existing users
2020-03-02T19:17:36+00:00
2020-03-02T19:17:36+00:00  Starting ...
    0/0 [>-]   0%2020-03-02T19:17:36+00:00
 Starting ...
    1/0 [->]   0%2020-03-02T19:17:36+00:00
 Starting ...
    2/0 [-->]   0%2020-03-02T19:17:36+00:00
 Starting ...
    3/0 [--->]   0%2020-03-02T19:17:36+00:00
2020-03-02T19:17:36+00:00 Checking for update of app ransomware_protection in appstore
2020-03-02T19:17:36+00:00 Update app ransomware_protection from appstore
2020-03-02T19:17:38+00:00 Checked for update of app "ransomware_protection" in appstore
2020-03-02T19:17:38+00:00 Checking for update of app sharerenamer in appstore
2020-03-02T19:17:38+00:00 Checked for update of app "sharerenamer" in appstore
2020-03-02T19:17:38+00:00 Checking for update of app social in appstore
2020-03-02T19:17:38+00:00 Checked for update of app "social" in appstore
2020-03-02T19:17:38+00:00 Checking for update of app socialsharing_diaspora in appstore
2020-03-02T19:17:38+00:00 Update app socialsharing_diaspora from appstore
2020-03-02T19:17:39+00:00 Checked for update of app "socialsharing_diaspora" in appstore
2020-03-02T19:17:39+00:00 Checking for update of app socialsharing_email in appstore
2020-03-02T19:17:39+00:00 Update app socialsharing_email from appstore
2020-03-02T19:17:41+00:00 Checked for update of app "socialsharing_email" in appstore
2020-03-02T19:17:41+00:00 Checking for update of app socialsharing_twitter in appstore
2020-03-02T19:17:41+00:00 Update app socialsharing_twitter from appstore
2020-03-02T19:17:43+00:00 Checked for update of app "socialsharing_twitter" in appstore
2020-03-02T19:17:43+00:00 Checking for update of app spreed in appstore
2020-03-02T19:17:43+00:00 Update app spreed from appstore
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\FixNamespaceInDatabaseTables' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\CreateHelpCommand' is unknown
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\ClearResourceAccessCache' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Checked for update of app "spreed" in appstore
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\FixNamespaceInDatabaseTables' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\CreateHelpCommand' is unknown
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\ClearResourceAccessCache' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:46+00:00 Repair error: Repair step 'OCA\Talk\Migration\CreateHelpCommand' is unknown
2020-03-02T19:17:46+00:00 Repair info: No repair steps available
2020-03-02T19:17:47+00:00 Repair step: Repair MySQL collation
2020-03-02T19:17:47+00:00 Repair info: All tables already have the correct collation -> nothing to do
2020-03-02T19:17:47+00:00 Repair step: Repair mime types
2020-03-02T19:17:47+00:00 Repair step: Clean tags and favorites
2020-03-02T19:17:47+00:00 Repair info: 0 tags of deleted users have been removed.
2020-03-02T19:17:47+00:00 Repair info: 0 tags for delete files have been removed.
2020-03-02T19:17:47+00:00 Repair info: 0 tag entries for deleted tags have been removed.
2020-03-02T19:17:47+00:00 Repair info: 0 tags with no entries have been removed.
2020-03-02T19:17:47+00:00 Repair step: Repair invalid shares
2020-03-02T19:17:47+00:00 Repair step: Move .step file of updater to backup location
2020-03-02T19:17:47+00:00 Repair info: .step file exists
2020-03-02T19:17:47+00:00 Repair info: .step-previous-update removed
2020-03-02T19:17:47+00:00 Repair info: .step file moved to .step-previous-update
2020-03-02T19:17:47+00:00 Repair step: Fix potential broken mount points
2020-03-02T19:17:47+00:00 Repair info: No mounts updated
2020-03-02T19:17:47+00:00 Repair step: Add log rotate job
2020-03-02T19:17:47+00:00 Repair step: Clear frontend caches
2020-03-02T19:17:47+00:00 Repair info: Image cache cleared
2020-03-02T19:17:47+00:00 Repair info: SCSS cache cleared
2020-03-02T19:17:47+00:00 Repair info: JS cache cleared
2020-03-02T19:17:47+00:00 Repair step: Clear every generated avatar on major updates
2020-03-02T19:17:47+00:00 Repair step: Add preview background cleanup job
2020-03-02T19:17:47+00:00 Repair step: Queue a one-time job to cleanup old backups of the updater
2020-03-02T19:17:47+00:00 Repair step: Cleanup invalid photocache files for carddav
2020-03-02T19:17:47+00:00 Repair step: Add background job to cleanup login flow v2 tokens
2020-03-02T19:17:47+00:00 Repair step: Remove potentially over exposing share links
2020-03-02T19:17:47+00:00 Repair info: No need to remove link shares.
2020-03-02T19:17:47+00:00 Repair step: Clear access cache of projects
2020-03-02T19:17:47+00:00 Repair step: Switches from deprecated "production" to "stable" update channel
2020-03-02T19:17:47+00:00 Repair step: Sets the enterprise logo
2020-03-02T19:17:47+00:00 Repair info: Repair step already executed
2020-03-02T19:17:47+00:00 Repair step: Reset generated avatar flag
2020-03-02T19:17:47+00:00 Starting code integrity check...
2020-03-02T19:17:59+00:00 Finished code integrity check
2020-03-02T19:17:59+00:00 Update successful
2020-03-02T19:17:59+00:00 Maintenance mode is kept active
2020-03-02T19:17:59+00:00 Reset log level

Keep maintenance mode active? [y/N] y
Maintenance mode kept active
$ sudo -u www-data php occ maintenance:mode --off
Maintenance mode disabled

アプリも最新にしておきます.

$ sudo -u www-data php ./occ app:update --all

セキュリティ&セットアップ警告を確認します.管理権限ユーザでログインして, index.php/settings/admin/overview にアクセスします.

2つの警告が表示されたので対処します.

Security & Setup warnings

1つ目の警告

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_calendarobjects_props"のインデックス "calendarobject_calid_index"が見つかりません。
テーブル "oc_schedulingobjects"のインデックス "schedulobj_principuri_index"が見つかりません。

案内の通り occ db:add-missing-indices でokでした.
(メッセージの : 部分は になっているのでコピペする場合は注意)

$ sudo -u www-data php ./occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Adding calendarobject_calid_index index to the calendarobjects_props table, this can take some time...
calendarobjects_props table updated successfully.
Check indices of the schedulingobjects table.
Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time...
schedulingobjects table updated successfully.

2つ目の警告

データベース内のいくつかの列で、big intへの変換が行われていません。 大きなテーブルでカラムタイプを変更すると時間がかかることがあるため、自動的には変更されませんでした。 'occ db:convert-filecache-bigint'を実行することによって、それらの保留中の変更は手動で適用できます。 この操作は、インスタンスがオフラインの間に行う必要があります。 詳細についてはこれに関するドキュメントページを読んでください。
mounts.storage_id
mounts.root_id
mounts.mount_id

こちらも案内どおりでok

$ sudo -u www-data php ./occ db:convert-filecache-bigint
Following columns will be updated:

* mounts.storage_id
* mounts.root_id
* mounts.mount_id

This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y

セキュリティ&セットアップ警告ページを再読込して警告が消えるのを確認します.

OK

]]>
https://matoken.org/blog/2020/03/04/nextcloud-17-0-2-%e2%86%92-18-0-1-upgrade-memo/feed/ 0
Nextcloudのデータディレクトリを移動するメモ https://matoken.org/blog/2019/12/03/move-nextcloud-data-directory/ https://matoken.org/blog/2019/12/03/move-nextcloud-data-directory/#respond Mon, 02 Dec 2019 16:51:48 +0000 http://matoken.org/blog/?p=2682

Nextcloudのデータディレクトリは既定値ではNextcloudのすぐ下の data ディレクトリになります.しかしここはウェブサーバのドキュメントルート以下になってしまい設定をミスするとデータディレクトリが一般公開されてしまう可能性があり少し怖いです.
そこでNextcloud導入時に設定ファイルの config/config.phpdatadirectory にウェブサーバドキュメントルートの外にNextcloudデータを設定します.

今回デフォルトのウェブサーバドキュメントルート内のまま運用されているNextcloudがあったのでそれをウェブサーバドキュメントルート外に移動してみました.
ディスクを増設してそちらにデータを移すなどの際にも同じ手順でデータ移行できると思います.

今回の例でのパスはこんな感じです.

  • Nextcloud導入ディレクトリ : /var/www/nextcloud
  • 旧Nextcloud データディレクトリ : /var/www/nextcloud/data
  • 新Nextcloud データディレクトリ : /var/data/nextcloud/data
Important
インストール後のデータディレクトリの移動は公式ではサポートされていません.

ファイルのコピー

同一のファイルシステム間であれば mv commandで一瞬ですが,今回はファイルシステムを跨いでいるので時間がかかります.
ダウンタイムを短くしたいのでNextcloud動作状態で一度データをコピーしてその後rsyncで差分のみコピーすることにします.

1度目のコピー

$ sudo cp -a /var/www/nextcloud/data /var/www/nextcloud/

rsyncでデータ同期

1度目のデータコピーに時間がかかったのでrsyncで同期

$ sudo rsync -avc /var/www/nextcloud/data /var/www/nextcloud/

バックグラウンドジョブを停止(恐らくこの手順は不要)

次の手順でメンテナンスモードに移行するので不要だと思うけど念の為バックグラウンドジョブをcrontabで設定しているのを停止(コメントアウト)しておく.(Webcronの場合も止めたほうがいいかも.AJAXの場合は恐らく不要)

$ sudo -u www-data crontab -e

メンテナンスモードに移行

ここからNextcloudは利用できなくなります.

$ sudo -u www-data php ./occ maintenance:mode --on

データ同期

-c オプションも付けたほうがいいけどデータが大きいと時間がかかるので今回はなしであとでチェックすることにする.

$ sudo rsync -av /var/www/nextcloud/data /var/www/nextcloud/

データベース書き換え

Nextcludのデータベース内のファイルディレクトリ情報を書き換えます.書き換え前に念の為データベースのバックアップも取っておきます.

バックアップ
$ sh -c "umask 266 ; mysqldump -uroot -p --opt --all-databases --events | xz > mysqlbackup-`date +\%F_\%T_\%s_$`.sql.xz"
db書き換え
$ mysql -unextcloud -p
mysql> use nextcloud;
mysql> update oc_storages set id='local::/var/data/nextcloud/data/' where id='local::/var/www/nextcloud/data/';
mysql> quit;

設定ファイル書き換え

Nextcloudの設定ファイルの config/config.php の中の datadirectory を新しいパスに書き換えます.

  'datadirectory' => '/var/data/nextcloud/data',

メンテナンスモードをoffにする

$ sudo -u www-data php ./occ maintenance:mode --off

動作確認

Nextcloudにログインしてファイルディレクトリが閲覧できることを確認する.

バックグラウンドジョブを設定

バックグラウンドジョブをcrontabで再設定

$ sudo -u www-data crontab -e

旧データの削除

しばらく運用して問題ないようなら旧データを削除する.

$ sudo rm -rf /var/www/nextcloud/data

生ディスクなんかだと secure-delete とか使うと少し安心.でも確実じゃないし時間かかるので暗号化fsを推奨.

$ sudo nice -20 ionice -c1 -n0 srm -r /var/www/nextcloud/data

環境

$ sudo -u www-data php ./occ -V
Nextcloud 17.0.1
$ dpkg-query -W php7.2-common mysql-server
mysql-server    5.7.28-0ubuntu0.18.04.4
php7.2-common   7.2.24-0ubuntu0.18.04.1
$ lsb_release -dr
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
$ uname -m
x86_64
]]>
https://matoken.org/blog/2019/12/03/move-nextcloud-data-directory/feed/ 0
Nextcloud upgrade時に`Check for expected files The following extra files have been found: .rnd` と言われて失敗する(15.0.7→16.0.6) https://matoken.org/blog/2019/11/29/failed-to-say-check-for-expected-files-the-following-extra-files-have-been-found-rnd-during-nextcloud-upgrade-15-0-7-%e2%86%92-16-0-6/ https://matoken.org/blog/2019/11/29/failed-to-say-check-for-expected-files-the-following-extra-files-have-been-found-rnd-during-nextcloud-upgrade-15-0-7-%e2%86%92-16-0-6/#respond Fri, 29 Nov 2019 06:51:25 +0000 http://matoken.org/blog/?p=2677

Nextcloud 15.0.7からNextcloud 16.0.6へのアップグレードを行おうとしたところ,アップグレード画面で以下のようなメッセージが表示されて先に勧めません.

Nextcloud upgrade failed 20191125 13:11:17 12878

Check for expected files
The following extra files have been found:
.rnd

Nextcloud 以下を確認すると3つの .rnd ファイルが見つかりました.

$ cd /export/data/var/nextcloud-data
$ find ./ -name .rnd -ls
13495506336      0 drwxr-xr-x   3 www-data www-data       38 Jan 31  2018 ./data/matoken/files_encryption/keys/files/tmp/pizero/home/pi/.rnd
15757999341     12 -rw-r--r--   1 www-data www-data     9656 Jan 31  2018 ./data/matoken/files/tmp/pizero/home/pi/.rnd
11866753713      4 -rw-------   1 www-data www-data     1024 Nov 25 13:19 ./.rnd

以下のページを見ると,Nextcloud 直下の .rnd ファイルが悪さをしているようなのでこれを退避します.

$ sudo mv ./.rnd ~/tmp

この後もう一度アップグレードを試みるとうまく行きました.

This behavior continues up to version 15.0.7.

とのことでぎりぎり引っかかったようです😣

環境
$ sudo -u www-data php ./occ -V
Nextcloud 16.0.6
$ dpkg-query -W php7.2-common mysql-server
mysql-server    5.7.28-0ubuntu0.18.04.4
php7.2-common   7.2.24-0ubuntu0.18.04.1
$ lsb_release -dr
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
$ uname -m
x86_64
]]>
https://matoken.org/blog/2019/11/29/failed-to-say-check-for-expected-files-the-following-extra-files-have-been-found-rnd-during-nextcloud-upgrade-15-0-7-%e2%86%92-16-0-6/feed/ 0
Nextcloud 15から16にアップグレードしたときのセキュリティ&セットアップ警告を解消 https://matoken.org/blog/2019/10/19/repair-security-setup-warnings-when-upgrading-from-nextcloud-15-to-16/ https://matoken.org/blog/2019/10/19/repair-security-setup-warnings-when-upgrading-from-nextcloud-15-to-16/#respond Fri, 18 Oct 2019 20:55:29 +0000 http://matoken.org/blog/?p=2587

Nextcloud を15から16にアップグレードしました.すると管理アカウントの「設定」→「管理」→「概要」に以下のセキュリティ&セットアップ警告が表示されました.

Nextcloud check ok 20191019 04:10:57 2932

セットアップに関して警告がいくつかあります。
PHPのメモリ制限は推奨値512MBを下回ります。
データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 "occ db:add-missing-indices"を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。
テーブル "oc_twofactor_providers"のインデックス "twofactor_providers_uid"が見つかりません。
テーブル "oc_whats_new"のインデックス "version"が見つかりません。
テーブル "oc_cards"のインデックス "cards_abid"が見つかりません。
テーブル "oc_cards_properties"のインデックス "cards_prop_abid"が見つかりません。

これらを解消します.

PHPのメモリ制限は推奨値512MBを下回ります。

php.inimemory_limit512M 以上に設定します.
今回は /etc/php/7.3/apache2/php.ini

$ sudo git diff /etc/php/7.3/apache2/php.ini
diff --git a/php/7.3/apache2/php.ini b/php/7.3/apache2/php.ini
index 9a35de2..598dd82 100644
--- a/php/7.3/apache2/php.ini
+++ b/php/7.3/apache2/php.ini
@@ -403,7 +403,7 @@ max_input_time = 60

 ; Maximum amount of memory a script may consume (128MB)
 ; http://php.net/memory-limit
-memory_limit = 128M
+memory_limit = 512M

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; Error handling and logging ;

編集後httpdを再読込して設定を反映します.

$ sudo service apache2 reload

データベースにいくつかのインデックスがありません。

データベースにいくつかのインデックスがありません。 大きなテーブルにインデックスを追加すると、自動的に追加されないまでに時間がかかる可能性があるためです。 “occ db:add-missing-indices”を実行することによって、インスタンスが実行し続けている間にそれらの欠けているインデックスを手動で追加することができます。 インデックスが追加されると、それらのテーブルへのクエリは通常はるかに速くなります。

Nextcloud のpathに移動して,occ db:add-missing-indices を実行してインデックスが作成されるのを暫く待ちます.

$ cd /var/www/Nextcloud
$ sudo -u www-data php ./occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Adding additional twofactor_providers_uid index to the twofactor_providers table, this can take some time...
Twofactor_providers table updated successfully.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Adding version index to the whats_new table, this can take some time...
whats_new table updated successfully.
Check indices of the cards table.
Adding cards_abid index to the cards table, this can take some time...
cards table updated successfully.
Check indices of the cards_properties table.
Adding cards_prop_abid index to the cards_properties table, this can take some time...
cards_properties table updated successfully.

ok

再度,管理アカウントの「設定」→「管理」→「概要」にアクセスしてチェックに合格しているのを確認 :)

Nextcloud check ok 20191019 04:10:14 19608

環境

$ sudo -u www-data php ./occ status | grep version:
  - version: 16.0.5.1
$ dpkg-query -W php apache2
apache2 2.4.38-3+deb10u3
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64
]]>
https://matoken.org/blog/2019/10/19/repair-security-setup-warnings-when-upgrading-from-nextcloud-15-to-16/feed/ 0
Google KeepのデータをCarnetにインポートする https://matoken.org/blog/2019/10/19/import-google-keep-data-into-carnet/ https://matoken.org/blog/2019/10/19/import-google-keep-data-into-carnet/#respond Fri, 18 Oct 2019 20:43:41 +0000 http://matoken.org/blog/?p=2591

Google Keep代替にCarmetを試してみようと思い先ずはCarnetのLinuxアプリにGoogle Keepのインポート機能があるのでそれを試してみました.

CarnetのLinuxアプリは以下のページからElectron製のi386, amd64 それぞれのAppImageが入手できます.

今回はamd64の current64.AppImage を利用しました.
ダウンロード後,実行権を付与して起動します.

$ wget https://qn.phie.ovh/binaries/desktop/current64.AppImage
$ mv ./current64.AppImage ./Carnet.AppImage
$ chmod u+x ./Carnet.AppImage
$ ./Carnet.AppImage

Settings で設定画面を開き, Import from Google Keep (only on desktop client) で Google Keep のImport画面に移動します.

Keep2Carnet 20191018 22:10:06 32370.jpg.s

先ずは Follow this link からGoogle Takeout に移動します. https://takeout.google.com/settings/takeout

Keep2Carnet 20191018 22:10:20 32675.jpg.s

Google Takeoutにて,「新しいアーカイブの作成」の「追加するデータの選択」で「選択を全て解除」した上で「Keep」にだけチェックを付けて一番下の「次のステップ」を押し,「アーカイブを作成」します.

Keep2Carnet 20191019 05:10:50 19472.jpg.s

しばらくすると(データ量により時間は変わる)Takeoutのデータをダウンロードできるようになるので適当な場所にダウンロードして展開しておきます.

展開したらCarnetアプリに戻り,「PATH TO EXTRACTED ARCHIVE」ボタンを押し,展開したKeepのパスを指定します.

Keep2Carnet 20191018 22:10:44 831.jpg.s

パスを指定したら「PICK FOLDER」ボタンを押してインポート対象を選択して「IMPORT」ボタンでインポート開始.

Keep2Carnet 20191018 22:10:13 1597.jpg.s

順調に行けばこれで終わりですが,いくつかの日本語ファイルでインポートが止まりました.

Keep2Carnet 20191018 22:10:17 1731.jpg.s

一旦画面を閉じて確認すると止まったファイルはインポートできているようでした.そのファイルを削除して再度インポート.
しかしまた止まったのでそのファイルがインポートされているのを確認してファイル削除して再度インポートすることで読み込みが終わりました.

自分の環境では2回止まりそのどちらも日本語ファイル名でした.日本語ファイル名だと必ず止まるというわけではなく問題なくインポートされた日本語ファイルのほうが多かったです.

とりあえずインポートできたのでGoogle Keep代替として試してみようと思います.

add)
インポートしたKeepのTodoリストは
☐ hoge
☑ fuga
な感じのテキストになっていました.Todoに戻すのが少し面倒.

環境
$ curl -s https://qn.phie.ovh/binaries/desktop/current_version
0.18.5
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64
]]>
https://matoken.org/blog/2019/10/19/import-google-keep-data-into-carnet/feed/ 0
LinuxとAndroidで動作するGoogle Keep代替を探す https://matoken.org/blog/2019/10/18/find-a-google-keep-alternative-that-works-on-linux-and-android/ https://matoken.org/blog/2019/10/18/find-a-google-keep-alternative-that-works-on-linux-and-android/#respond Fri, 18 Oct 2019 13:27:42 +0000 http://matoken.org/blog/?p=2583

Google Keepはメモアプリです.Evernoteに似ていますがもう少し機能が少ない感じ.

自分は主にTodoや買い物リストなどにKeepを利用しています.PCやAndroidで買い物をメモしてお店でAndroidのメモを見ながら買い物してチェックボックスをチェックしていく感じです.
メモの数もまだ少ないし使っている機能も少ないので代替になるものがあるのではと探してみました.

要件としてはこんな感じ

  • OSS
  • サーバ側はWebDAVなどでセルフホストが利用可能
    • 若しくはクラウドサービスを使うけどE2EEが利用可能
  • LinuxとAndroidで動作する
    • Android版では買い物メモをデスクトップウィジットで表示したい

Joplin

現在EvernoteとZim Wikiから乗り換えて作業メモなどに利用しています.サーバはNextcloudなどWebDAVが利用でき,単体でE2EEが可能です.
LinuxではAppimageやnodeでのcli版もあり,cli版はarmなどでも動作します.

既にあるノートを全部同期するのは大変,同期ディレクトリを分けることは出来ますがクライアントは1箇所しか登録できないので難しい.ノートブック単位で同期できればいいのですが今の所出来ないようです

それとAndroidでのウィジットはフレームワークでサポートされていないので今の所サポートされないようです(◞‸◟)

とりあえず見送りです.

Carnet

Google Keep代替のアプリのようです.Linux,Android,Webで利用でき,デスクトップ版はElectron製のAppimageが用意されていてGoogle Keepからのインポート機能も付いています.これはGoogle TakeoutでExportして展開したものを指定することでインポートできるようです.
同期先サーバはNextcloudかCarnetのサービスの https://carnet.live です.

今の所暗号化は未対応.

AndroidでのウィジットはIssueに上がっています.

Linux armで動作しない&暗号化未対応だけれどelectronではないLinuxアプリを開発中だし暗号化もウィジェットもIssueにあがっているので将来に期待しつつGoogle Keepをインポートして試してみようと思います.(Takeout待ち……)

add)
Web版はhttps://carnet.live だけかと思っていたのですが,NextcloudアプリのCarnetを導入することでNextcloudでWeb版が利用できます.

add)
インポートしてみました.

]]>
https://matoken.org/blog/2019/10/18/find-a-google-keep-alternative-that-works-on-linux-and-android/feed/ 0