Auf meinem Heimserver betreibe ich nun erfolgreich einen Samba und kann damit von all meinen Endgeräten auf meine Daten zugreifen. Das dazugehörige Backup der Daten auf eine extra eingebundene Festplatte findet auch statt und läuft einwandfrei. Nun ist der Wunsch allerdings da, doch eine private Cloud einzurichten, in der ich Daten sharen kann. Für diese Funktion habe ich mich dann für Nextcloud entschieden. Desweiteren fande ich die Kalenderfunktion bei Nextcloud sehr interessant. Einen zentralen Kalender für alle Devices zu führen ist schon sehr attraktiv.

Zusätzlich verfolge ich das Ziel den Samba in Nextcloud einzubinden, damit ich auf meine Daten im Share zugreifen, downloaden, bearbeiten und hochladen kann. Dadurch bin ich flexibler um auf meine Daten zugreifen zu können.

 

Repositories hinzufügen

Als Erstes müssen erstmal die benötigten Repositories installiert um Nextcloud und dazugehörige Services dann betreiben zu können.

Das EPEL Repository wird benötigt um Pakete basierend auf Fedora, RHEL und CentOS zu nutzen.

yum install epel-release

 

Im nächsten Schritt wird noch das Webtatic Repository hinzugefügt, um web-relevante Pakete für CentOS und RHEL zu erhalten.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

 

Diese Repositories werden nur benötigt, wenn es sich um ein RHEL verwandtes OS wie beispielsweise CentOS oder Fedora handelt! Bei anderen OS Varianten, sollte man sich vorher über die Notwendigkeit informieren.


Apache und PHP installieren

Die Nextcloud wird auf einem Apache betrieben und benötigt natürlich immer die aktuellste Version von PHP, in meinem Fall ist die 7.2  die aktuellste Version. Natürlich kann man die Cloud auch mit NGINX  laufen lassen.

yum install httpd php72w php72w-dom php72w-mbstring php72w-gd php72w-pdo php72w-json php72w-xml php72w-zip php72w-curl php72w-pear php72w-intl setroubleshoot-server bzip2

 

MariaDB installieren

Die Datenbank für die Nextcloud wird mit MariaDB realisiert. MariaDB basiert auf MySQL und ist deutlich schneller bei der Replication, um genau zu sein zwei mal so schnell.

yum install mariadb-server php72w-mysql

 

Danach wird der Dienst noch aktiviert und gestartet.

systemctl enable mariadb

systemctl start mariadb

 

Nun kann die Installation von MariaDB ausgeführt werden. Hier kann man auf ein Installations Script zurückgreifen um die Installation leicht zu halten. Keep it as simple.

mysql_secure_installation

 

Datenbank erstellen

Nachdem wir MariaDB installiert haben wird eine neue Datenbank erstellt. Dafür erstellen wir auch einen neuen User welcher den Zugriff von unserer Cloud auf die Datenbank erlaubt.

Eine Empfehlung meinerseits ist hier auf ein kryptisches Passwort zurückzugreifen, beispielweise mit pwgen!

mysql -u USER -p PASS

 

Im Zuge dessen wird dann die neue Datenbank für die Cloud erstellt.

CREATE DATABASE nextcloud;

 

Der User wird bekannt gemacht…

CREATE USER ’nc_user’@’localhost‘ IDENTIFIED BY ‚YOUR_PASSWORD_HERE‘;

 

… und die Berechtigungen vergeben.

GRANT ALL PRIVILEGES ON nextcloud.* TO ’nc_user’@’localhost‘;

FLUSH PRIVILEGES;

 

Nextcloud installieren

Damit man Nextcloud installieren kann wechseln man zuerst in das vorgesehene root Verzeichnis für den Webserver.

cd /var/www/html/

 

Danach kann man sich die neueste Version von Nextcloud raussuchen und das Paket mit curl downloaden. In meinem Fall ist die 15 die aktuellste Version.

curl -o nextcloud-15-latest.tar.bz2 https://download.nextcloud.com/server/releases/latest-15.tar.bz2

 

Das Paket kann nun entpackt werden und bleibt weiterhin in dem root Vezeichnis liegen.

tar -xvjf nextcloud-15-latest.tar.bz2

 

Als Nächstes wird ein neues Verzeichnis mit Unterverzeichnis für die Nextcloud erstellt. Dort landen am Ende die hochgeladenen Daten auf der Cloud.

mkdir nextcloud/data

 

Damit der Webserver Apache auch auf die Files der Cloud zugreifen kann, muss die Berechtigung noch auf den User Apache angepasst werden.

chown -R apache:apache nextcloud

 

Als Letztes muss noch die nextcloud.conf für den Apache um folgende Konfiguration erweitert werden.

Alias /nextcloud „/var/www/html/nextcloud/“

<Directory /var/www/html/nextcloud/>
 Options +FollowSymlinks
 AllowOverride Al

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

SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud

</Directory>

 

SElinux konfigurieren

Dank CentOS gnießen wir die SElinux Funktion und daher muss auch diese angepasst werden.

Größtenteils handelt es sich hier um Policy-Freigaben seitens Apache um auf die Nextcloud Verzeichnisse und deren Inhalte zugreifen zu dürfen.

semanage fcontext -a -t httpd_sys_rw_content_t ‚/var/www/html/nextcloud/data(/.*)?‘

semanage fcontext -a -t httpd_sys_rw_content_t ‚/var/www/html/nextcloud/config(/.*)?‘

semanage fcontext -a -t httpd_sys_rw_content_t ‚/var/www/html/nextcloud/apps(/.*)?‘

semanage fcontext -a -t httpd_sys_rw_content_t ‚/var/www/html/nextcloud/.htaccess‘

semanage fcontext -a -t httpd_sys_rw_content_t ‚/var/www/html/nextcloud/.user.ini‘

semanage fcontext -a -t httpd_sys_rw_content_t ‚/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?‘

restorecon -Rv ‚/var/www/html/nextcloud/‘

 

Danach müssen noch die SElinux Boolean Werte für folgende Einträge angepasst werden. Eine ausführliche Erklärung wird hier nicht notwendig sein, da es selbsterklärend ist.

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db 1

 

Mit folgendem Command erlauben wir ein Update der Nextcloud Software über die WebGUI. Falls man beim Updateprozess dauerhaft in Fehlermeldungen rennt, sollte man den diesen benutzen um die benötigten Schreibrechte zu setzen.

setsebool httpd_unified on

 

Firewall anpassen

Firewallseitig müssen noch Zugriffe über http (80) und https (443) zugelassen werden. Dafür benutzt man am besten firewall-cmd.

firewall-cmd –add-service http –permanent

firewall-cmd –add-service https –permanent

firewall-cmd –reload

 

Done!

Als Letztes wird der Apache Dienst noch aktiviert und neugestartet.

systemctl start httpd

systemctl enable httpd

 

Danach kann es auch schon losgehen. Die Nextcloud ruft man dann über die „ServerIP/nextcloud“ auf.

 

over & out,

jonsch