日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年11月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Nextcloud Hub 5 (27.0.1) : ファイルを読み込めませんでした。 インターネット接続を確認してください。

カテゴリー: General
2023-07-30
タイトル

執筆:2023.07.30
編集:2023.07.30


Nextcloud Hub 5 (27.0.1) :

WEB: テキストファイルを開く
ファイルを読み込めませんでした。 インターネット接続を確認してください。

index.php/settings/admin/logging
エラー no app in context Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.

まとめ
(0) インストールしてあるフォルダで cmdシェルを開く
(1) コマンドからcronを呼び出し、くるったシステムを正常化する
php -d memory_limit=512M cron.php

(2) 同期設定がAjaxなら設定を戻す。
php occ background:ajax

今回の騒動は cron.php がアップグレードに伴い原因不明のエラーを起こしていたのが原因でした。
アップグレード後は コマンドラインから cron.phpを実行する。

Docker

どうやら、外部からつつかないとだめらしい。
docker のホストマシンで
*/5 * * * * docker exec -u www-data nextcloud php /var/www/html/cron.php
または
*/5 * * * * curl http://192.168.xx.xx/cron.php > /dev/null 2>&1
とりあえず コマンドで確認してみる
docker exec -u www-data nextcloud php /var/www/html/cron.php
cronに登録する : root : crontab -e
# m  h dom mon dow  cmd
*/5 * * * * docker exec -u www-data nextcloud php /var/www/html/cron.php > /dev/null 2>&1
ホームネットワークのdocker サイトは解決した。


そしてNextcloud の重大な欠陥に気が付いた。
utf8でない文書をwebuiで開くとバックアップもなく破壊される。

php.ini
mbstring.language=Japanese
mbstring.detect_order=UTF-8,EUC-JP,SJIS-win,auto

Nextcloudのソースコードで不正文字チェック関数をエンコード判定に誤使用していて、エンコード判定が間違っているので
応急処置するには、上記を追加する。

コードを修正したい場合は、 nextcloud/apps/text/lib/Service/EncodingService.php の下記の関数をこのように書き換えます

修正したもの
     public function detectEncoding(string $string): ?string {
                $bomDetect = $this->detectUtfBom($string);
                if ($bomDetect) {
                        return $bomDetect;
                }
                if (false !== strpos($string, chr(0))) {
                        return null; // binary file
                }               
                $encoding = mb_detect_encoding($string, $this->getEncodings(), true);
                return is_string($encoding) ? $encoding : null;
        }
差分で違いを比較できるようにしたもの
     public function detectEncoding(string $string): ?string {
                $bomDetect = $this->detectUtfBom($string);
                if ($bomDetect) {
                        return $bomDetect;
                }
-
-               foreach ($this->getEncodings() as $encoding) {
-                       if (mb_check_encoding($string, $encoding)) {
-                               return $encoding;
-                       }
-               }
-
-               return mb_detect_encoding($string, $this->getEncodings(), true) ?: null;
+         if (false !== strpos($string, chr(0))) {
+                       return null; // binary file
+               }
+               $encoding = mb_detect_encoding($string, $this->getEncodings(), true);
+               return is_string($encoding) ? $encoding : null;
        }

Textプラグインは無効にしてプレビューをオフにしたほうが安全です。
・プレビューで勝手に上書き保存で強制エンコード変更と時には内容全破壊を伴う
・webUI編集時に保存の確認がなく強制保存される
・webUI編集時に元のエンコードで保存してくれない(utf8強制)

Nextcloud Hub 5 (27.0.1)

破壊されては意味がない。

smb共有フォルダ機能のほうがましかもしれないですね。
デフォルト設定で
古い文書ファイルをNextcloud に移動してはだめということ。

NextcloudのTextプラグインはデータ破壊を伴うので日本語環境でまともに使えるようになるまで無効にしておくことをお勧めします。


PR

[PR]