# Slik installerer og konfigurerer du Nextcloud med NGINX

Å kjøre Nextcloud med NGINX gir mulighet for effektiv utnyttelse av systemressursene samt fleksible distribusjonsalternativer. For å konfigurere det riktig trenger du et kompatibelt systemmiljø og riktig konfigurasjon. Det kreves også noen spesifikke justeringer for å sikre en problemfri integrasjon med NGINX.

## Hva er NGINX, og hvorfor bør man bruke det sammen med Nextcloud?

NGINX er en åpen kildekode-basert webserverprogramvare som også kan fungere som en [omvendt proxy-server](https://www.ionos.com/nb-no/digitalguide/server/konfigurasjon/nginx-omvendt-proxy/), lastfordeler og HTTP-cache. NGINX ble opprinnelig utviklet av den russiske programvareingeniøren Igor Sysoev og distribueres under BSD-lisensen (BSD er en Unix-variant).

NGINX er utviklet for å håndtere et **stort antall tilkoblinger samtidig**. For å oppnå dette benytter programvaren en hendelsesdrevet, ikke-blokkerende arkitektur. I motsetning til tradisjonelle webservere som oppretter en ny prosess eller tråd for hver tilkobling, kjører NGINX en **hovedprosess** sammen med flere arbeidsprosesser. Hovedprosessen håndterer konfigurasjonen, mens arbeidsprosessene behandler innkommende klientforespørsler.

Å kombinere Nextcloud med NGINX gir flere viktige fordeler for miljøer som krever høy ytelse, blant annet:

- **Effektiv ressursbruk**: NGINX kan håndtere flere tilkoblinger samtidig, med minimalt ressursforbruk.
- **Utmerket skalerbarhet**: NGINX støtter fleksibel lastfordeling og kan enkelt skaleres ved å legge til flere servere.
- **Svært tilpassbar arkitektur**: Takket være den modulære strukturen kan NGINX tilpasses et bredt spekter av scenarier.
- **Pålitelig ytelse under tung serverbelastning**: Selv når serveren er under tung belastning, er NGINX pålitelig og holder tjenestene dine kontinuerlig tilgjengelige.

Note Siden [Nextcloud](https://www.ionos.com/nb-no/digitalguide/server/verktoey/hva-er-nextcloud/) offisielt kun støtter Apache 2.x som webserver, finnes det ingen offisiell støtte for NGINX. Å kjøre Nextcloud med NGINX er derfor best egnet for brukere med erfaring i konfigurering av webservere.

## Hva er kravene for å kjøre Nextcloud med NGINX?

For å kjøre Nextcloud på NGINX trenger du en server som kjører Ubuntu, Debian eller et annet kompatibelt operativsystem. Serveren bør ha minst **4 GB RAM** og to CPU-kjerner. For større oppsett med flere Nextcloud-instanser anbefales det på det sterkeste å bruke mer minne og flere CPU-kjerner. Du trenger også tilstrekkelig lagringsplass til data og sikkerhetskopier.

For å installere programvaren trenger du også en **kompatibel database som MySQL eller MariaDB**, samt skriptspråket PHP (minst versjon 8.1, versjon 8.3 anbefales). Databasen brukes til å lagre brukerdata og plugin-data, samt filmetadata. PHP er nødvendig for å kjøre Nextclouds kjernefunksjoner. Du trenger også en konto med administratorrettigheter for å installere programvaren.

## Slik installerer du Nextcloud med NGINX

Det er noen viktige forberedelser som bør gjøres før du installerer Nextcloud. Denne veiledningen forutsetter at du bruker en Ubuntu-server der operativsystemet og alle nødvendige avhengigheter allerede er på plass. Dette inkluderer NGINX som webserver, MySQL som database og PHP 8.3 med alle nødvendige utvidelser.

Vi har også installert Certbot for enkel konfigurering av SSL-sertifikater med Let’s Encrypt. Vi legger også til grunn at du har konfigurert et domene, slik at du kan få tilgang til Nextcloud via en URL i stedet for en IP-adresse.

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

### Slik laster du ned og pakker ut Nextcloud

Begynn med å opprette en mappe med navnet «nextcloud» i hjemmekatalogen din for å lagre installasjonsfilene. Selv om dette kan gjøres manuelt ved hjelp av [Nextclouds endringslogg](https://nextcloud.com/changelog/ "Nextcloud Changelog"), går det raskere å bruke 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 annen versjon av Nextcloud, må du huske å oppdatere URL-adressen tilsvarende.

Pakk deretter ut filen, flytt den til webrotkatalogen `./var/www` og angi filrettighetene:

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

### Slik konfigurerer du databasen

For å konfigurere MySQL-databasen, kjør sudo-kommandoen ( `sudo mysql_secure_installation`. Skriv inn «y» for å angi root-passordet ditt (`VALIDATE PASSWORD`) og velg «2» for et sterkt passord (`STRONG`), som du deretter kan angi. Trykk «y» for å bekrefte passordet, og trykk deretter «y» igjen for å fjerne anonyme brukere, deaktivere ekstern pålogging, fjerne testdatabasen og laste inn rettighetstabellene på nytt.

Følg deretter disse trinnene:

1. Logg inn som root-bruker ved å bruke `sudo mysql -u root -p`.
2. Opprett databasen ved å bruke: `create database nextcloud;`.
3. Opprett brukeren ved hjelp av: `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Gi tillatelser ved å bruke: `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Til slutt oppdaterer du rettighetene ved hjelp av `flush privileges;` og avslutter databasekonsollen ved hjelp av `exit`.

Når databasen er konfigurert, må du legge til påloggingsopplysningene (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) i Nextcloud-konfigurasjonsfilen. Åpne filen `./var/www/nextcloud/config/config.php` og legg til de relevante oppføringene:

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

### Slik deaktiverer du NGINX’ standardkonfigurasjon

Før du integrerer Nextcloud i NGINX, må du forsikre deg om at ingen andre konfigurasjonsfiler overstyrer Nextcloud-installasjonen. Som standard kan det fortsatt finnes en `default` figurasjonsfil i `./etc/nginx/sites-enabled/` som kan forstyrre oppsettet ditt. Fjern den ved å bruke:

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

Aktiver deretter den tilpassede konfigurasjonen din med denne kommandoen:

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

### Slik konfigurerer du NGINX-serveren

For å konfigurere NGINX som webserver må et domene allerede være opprettet og koblet til serverens IP-adresse. Sørg for at DNS også er riktig konfigurert. Opprett en ny NGINX-konfigurasjonsfil i katalogen `sites-available` ved å bruke:

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

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

Åpne konfigurasjonsfilen i en tekstredigerer (for eksempel Vim) ved å bruke:

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

Sett inn kodeblokken fra avsnittet «Nextcloud i en underkatalog til NGINX-webrootene» i dokumentasjonen for Nextcloud NGINX-konfigurasjon.

Siden HTTPS-sertifikatet vil bli lagt til med Certbot, må du fjerne alle SSL-relaterte linjer fra NGINX-konfigurasjonsfilen. Certbot vil håndtere dette automatisk.

### Slik konfigurerer du et SSL-sertifikat med Certbot

For å kjøre Nextcloud over en sikker HTTPS-tilkobling må du konfigurere et SSL-sertifikat, i dette tilfellet fra Let’s Encrypt. Først må du konfigurere brannmuren slik at den tillater HTTPS- og SSH-tilkoblinger ved hjelp av følgende sudo-kommandoer:

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

Deretter aktiverer du brannmuren med `sudo ufw enable` og kontrollerer med `sudo ufw status` at tilkoblingene er tillatt. Deretter kan du opprette SSL-sertifikatet ved hjelp av Certbot:

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

Følg instruksjonene for å oppgi e-postadressen din for sertifikatfornyelser og for å godta vilkårene for bruk. Velg alternativ 2 for automatisk å omdirigere alle HTTP-forespørsler til HTTPS. Certbot lagrer sertifikatfilene i katalogen `.etc/letsencrypt/live/exampledomain.co.uk/`. Filen `fullchain.pem` inneholder SSL-sertifikatet, og `privkey.pem` inneholder den private nøkkelen. Du må legge dem til i NGINX-konfigurasjonsfilen din:

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

Siden Certbot har endret konfigurasjonsfilen, må du legge til attributtet `ssl` mellom `443` og `http2` igjen. Blokken skal se slik ut:

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

### Slik starter du tjenester på nytt og får tilgang til Nextcloud

For at endringene skal tre i kraft, må du starte PHP-FPM- og NGINX-tjenestene på nytt:

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

Åpne nå domenet ditt i nettleseren – i vårt tilfelle exampledomain.co.uk. Hvis alt er konfigurert riktig, bør velkomstsiden til Nextcloud vises.

Note Hvis Nextcloud ikke lastes inn, kan det skyldes at domenet ditt ikke er oppført som et pålitelig domene i `config.php`. Legg det til der for å løse problemet.


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