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:
nextcloudnextcloud-httpdnextcloud-mysqlvalkeyphp-pecl-redis6php-pecl-apcumariadbmariadb-servermariadb-server-utilsmysql-selinux
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!