# 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/mikae-on-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.