NossCo

I Make Computer Beep Boop Beep

Nach dem letzten Container Update der Nextlcoud App, war bei meiner Instanz kein Einloggen mehr möglich. Es begrüßte lediglich eine "Interner Severfehler" Seite nach dem klick auf Anmelden.

Ein wenig recherche und das setzen von Loglevel 0 in der Nextcloud Config ergaben einen merkwürdigen Fehler in der Datenbank.

4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE

Um den Fehler zu beheben (und gleichzeitig die 4 Byte Unterstützung zu aktivieren) geht man folgendermaßen vor:

In der docker-compose folgende Zeile zur DB hinzufügen:

command: --innodb-read-only-compressed=OFF

Und dann :

DB_CONTAINER=next-devmydomaincom_db_1
APP_CONTAINER=next-devmydomaincom_app_1
MYSQL_ROOT_PASSWORD=***mysecret_pass***
docker exec $DB_CONTAINER mysql nextcloud -p$MYSQL_ROOT_PASSWORD -e "show variables like 'innodb_file_format';"
docker exec --user www-data $APP_CONTAINER php occ maintenance:mode --on
docker exec $DB_CONTAINER mysql nextcloud -p$MYSQL_ROOT_PASSWORD -e "ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
docker exec --user www-data $APP_CONTAINER php occ config:system:set mysql.utf8mb4 --type boolean --value="true"
docker exec --user www-data $APP_CONTAINER php occ maintenance:repair --include-expensive 
docker exec --user www-data $APP_CONTAINER php occ maintenance:mode --off

Danach lief die Nextcloud wieder problemlos.

Bei einer default Installation des NGINX Proxy und der Nextcloud als Docker-Container begrüßt einen die Einstellungs-Übersicht direkt mit den Fehlermeldungen:

Your web server is not properly set up to resolve “/.well-known/caldav”. _

Das Problem zu lösen ist easy:

  • im vhost.d Verzeichnis des Proxy die passende Datei anlegen (z.B. nextcloud.domain.tld )
  • die entsprechenden Einträge hinzufügen:

    location /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; }

    location /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; }

  • Die Proxy-Container neustarten mit docker-compose restart

Und die Fehler sind verschwunden.