Files
mantelzorgwoning.info/content/bewoners/algemeen/nextcloud/_index.nl.md
2025-12-05 09:15:15 +01:00

178 lines
4.9 KiB
Markdown

---
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
<VirtualHost *:80>
ServerName cloud.voorbeeld.nl
ServerAlias www.cloud.voorbeeld.nl
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
# 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
</VirtualHost>
```
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 >}}