Installatie en configuratie nextcloud server

Geschreven op en voor het laatst bijgewerkt op

Inhoudsopgave

Inleiding

Deze handleiding gaat over het installeren van Nextcloud op Fedora Server.

Benodigde software

Sinds een tijd heeft Fedora nextcloud als pakket beschikbaar in de repositories. Je kunt meerdere variaties van Nextcloud installeren voor meerdere niveau’s. De software die nodig is is:

Configuratie valkey

Het configureren van valkey is in dit geval niet complex. Het enige wat moet gebeuren is het automatisch laten starten. Dat doe je met

sudo systemctl enable --now valkey

Configuratie mariadb / mysql

Het configureren van mariadb gaat als volgt.

MariaDB automatisch starten

Doe dat met

sudo systemctl enable --now mariadb.service

MariaDB eerste configuratie

Na het installeren en activeren van MariaDB configureer je MariaDB met mysql_secure_installation:

sudo mysql_secure_installation

MariaDB configureren voor Nextcloud

Vanuit een veiligheidsoogpunt is het sterk aangeraden om voor Nextcloud een eigen databasegebruiker aan te maken en een eigen database. Doe dat als volgt:

sudo mysql -u root -p

En maak dan de gebruiker en de database aan met

CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY 'voerhiereensterkwachtwoordin';
FLUSH PRIVILEGES;

Een sterk wachtwoord aanmaken kun je doen met de tool pwgen als volgt:

pwgen 32 1

Configuratie httpd / apache

Het configurern van apache gebeurt in dit geval in /etc/httpd/conf.d/vhosts.conf, wat niet bestaat standaard. Maak het bestand aan met

sudo touch /etc/httpd/conf.d/vhosts.conf

En plaats er het volgende in

<VirtualHost *:80>
	ServerName nextcloud.home.lab
	ServerAdmin sebastiaan
	DocumentRoot "/usr/share/nextcloud"
	
	Alias /app-appstore /var/lib/nextcloud/apps
	Alias /assets /var/lib/nextcloud/assets
	
	Redirect 301 /.well-known/carddav /remote.php/dav/
	Redirect 301 /.well-known/caldav /remote.php/dav/
	Redirect 301 /.well-known/webdav /remote.php/dav/
	Redirect 301 /.well-known/webfinger /index.php/.well-known/webfinger
	Redirect 301 /.well-known/nodeinfo /index.php/.well-known/nodeinfo
	
	<Directory "/usr/share/nextcloud/">
		Include conf.d/nextcloud-auth-any.inc
		Include conf.d/nextcloud-defaults.inc
	</Directory>
	
	<Directory "/var/lib/nextcloud/assets/">
		Include conf.d/nextcloud-auth-any.inc
		Include conf.d/nextcloud-defaults.inc
	</Directory>
	
	<Directory "/var/lib/nextcloud/data/">
		Include conf.d/nextcloud-auth-none.inc
	</Directory>
	
	<DirectoryMatch "/usr/share/nextcloud/(3rdparty|lib|config|templates)/">
		Include conf.d/nextcloud-auth-none.inc
	</DirectoryMatch>
</VirtualHost>

Configuratiebestand SELinux label configureren

Configureer het SELinux (bestands)label voor het nieuwe bestand (/etc/httpd/conf.d/vhosts.conf) met het volgende commando

sudo restorecon -RvF /etc/httpd/conf.d/vhosts.conf

Configuratie SELinux voor Apache / httpd

Nu het (nieuwe) configuratiebestand het correcte SELinux label heeft is de volgende stap het configureren van SELinux in het algemeen. Doe dat met

sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_unified 1

Apache / httpd automatisch starten

Doe dat met

sudo systemctl enable --now httpd

Apache / httpd toelaten in de firewall

Open de http en https poorten in de firewall met

sudo firewall-cmd --add-service=http --add-service=https
sudo firewall-cmd --runtime-to-permanent

Configuratie php

Standaard komt Nextcloud met een configuratiebestand voor PHP in /etc/php-fpm.d/nextcloud.conf. Dat heeft wat aanpassingen nodig, en het is verstandig om dat in een apart (nieuwe) configuratiebestand te doen. Maak dat aan met het volgende commando

sudo touch /etc/php-fpm.d/z-nextcloud.conf

En plaats er het volgende in

[www]
php_value[memory_limit] = 1024M
php_flag[output_buffering] = off
php_value[opcache.interned_strings_buffer] = 128

Configuratiebestand SELinux label configureren

Configureer het SELinux (bestands)label voor het nieuwe bestand (/etc/php-fpm.d/z-nextcloud.conf) met het volgende commando:

sudo restorecon -RvF /etc/php-fpm.d/z-nextcloud.conf

Installatie Nextcloud

Nu alle benodigdheden voor Nextcloud geïnstalleerd en geconfigureerd zijn kun je de setup van Nextcloud doen. Dit kun je via een browser doen, of via de commandline. Ik heb ervoor gekozen om het via de commandlne te doen omdat dit een snellere manier is.

sudo -u apache /usr/share/nextcloud/occ maintenance:install --database=mysql --database-name=nextcloud --database-user=nextcloud --database-pass=<wachtwoord van mysql gebruiker van hierboven> --admin-user=beheerder --admin-pass=<nieuw wachtwoord voor beheerder> --data-dir=/var/lib/nextcloud/data

Post installatie configuratiestappen

Voer het volgende uit om de database te optimaliseren. Standaard gebeurt dit niet, want dit kan een vrij lange tijd duren.

sudo -u apache /usr/share/nextcloud/occ maintenance:repair  --include-expensive

En voeg daarna het volgende toe aan /etc/nextcloud/config.php met sudo -u apache vim /etc/nextcloud/config.php:

'maintenance_window_start' => 1,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
	'host' => 'localhost',
	'port' => 6379
]

Klaar

Als je alle stappen hierboven gedaan hebt is Nextcloud nu geïnstalleerd en klaar voor gebruik!