ownCloud ist eine open-source Software zur Verteilung von Daten (Filehosting) und stellt auch andere Funktionen wie Kalender zur Verfügung. Im Gegensatz zu vergleichbaren Lösungen (dropbox, strato hidrive, icloud, google drive, …) ist man nicht von einem cloud-Anbieter abhängig sondern kann mit eigenen Servern diese Dienste bereitstellen.
Aufgrund der stärkeren enterprise-Ausrichtung von owncloud hat sich nextcloud abgespalten.
Nextcloud hat durch die Implementierung vieler features und apps mittlerweise eine dominante Stellung gegenüber owncloud.
ownCloud Infinite Scale ist der Versuch (aktuell preview-stadium) eine neue Plattform auf der Basis von microservices und der Programmierspache go zu etablieren. Fokus liegt hier auf Skalierung und Architektur, es scheint eher den Fokus der Hoster und Provider zu haben als Privatkunden und KMU.
https://SERVER/remote.php/caldav/Grundsätzliche Schritte:
Aus Administrativer Sicht:
Wird noch eine Weile aktuell bleiben: Sync only the file change, not entire file #179 oder auch: Incremental Sync in ownCloud. Geänderte Dateien werden als ganzes hochgeladen auch wenn nur wenige Byte dazu gekommen sind. Problematisch ist dies bei VM-Images und Truecrypt-Containern die damit mit owncloud nicht sinvoll zu benutzen sind.
Viele Benutzungsszenarien profitieren allerdings nicht von delta-sync: kleine Dateien, komprimierte Dateien und bei Einbindung von externem Speicher.
Seit der Version 8.1.x ist die file-locking-Unterstützung bei Zugriff über Webdav entfallen. Je nach Client hat das keine bis ernsthafte Auswirkung:
Die Standard-Einstellungen müssen verändert werden, die transaction-isolation ist nämlich standardmäßig REPEATABLE-READ (muss READ-COMMITTED sein, siehe https://doc.owncloud.org/server/9.1/admin_manual/installation/system_requirements.html#database-requirements-for-mysql-mariadb)
In der /etc/mysql/my.cnf bzw. /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld] ... # owncloud binlog-format = MIXED transaction-isolation = READ-COMMITTED
APC(u):
aptitude install php-apc && /etc/init.d/apache2 reload
aptitude install php5-apcu && /etc/init.d/apache2 reload
aptitude install php-apcu && /etc/init.d/apache2 reload
Für den Cronjob per php-cli eintragen: In /etc/php5/cli/php.ini oder /etc/php/7.0/cli/php.ini
apc.enable_cli=1
config.php:
'memcache.local' => '\\OC\\Memcache\\APC',
in neueren Version (ab 10.2 oder 10.3):
'memcache.local' => '\OC\Memcache\APCu',
HSTS in Apache aktivieren:
<IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15768000" </IfModule>
service apache2 restart
ggf. das Modul headers aktivieren:
a2enmod headers && service apache2 restart
Beispiel für 15Minuten (Standard ist 24h):
<?php $CONFIG = array ( ... 'session_lifetime' => '60*15', ... );
sudo -u www-data php occ maintenance:mode --on
oder in der config/config.php:
maintenance" => true,
Damit owncloud in frames funktioniert muss eine Zeile in der config/onfig.php ergänzt werden:
<?php $CONFIG = array ( ... 'xframe_restriction' => false, ... );
Um den Pfad des Datenverzeichnisses von owncloud zu ändern sind leider viele manuelle Schritte notwendig, unter anderem Änderungen in der Datenbank und Dateianpassungen (maintenance-Modus anschalten!). Dies kann durch symbolische Links von dem alten und das neue Verzeichnis vermieden werden. Ansonsten dieser Anleitung folgen: https://doc.owncloud.com/server/admin_manual/maintenance/manually-moving-data-folders.html
Mindestens diese Schritte sind notwendig:
$CONFIG = array ( 'datadirectory' => '/NEW/DIR/data',
UPDATE oc_accounts SET home = REPLACE( home, '/OLD/DIR/', '/NEW/DIR/' );
Bei nextcloud ist die Sache etwas anders: https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170 .
Sqlite ist für den Mehrbenutzerbetrieb nicht gut geeignet da die Datenbank als Datei auf dem Server liegt und bei jedem Zugriff gelesen wird, das kostet Performance.
Konvertierung am Beispiel von owncloud 7.0.1:
/var/www/owncloud) chmod +x occ
./occ db:convert-type --password="geheim" --all-apps mysql owncloud localhost owncloudDBName
Creating schema in new database
The following tables will not be converted:
oc_permissions
Continue with the conversion?y
oc_activity
3780/3784 [===========================>] 99%
oc_activity_mq
0/0 [============================] 0%
oc_appconfig
85/85 [============================] 100%
oc_clndr_calendars
11/11 [============================] 100%
oc_clndr_objects
31/31 [============================] 100%
oc_clndr_repeat
66/66 [============================] 100%
oc_clndr_share_calendar
0/0 [============================] 0%
oc_clndr_share_event
0/0 [============================] 0%
oc_contacts_addressbooks
7/7 [============================] 100%
oc_contacts_cards
0/0 [============================] 0%
oc_contacts_cards_properties
0/0 [============================] 0%
oc_documents_invite
0/0 [============================] 0%
oc_documents_member
0/0 [============================] 0%
oc_documents_op
0/0 [============================] 0%
oc_documents_revisions
0/0 [============================] 0%
oc_documents_session
0/0 [============================] 0%
oc_file_map
0/0 [============================] 0%
oc_filecache
3225/3226 [===========================>] 99%
oc_files_trash
28/28 [============================] 100%
oc_gallery_sharing
0/0 [============================] 0%
oc_group_admin
4/4 [============================] 100%
oc_group_user
14/14 [============================] 100%
oc_groups
5/5 [============================] 100%
oc_jobs
2770/2771 [===========================>] 99%
oc_locks
0/0 [============================] 0%
oc_lucene_status
38/38 [============================] 100%
oc_mimetypes
36/36 [============================] 100%
oc_pictures_images_cache
0/0 [============================] 0%
oc_preferences
29/29 [============================] 100%
oc_privatedata
0/0 [============================] 0%
oc_properties
0/0 [============================] 0%
oc_share
11/11 [============================] 100%
oc_share_external
0/0 [============================] 0%
oc_storages
7/7 [============================] 100%
oc_users
9/9 [============================] 100%
oc_vcategory
31/31 [============================] 100%
oc_vcategory_to_object
0/0 [============================] 0%
Das Skript nimmt ebenfalls selbstständig die Einstellungen in der Konfigurationsdatei config/config.php vor.
SemperVideo - Owncloud 8: Datenbank auf MySQL konvertieren, eine Anleitung für Version 8 incl. Webmin.
Nach dem update auf Version 9.1.6 würden Code-Integritätswarnungen für das Calendar-Plugin ausgegeben. Das ist nun mit dem neuen App-store behoben:
config/config.php:
'appstoreurl' => 'https://marketplace.owncloud.com/api/v0',
sudo -u www-data php /srv/www/occ maintenance:mode –onsudo -u www-data php /srv/www/occ maintenance:mode –offsudo -u www-data php /srv/www/occ files:scan –allsudo -u www-data php /srv/www/occ help files:cleanup