# Nextcloudin asentaminen ja määrittäminen NGINX:n avulla

Nextcloudin käyttö NGINX:n kanssa mahdollistaa järjestelmäresurssien tehokkaan hyödyntämisen sekä joustavat käyttöönottovaihtoehdot. Järjestelmän asianmukainen asennus edellyttää yhteensopivaa järjestelmäympäristöä ja oikeita asetuksia. NGINX:n kanssa sujuvaan integrointiin tarvitaan myös muutamia erityisiä säätöjä.

## Mikä on NGINX ja miksi sitä kannattaa käyttää yhdessä Nextcloudin kanssa?

NGINX on avoimen lähdekoodin verkkopalvelinohjelmisto, jota voidaan käyttää myös [käänteisvälityspalvelimena](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/nginx-kaeaenteisvaelityspalvelin/), kuormituksen tasapainottajana ja HTTP-välimuistina. Alun perin venäläisen ohjelmistosuunnittelijan Igor Sysoevin kehittämä NGINX jaetaan BSD-lisenssillä (BSD on Unix-variantti).

NGINX on suunniteltu käsittelemään **suurta määrää yhteyksiä samanaikaisesti**. Tätä varten ohjelmisto käyttää tapahtumapohjaista, ei-estävää arkkitehtuuria. Toisin kuin perinteiset verkkopalvelimet, jotka luovat uuden prosessin tai säikeen jokaiselle yhteydelle, NGINX käyttää **pääprosessia** sekä useita työprosesseja. Pääprosessi huolehtii asetuksista, kun taas työprosessit käsittelevät saapuvia asiakaspyyntöjä.

Nextcloudin ja NGINX:n yhdistämisellä on useita merkittäviä etuja suorituskykyä vaativissa ympäristöissä, kuten:

- **Tehokas resurssien käyttö**: NGINX pystyy käsittelemään useita yhteyksiä samanaikaisesti kuluttamalla resursseja mahdollisimman vähän.
- **Erinomainen skaalautuvuus**: NGINX tukee joustavaa kuormituksen tasapainottamista ja on helposti skaalautuva lisäämällä uusia palvelimia.
- **Erittäin muokattava arkkitehtuuri**: Modulaarisen rakenteensa ansiosta NGINX voidaan mukauttaa monenlaisiin tilanteisiin.
- **Luotettava suorituskyky raskaassa palvelinkuormituksessa**: NGINX on luotettava myös palvelimen ollessa kovassa käytössä ja pitää palvelusi jatkuvasti käytettävissä.

Huomio Koska [Nextcloud](https://www.ionos.com/fi-fi/digitalguide/palvelin/tyoekalut/was-ist-nextcloud/) tukee virallisesti vain Apache 2.x:ää verkkopalvelimenaan, NGINX:lle ei ole virallista tukea. Nextcloudin käyttö NGINX:n kanssa sopii siksi parhaiten käyttäjille, joilla on kokemusta verkkopalvelimien konfiguroinnista.

## Mitkä ovat Nextcloudin käyttämisen vaatimukset NGINX:n kanssa?

Nextcloudin käyttämiseksi NGINX-palvelimella tarvitset palvelimen, jossa on Ubuntu, Debian tai jokin muu yhteensopiva käyttöjärjestelmä. Palvelimessa tulisi olla vähintään **4 Gt RAM-muistia** ja kaksi prosessoria. Suuremmissa kokoonpanoissa, joissa on useita Nextcloud-sovelluksia, suositellaan ehdottomasti enemmän muistia ja prosessoriytimiä. Tarvitset myös riittävästi tallennustilaa tiedoille ja varmuuskopioille.

Asennusta varten tarvitset myös **yhteensopivan tietokannan, kuten MySQL:n tai MariaDB:n**, sekä PHP-skriptikielen (vähimmäisversio 8.1, suositellaan versiota 8.3). Tietokantaa käytetään käyttäjä- ja laajennustietojen sekä tiedostojen metatietojen tallentamiseen. PHP:tä tarvitaan Nextcloudin ydintoimintojen suorittamiseen. Ohjelmiston asentamiseen tarvitset myös tilin, jolla on järjestelmänvalvojan oikeudet.

## Nextcloudin asentaminen NGINX:n avulla

Ennen Nextcloudin asentamista on suoritettava joitakin välttämättömiä valmistelutoimia. Tässä oppaassa oletetaan, että käytössä on Ubuntu-palvelin, jossa järjestelmä ja kaikki tarvittavat riippuvuudet ovat jo asennettuina. Näitä ovat NGINX-verkkopalvelin, MySQL-tietokanta sekä PHP 8.3 kaikkine tarvittavine laajennuksineen.

Olemme asentaneet myös Certbotin, jotta SSL-varmenteen asennus Let’s Encryptin avulla sujuu helposti. Oletamme myös, että sinulla on verkkotunnus määritettynä, jotta voit käyttää Nextcloudia URL-osoitteen kautta IP-osoitteen sijaan.

Vinkki Voit myös seurata oppaita, joissa kerrotaan, miten [Nextcloud asennetaan Ubuntu 22.04:ään](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/nextcloud-ubuntu-2204/), miten [Nextcloud otetaan käyttöön Kubernetesissa](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/nextcloud-kubernetes/) tai miten [Nextcloud asennetaan Debian 12:een](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/nextcloud-debian-12/).

### Kuinka ladata ja purkaa Nextcloud

Aloita luomalla kotihakemistoosi kansio nimeltä ”nextcloud” asennustiedostojen tallentamista varten. Vaikka tämän voi tehdä manuaalisesti [Nextcloudin muutospäiväkirjan](https://nextcloud.com/changelog/ "Nextcloud Changelog") ohjeiden mukaan, on nopeampaa käyttää seuraavaa curl-komentoa:

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

Huomio Jos asennat eri version Nextcloudista, muista päivittää URL-osoite vastaavasti.

Pura sitten tiedosto, siirrä se verkkokansion `./var/www` ja määritä tiedoston käyttöoikeudet:

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

### Tietokannan määrittäminen

Määritä MySQL-tietokanta suorittamalla sudo-komento ( `sudo mysql_secure_installation`. Kirjoita ”y” pääkäyttäjän salasanan määrittämiseksi (`VALIDATE PASSWORD`) ja valitse ”2” vahvan salasanan luomiseksi (`STRONG`), jonka voit sitten määrittää. Vahvista salasana painamalla ”y” ja paina sitten uudelleen ”y” poistaaksesi nimettömät käyttäjät, estääksesi etäkäytön, poistaaksesi testitietokannan ja ladataksesi käyttöoikeustaulukot uudelleen.

Toimi sitten seuraavasti:

1. Kirjaudu sisään pääkäyttäjänä käyttämällä `sudo mysql -u root -p`.
2. Luo tietokanta seuraavasti: `create database nextcloud;`.
3. Luo käyttäjä seuraavasti: `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Myönnä käyttöoikeudet komennolla: `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Lopuksi päivitä oikeudet käyttämällä `flush privileges;` ja poistu tietokantakonsolista käyttämällä `exit`.

Kun tietokanta on määritetty onnistuneesti, sinun on lisättävä kirjautumistiedot (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) Nextcloudin asetustiedostoon. Avaa tiedosto `./var/www/nextcloud/config/config.php` ja lisää tarvittavat tiedot:

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

### Kuinka poistaa NGINX:n oletusasetukset käytöstä

Ennen kuin integroit Nextcloudin NGINX:ään, sinun on varmistettava, ettei mikään muu asetustiedosto ohita Nextcloud-asennusta. Oletusasetuksina kansiossa `./etc/nginx/sites-enabled/` saattaa edelleen olla asetustiedosto `default`, joka voi häiritä asennustasi. Poista se seuraavasti:

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

Ota sitten mukautettu kokoonpanosi käyttöön tällä komennolla:

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

### NGINX-palvelimen määrittäminen

Jotta NGINX voidaan määrittää verkkopalvelimeksi, verkkotunnuksen tulee olla jo määritetty ja liitetty palvelimen IP-osoitteeseen. Varmista, että myös DNS on määritetty oikein. Luo uusi NGINX-määritystiedosto hakemistoon `sites-available` seuraavasti:

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

(Käytimme URL-osoitteena `exampledomain.co.uk`.)

Avaa asetustiedosto tekstieditorissa (kuten Vim) seuraavasti:

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

Lisää koodilohko Nextcloudin NGINX-määritysohjeiden kohdasta ”Nextcloud NGINX-webroots-hakemiston alihakemistossa”.

Koska HTTPS-varmenne lisätään Certbotin avulla, poista kaikki SSL:ään liittyvät rivit NGINX-määritystiedostosta. Certbot hoitaa nämä automaattisesti.

### SSL-varmenteen asentaminen Certbotilla

Jotta Nextcloudia voidaan käyttää suojatun HTTPS-yhteyden kautta, sinun on asennettava SSL-varmenne, tässä tapauksessa Let’s Encryptin varmenne. Aloita määrittämällä palomuuri sallimaan HTTPS- ja SSH-yhteydet seuraavien sudo-komentojen avulla:

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

Ota seuraavaksi palomuuri käyttöön kohdassa `sudo ufw enable` ja varmista kohdassa `sudo ufw status`, että yhteydet on sallittu. Sen jälkeen voit luoda SSL-varmenteen Certbot-ohjelmalla:

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

Seuraa ohjeita ja anna sähköpostiosoitteesi varmenteen uusimista varten sekä hyväksy käyttöehdot. Valitse vaihtoehto 2, jotta kaikki HTTP-pyynnöt ohjataan automaattisesti HTTPS-protokollalle. Certbot tallentaa varmennetiedostot hakemistoon `.etc/letsencrypt/live/exampledomain.co.uk/`. Tiedosto `fullchain.pem` sisältää SSL-varmenteen ja `privkey.pem` sisältää salaisen avaimen. Sinun on lisättävä ne NGINX-määritystiedostoon:

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

Koska Certbot on muokannut asetustiedostoa, sinun on lisättävä attribuutti `ssl` uudelleen `443` ja `http2` väliin. Lohkon tulisi näyttää tältä:

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

### Kuinka käynnistää palvelut uudelleen ja kirjautua Nextcloudiin

Jotta muutokset tulisivat voimaan, sinun on käynnistettävä PHP-FPM- ja NGINX-palvelut uudelleen:

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

Avaa nyt verkkotunnuksesi selaimessa – tässä tapauksessa exampledomain.co.uk. Jos kaikki on määritetty oikein, Nextcloudin aloitussivu pitäisi avautua.

Huomio Jos Nextcloud ei lataudu, syynä voi olla se, että verkkotunnustasi ei ole merkitty luotettavaksi verkkotunnukseksi kohdassa `config.php`. Lisää se sinne ongelman ratkaisemiseksi.


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/nextcloud-nginx/](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/nextcloud-nginx/) for AI/LLM consumption.