Wissensdatenbank
24 Dezember 2016
4.520

Wissensdatenbank

Nextcloud Installation unter Debian mit externem LDAP und Dateiserver

Vorwort


Ziel ist es Nextcloud auf einem Linux Debian System zu installieren. Die Benutzeranmeldung an Nextcloud soll mittels LDAP an vorhanden Windows Active Directory durchgeführt werden. Zudem sollen die Benutzer Ihr bestehendes Homeverzeichnis verwenden können.

System vorbereiten


apt update && apt -y upgrade
apt install wget nano unzip apache2 mariadb-server


Installation


PHP7


Zuerst auf alte PHP Versionen prüfen und diese deinstallieren:
dpkg --list | grep php | awk '/^ii/{ print $2}'

libapache2-mod-php5
libssh2-php
php-pear
php5
php5-cli
php5-common
php5-curl
php5-gd
php5-imagick
php5-imap
php5-intl
php5-json
php5-mcrypt
php5-memcache
php5-mysqlnd
php5-pspell
php5-readline
php5-recode
php5-snmp
php5-sqlite
php5-ssh2
php5-tidy
php5-xmlrpc
php5-xsl

x="$(dpkg --list | grep php | awk '/^ii/{ print $2}')"
apt --purge remove $x

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
aspell aspell-en aufs-tools cgroupfs-mount dictionaries-common emacsen-common fonts-droid ghostscript gsfonts imagemagick-common libapparmor1 libaspell15
libc-client2007e libcupsfilters1 libcupsimage2 libfftw3-double3 libgs9 libgs9-common libijs-0.35 libjbig2dec0 liblcms2-2 liblqr-1-0 libmagickcore-6.q16-2
libmagickwand-6.q16-2 libmcrypt4 libonig2 libpaper-utils libpaper1 libperl4-corelibs-perl libqdbm14 librecode0 libtidy-0.99-0 lsof mlock poppler-data
ttf-dejavu-core
Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
Die folgenden Pakete werden ENTFERNT:
libapache2-mod-php5* libssh2-php* php-pear* php5* php5-cli* php5-common* php5-curl* php5-gd* php5-imagick* php5-imap* php5-intl* php5-json* php5-mcrypt*
php5-memcache* php5-mysqlnd* php5-pspell* php5-readline* php5-recode* php5-snmp* php5-sqlite* php5-ssh2* php5-tidy* php5-xmlrpc* php5-xsl*
0 aktualisiert, 0 neu installiert, 24 zu entfernen und 58 nicht aktualisiert.
Nach dieser Operation werden 21,5 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]


Nun die Repositories hinzufügen:
echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
cat /etc/apt/sources.list

deb http://http.debian.net/debian jessie main
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all


GnuPG Key für Repositories installieren:
cd /tmp && wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg && rm dotdeb.gpg

--2016-12-23 14:41:21--  https://www.dotdeb.org/dotdeb.gpg
Auflösen des Hostnamen »www.dotdeb.org (www.dotdeb.org)«... 195.154.242.153, 2001:bc8:21eb:100::1
Verbindungsaufbau zu www.dotdeb.org (www.dotdeb.org)|195.154.242.153|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 5299 (5.2K) [application/octet-stream]
In »»dotdeb.gpg«« speichern.

dotdeb.gpg 100%[=======================================================================================>] 5.17K --.-KB/s in 0s

2016-12-23 14:41:21 (91.9 MB/s) - »»dotdeb.gpg«« gespeichert [5299/5299]

OK


Repository aktualisieren und die benötigten Pakete installieren:
apt-get update
apt install libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-xml php7.0-zip php7.0-intl php7.0-mcrypt php7.0-imagick php7.0-ldap php7.0-apcu


Nextcloud


Nextcloud downloaden und extrahieren:
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.zip
unzip nextcloud-11.0.0.zip
cp -r nextcloud /var/www


Virtualhost anlegen:
nano /etc/apache2/sites-available/nextcloud.conf

KonfigurationKonfiguration

Konfiguration

<VirtualHost *:80>
DocumentRoot "/var/www/nextcloud"
ServerName nextcloud.4b42.com

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
</Directory>
</VirtualHost>


Apache Module und Seite aktivieren:
a2enmod rewrite ssl headers env dir mime
a2ensite nextcloud
service apache2 restart
chown -R www-data:www-data /var/www/nextcloud/


Konfiguration


MySQL


mysql -u root -p

Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 49
Server version: 10.0.27-MariaDB-0+deb8u1 (Debian)

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

CREATE DATABASE nextcloud;
CREATE USER 'nextcloud_dat'@'localhost' IDENTIFIED BY '4b42';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_dat'@'localhost';
FLUSH PRIVILEGES;
quit;


SSL


nano /etc/apache2/sites-available/nextcloud.conf

<VirtualHost nextcloud.4b42.com:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<VirtualHost nextcloud.4b42.com:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/nextcloud
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/nextcloud.4b42.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/nextcloud.4b42.com.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
</VirtualHost>


PHP


upload_max_filesize und post_max_size Werte anpassen:
nano /etc/php/7.0/apache2/php.ini

upload_max_filesize = 512M
post_max_size = 512M

service apache2 restart


LDAP


LDAP AppLDAP App

LDAP App

Damit Nextcloud mit Ihre Active Directory Server kommunizieren kann, müssen Sie die App (LDAP user and group backend) installieren.
LDAP ServerLDAP Server

LDAP Server











Geben Sie bei Server die Serverinformationen an. Mit folgendem Befehl können Sie die Serverinformationen ausgeben lassen:
dsquery user -name nextcloud
"CN=nextcloud,OU=Service,OU=Users,OU=4b42,DC=4b42,DC=com"
LDAP BenutzerLDAP Benutzer

LDAP Benutzer


Wählen Sie nun die Benutzer bzw. Gruppe(n) welche Zugriff auf Nextcloud haben sollen.
LDAP ServerLDAP Server

LDAP Server


LDAP ServerLDAP Server

LDAP Server




















Nextcloud


External storage support AppExternal storage support App

External storage support App


Zuerst muss die External storage support App aktiviert werden.
Damit SMB-Freigaben gemountet werden können, müssen der smbclient installiert werden:
apt install smbclient







Windows Home DirectoryWindows Home Directory

Windows Home Directory


Nun kann man unter Administrator > Externer Speicher einen Speicher hinzufügen.
Damit jeder User sein Homeverzeichnis eingebunden bekommt, ohne dass für jeden User ein Eintrag gemacht werden muss, kann man $user nutzen.