178 lines
4.9 KiB
Markdown
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 >}} |