--- title: "NextCloud (Apache)" date: 2025-11-10 weight: 3 feedback: true draft: false --- NextCloud is een open source platform voor bestandssynchronisatie en samenwerking, vergelijkbaar met diensten als Dropbox of OneDrive. In deze handleiding installeren we NextCloud _zonder_ Docker, rechtstreeks op een Debian server met Apache als webserver. {{< notice "info" "Informatie" >}} Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**. {{< /notice >}} ## Benodigdheden - Een server met een Debian Linux installatie - Een domeinnaam - DNS ingesteld naar het IP-adres van de server - Een werkende webserver (Apache) die verzoeken voor jouw domein kan verwerken - Rechten als `su` of `sudo` om opdrachten als root uit te voeren ## Voorbereiding Zorg dat het systeem up-to-date is voordat je NextCloud installeert. 1. Log in met SSH. ```bash ssh gebruiker@server ``` 2. Werk de pakketbron en geïnstalleerde pakketten bij. ```bash sudo apt update && sudo apt upgrade ``` ## PHP en database installeren NextCloud heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database. 1. Installeer Apache, PHP, de benodigde modules en MariaDB. ```bash sudo apt install apache2 php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip php-intl php-bcmath php-gmp mariadb-server unzip ``` 2. Beveilig de MariaDB installatie ```bash sudo mysql_secure_installation ``` 3. Maak een database en gebruiker voor NextCloud. ```bash sudo mysql ``` Voer daarna in de MariaDB prompt de volgende opdrachten uit, pas wachtwoord en namen aan: ```sql CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'sterk-db-wachtwoord'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost'; FLUSH PRIVILEGES; EXIT; ``` ## NextCloud bestanden downloaden We plaatsen NextCloud in `/var/www/nextcloud`. 1. Download en pak NextCloud uit. ```bash cd /tmp curl -LO https://download.nextcloud.com/server/releases/latest.zip unzip latest.zip ``` 2. Maak de doelmap aan en kopieer de bestanden. ```bash sudo mkdir -p /var/www/nextcloud sudo rsync -av nextcloud/ /var/www/nextcloud/ ``` 3. Stel de juiste eigenaar en rechten in. ```bash sudo chown -R www-data:www-data /var/www/nextcloud sudo find /var/www/nextcloud -type d -exec chmod 750 {} \; sudo find /var/www/nextcloud -type f -exec chmod 640 {} \; ``` ## Apache configureren voor NextCloud We maken een aparte site-configuratie aan voor `cloud.voorbeeld.nl`. 1. Maak een nieuw configuratiebestand. ```bash sudo nano /etc/apache2/sites-available/cloud.voorbeeld.nl.conf ``` 2. Plaats de volgende configuratie in het bestand: ```apache ServerName cloud.voorbeeld.nl ServerAlias www.cloud.voorbeeld.nl DocumentRoot /var/www/nextcloud Require all granted AllowOverride All Options FollowSymLinks MultiViews # Verhoog maximale uploadgrootte LimitRequestBody 536870912 # Aanbevolen security headers Header always set Referrer-Policy "no-referrer" Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-XSS-Protection "1; mode=block" ErrorLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-error.log CustomLog ${APACHE_LOG_DIR}/cloud.voorbeeld.nl-access.log combined ``` 3. Zorg dat de benodigde modules voor NextCloud actief zijn. ```bash sudo a2enmod rewrite headers env dir mime sudo systemctl reload apache2 ``` 4. Activeer de site en controleer Apache. ```bash sudo a2ensite cloud.voorbeeld.nl.conf sudo apache2ctl configtest sudo systemctl reload apache2 ``` ## CertBot voor HTTPS Zorg voor een geldig TLS-certificaat met CertBot. 1. Installeer CertBot met de Apache plugin. ```bash sudo apt install certbot python3-certbot-apache ``` 2. Vraag een certificaat aan voor jouw domein. ```bash sudo certbot --apache ``` Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres en de keuze om HTTP automatisch naar HTTPS om te leiden. {{< notice "info" "Informatie" >}} Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`. ```bash sudo certbot --apache --dry-run ``` {{< /notice >}} ## NextCloud installatie afronden 1. Open een browser en ga naar: ```text http://cloud.voorbeeld.nl ``` of, na het instellen van HTTPS: ```text https://cloud.voorbeeld.nl ``` 2. Volg de stappen van de NextCloud installatie: - Stel een beheerdersgebruikersnaam en wachtwoord in - Vul de databasegegevens in: - Databasegebruiker: `nc_user` - Databasewachtwoord: `sterk-db-wachtwoord` - Database: `nextcloud` - Host: `localhost` {{< notice "info" "Informatie" >}} Na afronden keert NextCloud terug naar de login-pagina en kun je inloggen met het beheerdersaccount. {{< /notice >}}