{{tag> owncloud nextcloud}} ====== Nextcloud 10 - Erfahrungsbericht ====== zur -> [[anwenderwiki:owncloud:start|Übersicht im Anwenderwiki]] NextCloud ist seit 2016 ein Fork von OwnCloud, der gegenüber OwnCloud Funktionen hat, die es dort nur in der Enterprise Version gibt. Hier wurde Nextcloud 10.0 auf einem ubuntu 16.04 server installiert (Stand Sep'2016). Der im folgenden bezeichnete "nextserver" wird dabei im grünen Netz mit der IP 10.16.1.8 betrieben. Die Benutzer werden per ldap vom linuxmuster.net-Server eingebunden.\\ Ob man aus Sicherheitsgründen auf https und/oder ldaps umstellt ist optional. ===== 1. Ubuntu-Server installieren ===== Zuerst den Ubuntu-Server mit seiner MAC in der Schulkonsole bei den Hosts (Workstations) aufnehmen, hier wurde ihm der Name "nextserver" und die IP 10.16.1.8 zugeordnet. Der Ubuntu-Server wurde vitualisiert unter VMWare (mit.iso-Datei) installiert mit folgenden Eigenschaften. Die Softwareauswahl LAMP installiert dabei fast alle notwendigen Pakete für die NextCloud. * Name: "nextserver" * Administrativer Benutzer: "nextadmin" * Softwareauswahl: Standard + LAMP + openSSH * kein Passort für MySQL setzen * Netzwerk: per dhcp erhält er die IP 10.16.1.8 * root-Zugang freigeschaltet (macht die Administration einfacher) Jetzt weitere Pakete installieren und aktivieren: # apt-get update # apt-get install php-ldap # apt-get install php7.0-gd php7.0-curl php7.0-zip php7.0-xml php7.0-mbstring # a2enmod ldap # a2enmod rewrite # a2enmod headers # a2enmod ssl # service apache2 restart Abschließend noch das Datenverzeichnis für NextCloud anlegen: # mkdir -p /home/nextcloud # chown www-data:www-data /home/nextcloud # chmod 750 /home/nextcloud ===== 2. NextCloud installieren ===== Für NextCloud gibt es bisher kein Paket zur Installation, somit müssen folgende Schritte einzeln abgearbeitet werden. # wget https://download.nextcloud.com/server/releases/nextcloud-10.0.0.zip # unzip nextcloud-10.0.0.zip # cp -r nextcloud /var/www/ # chown www-data:www-data /var/www/nextcloud/ -R Nun für den Webserver apache2 die Konfigurationsdatei anlegen unter **''/etc/apache2/sites-available/nextcloud.conf''**, z.B. mit dem editor "nano": # nano /etc/apache2/sites-available/nextcloud.conf Dateiinhalt: Alias /nextcloud "/var/www/nextcloud" DocumentRoot "/var/www/nextcloud" ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Options +FollowSymlinks AllowOverride All Dav off SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud Satisfy Any Und aktivieren: # a2ensite nextcloud # service apache2 restart ===== 3. Datenbank erstellen ===== MySQL wird als Datenbank empfohlen. Diese muss nun angelegt werden, als root an der Konsole (falls mysql kein Passwort gesetzt hat): # mysql oder mit mysql-Passwort: # mysql -p und dann in der MySQL-Konsole: CREATE USER 'nextadmin'@'localhost' IDENTIFIED BY '12345678'; CREATE DATABASE IF NOT EXISTS nextcloud; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextadmin'@'localhost' IDENTIFIED BY '12345678'; flush privileges; quit Das Passwort "12345678" natürlich ersetzen :-). Die Datenbank heißt hier "nextcloud", der Benutzer "nextadmin" (kann ggf. auch geändert werden). ===== 4. Webkonfiguration durchführen ===== Im Webbrowser dann die Konfiguration starten mit: **''"http://10.16.1.8/nextcloud"''** und einen Admin anlegen z.B. "nextadmin".\\ Nun obige MySQL-Daten eintragen. Die Datenbanktabellen erstellt dann NextCloud automatisch. {{ :anwenderwiki:owncloud:nextcloud-install-1.jpg?250 | }} Standardmäßig wird alles unter **''/var/www/nextcloud/''** abgelegt, die Config-Datei **''/var/www/nextcloud/config/config.php''** und das Datenverzeichnis ist **''/var/www/nextcloud/data''**. Alle Systemeinstellungen landen hingegen in der Datenbank. Aus Sicherheitsgründen ist es sinnvoll das Datenverzeichnis außerhalb von **''/var/www''** anzulegen, hier z.B. unter **''/home/nextcloud''**. Dies dann bei der Webkonfiguration angeben. Das Datenverzeichnis muss für "www-data" schreibbar sein. ===== 5. Cronjob einrichten ===== Als nextadmin an der Weboberfläche anmelden und bei Administration den Cronjob auf "Cron" - Systemdienst setzen: {{ :anwenderwiki:owncloud:owncloud-cron.jpg?400 | }} Dann als root beim "nextserver" an der Konsole den Job einrichten: # crontab -u www-data -e und eine Zeile ergänzen: */15 * * * * php -f /var/www/nextcloud/cron.php ===== 6. Umstellen auf LDAP-Authentifizierung ===== Auf dem linuxmuster.net-Server muss man für die IP des nextservers eine Zeile ergänzen, so dass der "nextserver" Zugriff auf die LDAP-Datenbank erhält: In der Datei **/etc/ldap/slapd.conf** eine Zeile ergänzen (Reihenfolge beachten, direkt nach den vorhandenen "anonymous"-Einträgen): ... #Limits Access: access to .......... by anonymous peername.ip=10.16.1.8 auth ... Dann am linuxmuster.net-Server den ldap-Dienst neu starten: # service slapd restart Als nextadmin auf der Weboberfläche von NextCloud:\\ -> Apps -> nicht aktiviert -> LDAP user and group backend -> aktivieren\\ -> Administration -> LDAP \\ {{ :anwenderwiki:owncloud:nextcloud-ldap.jpg?600 | }} Dabei Benutzer-DN und Passwort leer lassen! Die LDAP-Base-DN der eigenen Konfiguration anpassen. Objektklasse "posixAccount" auswählen und Objektklasse "posixGroup" auswählen: {{ :anwenderwiki:owncloud:nextcloud-ldap-posix.jpg| }} Alle weiteren Einstellungen wurden nach der Vorgabe beibehalten. Die angebotene Gruppenfilterung funktioniert leider nicht (Lösung s.u.). Dann kann man sich sofort über LDAP anmelden.\\ Siehe auch Dokumentation -> [[dokumentation:addons:owncloud:benutzer_aus_ldap]] ===== 7. Weitere Einstellungen ===== ==== PHP Memory Cache einrichten (wegen der Performanz) ==== Am "nextserver" an der Konsole als root: # apt-get install redis-server php-redis # service apache2 restart dann in der Datei **''/var/www/nextcloud/config/config.php''** folgendes ergänzen: ... 'memcache.distributed' => '\\OC\\Memcache\\Redis', 'memcache.local' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => 'localhost', 'port' => 6379, ), 'memcache.locking' => '\\OC\\Memcache\\Redis', ...