# Sådan installeres og konfigureres Nextcloud med NGINX

Når man kører Nextcloud med NGINX, får man både en effektiv udnyttelse af systemressourcerne og fleksible installationsmuligheder. For at få det sat korrekt op skal man have et kompatibelt systemmiljø og den rette konfiguration. Der kræves også et par specifikke justeringer for at sikre en problemfri integration med NGINX.

## Hvad er NGINX, og hvorfor bør man kombinere det med Nextcloud?

NGINX er en open source-baseret webserver, der også kan fungere som [reverse proxy-server](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nginx-reverse-proxy/), load balancer og HTTP-cache. NGINX er oprindeligt udviklet af den russiske softwareingeniør Igor Sysoev og distribueres under BSD-licensen (BSD er en Unix-variant).

NGINX er udviklet til at håndtere et **stort antal forbindelser samtidigt**. Til dette formål anvender softwaren en begivenhedsstyret, ikke-blokerende arkitektur. I modsætning til traditionelle webservere, der opretter en ny proces eller tråd for hver forbindelse, kører NGINX en **hovedproces** sideløbende med flere arbejdsprocesser. Hovedprocessen varetager konfigurationen, mens arbejdsprocesserne behandler indgående klientanmodninger.

At kombinere Nextcloud med NGINX giver en række vigtige fordele i højtydende miljøer, herunder:

- **Effektiv ressourceudnyttelse**: NGINX kan håndtere flere forbindelser på én gang med et minimalt ressourceforbrug.
- **Fremragende skalerbarhed**: NGINX understøtter fleksibel belastningsfordeling og kan nemt skaleres ved at tilføje yderligere servere.
- **Meget tilpasselig arkitektur**: Takket være sin modulære struktur kan NGINX tilpasses til en lang række scenarier.
- **Pålidelig ydeevne under stor serverbelastning**: Selv når serveren er under stor belastning, er NGINX pålidelig og sikrer, at dine tjenester altid er tilgængelige.

Note Da [Nextcloud](https://www.ionos.com/da-dk/digitalguide/server/vaerktoejer/hvad-er-nextcloud/) officielt kun understøtter Apache 2.x som webserver, er der ingen officiel support til NGINX. Det er derfor bedst egnet til brugere med erfaring i konfiguration af webservere at køre Nextcloud med NGINX.

## Hvad er kravene til at køre Nextcloud med NGINX?

For at køre Nextcloud på NGINX skal du have en server, der kører Ubuntu, Debian eller et andet kompatibelt system. Serveren skal have mindst **4 GB RAM** og to CPU’er. Til større installationer med flere Nextcloud-instanser anbefales det på det kraftigste at bruge mere hukommelse og flere CPU-kerner. Du skal desuden have tilstrækkelig lagerplads til data og sikkerhedskopier.

Til installationen skal du desuden have en **kompatibel database som f.eks. MySQL eller MariaDB** samt script-sproget PHP (minimum version 8.1, version 8.3 anbefales). Databasen bruges til at gemme bruger- og plugin-data samt filmetadata. PHP er nødvendigt for at køre Nextclouds kernefunktioner. Du skal også have en konto med administratorrettigheder for at kunne installere softwaren.

## Sådan installeres Nextcloud med NGINX

Der er nogle vigtige forberedelser, der skal udføres, inden Nextcloud installeres. Denne vejledning forudsætter, at der er en Ubuntu-server, hvor systemet og alle nødvendige afhængigheder allerede er installeret. Dette omfatter NGINX som webserver, MySQL som database og PHP 8.3 med alle nødvendige udvidelser.

Vi har desuden installeret Certbot, så du nemt kan konfigurere SSL-certifikater med Let’s Encrypt. Vi går også ud fra, at du har oprettet et domæne, så du kan få adgang til Nextcloud via en URL i stedet for en IP-adresse.

Tip Du kan også følge vores vejledninger for at lære, hvordan du [installerer Nextcloud på Ubuntu 22.04](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nextcloud-ubuntu-2204/), [konfigurerer Nextcloud på Kubernetes](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nextcloud-kubernetes/) eller [installerer Nextcloud på Debian 12](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nextcloud-debian-12/).

### Sådan downloades og udpakkes Nextcloud

Start med at oprette en mappe ved navn »nextcloud« i din hjemmemappe til at gemme installationsfilerne i. Selvom dette kan gøres manuelt ved hjælp af [Nextclouds changelog](https://nextcloud.com/changelog/ "Nextcloud Changelog"), går det hurtigere at bruge følgende Curl-kommando:

```bash
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
```

Note Hvis du installerer en anden version af Nextcloud, skal du huske at opdatere URL-adressen i overensstemmelse hermed.

Pak derefter filen ud, flyt den til webroden `./var/www`, og angiv filrettighederne:

```bash
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloud
```

### Sådan opsættes databasen

For at konfigurere MySQL-databasen skal du køre sudo-kommandoen `sudo mysql_secure_installation`. Indtast »y« for at angive din root-adgangskode (`VALIDATE PASSWORD`), og vælg »2« for at få en stærk adgangskode (`STRONG`), som du derefter kan indstille. Tryk på »y« for at bekræfte adgangskoden, og tryk derefter på »y« igen for at fjerne anonyme brugere, deaktivere fjernlogin, slette testdatabasen og genindlæse rettighedstabellerne.

Følg derefter disse trin:

1. Log ind som root-bruger ved hjælp af `sudo mysql -u root -p`.
2. Opret databasen ved hjælp af: `create database nextcloud;`.
3. Opret brugeren ved hjælp af: `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Tildel tilladelser ved hjælp af: `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Til sidst skal du opdatere rettighederne ved hjælp af `flush privileges;` og afslutte databasekonsollen ved hjælp af `exit`.

Når databasen er oprettet, skal du tilføje loginoplysningerne (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) til Nextcloud-konfigurationsfilen. Åbn filen `./var/www/nextcloud/config/config.php`, og tilføj de relevante oplysninger:

```txt
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
```

### Sådan deaktiveres NGINX’s standardkonfiguration

Inden du integrerer Nextcloud i NGINX, skal du sikre dig, at ingen andre konfigurationsfiler overskriver Nextcloud-installationen. Som standard kan der stadig være en `default` ationsfil i `./etc/nginx/sites-enabled/`, der kan forstyrre din opsætning. Fjern den ved hjælp af:

```bash
sudo rm /etc/nginx/sites-enabled/default
```

Aktivér derefter din brugerdefinerede konfiguration med denne kommando:

```bash
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/
```

### Sådan konfigureres NGINX-serveren

For at konfigurere NGINX som webserver skal der allerede være oprettet et domæne, som er knyttet til serverens IP-adresse. Sørg for, at DNS også er konfigureret korrekt. Opret en ny NGINX-konfigurationsfil i mappen `sites-available` ved hjælp af:

```bash
sudo touch /etc/nginx/sites-available/exampledomain.co.uk
```

(Vi brugte `exampledomain.co.uk` som URL.)

Åbn konfigurationsfilen i et tekstredigeringsprogram (f.eks. Vim) ved at skrive:

```bash
sudo vim /etc/nginx/sites-available/exampledomain.co.uk
```

Indsæt kodeblokken fra afsnittet »Nextcloud i en undermappe til NGINX-webrødderne« i dokumentationen til Nextcloud NGINX-konfigurationen.

Da HTTPS-certifikatet vil blive tilføjet med Certbot, skal du fjerne alle SSL-relaterede linjer fra NGINX-konfigurationsfilen. Certbot tager sig automatisk af dette.

### Sådan konfigureres et SSL-certifikat med Certbot

For at køre Nextcloud via en sikker HTTPS-forbindelse skal du konfigurere et SSL-certifikat, i dette tilfælde fra Let’s Encrypt. Start med at konfigurere firewallen, så den tillader HTTPS- og SSH-forbindelser, ved hjælp af følgende sudo-kommandoer:

```bash
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
```

Aktivér derefter firewallen ved at indstille `sudo ufw enable`, og kontroller ved hjælp af `sudo ufw status`, at forbindelserne er tilladt. Derefter kan du oprette SSL-certifikatet ved hjælp af Certbot:

```bash
sudo certbot --nginx -d exampledomain.co.uk
```

Følg vejledningen for at angive din e-mailadresse til certifikatfornyelser og for at acceptere servicevilkårene. Vælg mulighed 2 for automatisk at omdirigere alle HTTP-anmodninger til HTTPS. Certbot gemmer certifikatfilerne i mappen `.etc/letsencrypt/live/exampledomain.co.uk/`. Filen `fullchain.pem` indeholder SSL-certifikatet, og `privkey.pem` indeholder den private nøgle. Du skal tilføje dem til din NGINX-konfigurationsfil:

```txt
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;
```

Da Certbot har ændret konfigurationsfilen, skal du igen indsætte attributten `ssl` mellem `443` og `http2`. Blokken skal se således ud:

```txt
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name exampledomain.co.uk;
}
```

### Sådan genstarter du tjenester og får adgang til Nextcloud

For at ændringerne skal træde i kraft, skal du genstarte PHP-FPM- og NGINX-tjenesterne:

```bash
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.service
```

Åbn nu dit domæne i browseren – i vores tilfælde exampledomain.co.uk. Hvis alt er konfigureret korrekt, bør Nextclouds velkomstside nu vises.

Note Hvis Nextcloud ikke indlæses, kan det skyldes, at dit domæne ikke er angivet som et betroet domæne i `config.php`. Tilføj det der for at løse problemet.


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nextcloud-nginx/](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/nextcloud-nginx/) for AI/LLM consumption.