# Kaip įdiegti ir sukonfigūruoti „Nextcloud“ su „NGINX“

„Nextcloud“ veikimas su „NGINX“ leidžia efektyviai naudoti sistemos išteklius ir suteikia lanksčias diegimo galimybes. Norint viską tinkamai sukonfigūruoti, reikės suderinamos sistemos aplinkos ir tinkamų nustatymų. Be to, siekiant užtikrinti sklandžią integraciją su „NGINX“, reikės atlikti keletą konkrečių koregavimų.

## Kas yra NGINX ir kodėl jį verta derinti su „Nextcloud“?

„NGINX“ – tai atvirojo kodo žiniatinklio serverio programinė įranga, kuri taip pat gali veikti kaip [atvirkštinis tarpinis serveris](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/nginx-atvirkstinis-tarpinis-serveris/), apkrovos paskirstymo įrenginys ir HTTP talpyklė. Iš pradžių „NGINX“ sukūrė rusų programinės įrangos inžinierius Igoris Sysojevas, o platinama pagal BSD licenciją (BSD yra „Unix“ variantas).

NGINX yra sukurtas tam, kad **vienu metu** galėtų aptarnauti **didelį skaičių ryšių**. Šiam tikslui pasiekti programinė įranga naudoja įvykių valdomą, neblokuojančią architektūrą. Skirtingai nuo tradicinių žiniatinklio serverių, kurie kiekvienam ryšiui sukuria naują procesą ar srautą, NGINX veikia taip: **pagrindinis procesas** veikia kartu su keliais pagalbiniais procesais. Pagrindinis procesas tvarko konfigūraciją, o pagalbiniai procesai apdoroja gaunamus klientų užklausimus.

„Nextcloud“ ir „NGINX“ derinys suteikia keletą pagrindinių privalumų aukštos našumo aplinkoms, tarp kurių:

- **Efektyvus išteklių naudojimas**: „NGINX“ gali vienu metu tvarkyti daugybę ryšių, sunaudodamas tik minimalius išteklius.
- **Puikus mastelio keitimas**: NGINX palaiko lanksčią apkrovos balansavimą ir yra lengvai pritaikomas, pridedant papildomus serverius.
- **Labai pritaikoma architektūra**: Dėl savo modulinės struktūros NGINX gali būti pritaikytas įvairiems scenarijams.
- **Patikimas veikimas esant didelei serverio apkrovai**: net ir esant didelei serverio apkrovai, NGINX veikia patikimai, užtikrindamas nuolatinį jūsų paslaugų prieinamumą.

Note Kadangi [„Nextcloud“](https://www.ionos.com/lt-lt/digitalguide/serveris/irankiai/kas-yra-nextcloud/) oficialiai palaiko tik „Apache 2.x“ kaip savo žiniatinklio serverį, „NGINX“ oficialiai nepalaikoma. Todėl „Nextcloud“ veikimas su „NGINX“ labiausiai tinka vartotojams, turintiems patirties konfigūruojant žiniatinklio serverius.

## Kokie reikalavimai keliami „Nextcloud“ veikimui su „NGINX“?

Norėdami paleisti „Nextcloud“ su „NGINX“, jums reikės serverio, kuriame veikia „Ubuntu“, „Debian“ ar kita suderinama operacinė sistema. Serveris turėtų turėti ne mažiau **kaip 4 GB RAM** ir du procesorius. Didesnėms sistemoms su keliomis „Nextcloud“ programomis labai rekomenduojama daugiau atminties ir procesorių branduolių. Taip pat reikės pakankamai vietos duomenims ir atsarginėms kopijoms saugoti.

Diegimui taip pat reikės **suderinamos duomenų bazės, pavyzdžiui, „MySQL“ ar „MariaDB“**, bei skriptų kalbos PHP (reikalinga ne žemesnė kaip 8.1 versija, rekomenduojama 8.3 versija). Duomenų bazė naudojama vartotojų ir įskiepių duomenims, taip pat failų metaduomenims saugoti. PHP reikalinga „Nextcloud“ pagrindinėms funkcijoms vykdyti. Be to, norint įdiegti programinę įrangą, reikės paskyros su administratoriaus teisėmis.

## Kaip įdiegti „Nextcloud“ su „NGINX“

Prieš diegiant „Nextcloud“ reikia atlikti keletą būtinų paruošiamųjų veiksmų. Šiame vadove daroma prielaida, kad naudojamas „Ubuntu“ serveris, kuriame jau įdiegta sistema ir visos reikiamos priklausomybės. Tai apima „NGINX“ kaip žiniatinklio serverį, „MySQL“ kaip duomenų bazę ir „PHP 8.3“ su visais būtinais plėtiniais.

Be to, įdiegėme „Certbot“, kad būtų galima lengvai nustatyti SSL sertifikatą naudojant „Let’s Encrypt“. Taip pat manome, kad turite sukonfigūruotą domeną, todėl prie „Nextcloud“ galite prisijungti naudodami URL adresą, o ne IP adresą.

Tip Taip pat galite pasinaudoti mūsų pamokomis, kuriose sužinosite, kaip [įdiegti „Nextcloud“ „Ubuntu 22.04“ sistemoje](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/nextcloud-ubuntu-2204/), [sukonfigūruoti „Nextcloud“ „Kubernetes“ aplinkoje](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/nextcloud-ir-kubernetes/) arba [įdiegti „Nextcloud“ „Debian 12“ sistemoje](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/nextcloud-su-debian-12/).

### Kaip atsisiųsti ir išpakuoti „Nextcloud“

Pirmiausia savo namų kataloge sukurkite aplanką „nextcloud“, kuriame bus saugomi diegimo failai. Nors tai galima padaryti rankiniu būdu, vadovaujantis [„Nextcloud“ pakeitimų žurnalu](https://nextcloud.com/changelog/ "Nextcloud Changelog"), greičiau tai atlikti naudojant šią „Curl“ komandą:

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

Note Jei diegiate kitą „Nextcloud“ versiją, būtinai atitinkamai atnaujinkite URL adresą.

Tada išpakuokite failą, perkelkite jį į tinklalapio šakninį katalogą `./var/www` ir nustatykite failo teises:

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

### Kaip sukonfigūruoti duomenų bazę

Norėdami sukonfigūruoti „MySQL“ duomenų bazę, paleiskite komandą „sudo“ ( `sudo mysql_secure_installation`. Įveskite „y“, kad nustatytumėte administratoriaus slaptažodį (`VALIDATE PASSWORD`), ir pasirinkite „2“, kad nustatytumėte saugų slaptažodį (`STRONG`), kurį galėsite sukonfigūruoti vėliau. Paspauskite „y“, kad patvirtintumėte slaptažodį, tada dar kartą paspauskite „y“, kad pašalintumėte anoniminius vartotojus, išjungtumėte nuotolinį prisijungimą, pašalintumėte bandomąją duomenų bazę ir perkrautumėte teisių lenteles.

Tada atlikite šiuos veiksmus:

1. Prisijunkite kaip vartotojas „root“ naudodami `sudo mysql -u root -p`.
2. Sukurkite duomenų bazę naudodami: `create database nextcloud;`.
3. Sukurkite vartotoją naudodami: `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Suteikite leidimus naudodami: `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Galiausiai atnaujinkite teises naudodami `flush privileges;` ir išeikite iš duomenų bazės konsolės naudodami `exit`.

Sėkmingai sukonfigūravus duomenų bazę, reikia įtraukti prisijungimo duomenis (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) į „Nextcloud“ konfigūracijos failą. Atidarykite failą `./var/www/nextcloud/config/config.php` ir įtraukite reikiamus įrašus:

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

### Kaip išjungti numatytąją NGINX konfigūraciją

Prieš integruodami „Nextcloud“ į „NGINX“, turite įsitikinti, kad jokie kiti konfigūracijos failai nepakeičia „Nextcloud“ diegimo nustatymų. Pagal numatytuosius nustatymus kataloge `default` vis dar gali būti konfigūracijos failas `./etc/nginx/sites-enabled/`, kuris gali trukdyti jūsų diegimui. Pašalinkite jį taip:

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

Tada įjunkite savo pasirinktą konfigūraciją šia komanda:

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

### Kaip sukonfigūruoti NGINX serverį

Norint sukonfigūruoti NGINX kaip žiniatinklio serverį, domenas jau turi būti sukonfigūruotas ir susietas su serverio IP adresu. Įsitikinkite, kad DNS taip pat yra teisingai sukonfigūruotas. Sukurkite naują NGINX konfigūracijos failą kataloge `sites-available` naudodami šią komandą:

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

(URL adrese naudojome `exampledomain.co.uk`.)

Atidarykite konfigūracijos failą teksto redaktoriuje (pavyzdžiui, „Vim“) taip:

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

Įterpkite kodų bloką iš Nextcloud NGINX konfigūracijos dokumentacijos skyriaus „Nextcloud NGINX webroots pakatalogyje“.

Kadangi HTTPS sertifikatas bus įdiegtas naudojant „Certbot“, iš NGINX konfigūracijos failo ištrinkite visas eilutes, susijusias su SSL. „Certbot“ tai atliks automatiškai.

### Kaip nustatyti SSL sertifikatą naudojant „Certbot“

Norėdami paleisti „Nextcloud“ per saugų HTTPS ryšį, turite nustatyti SSL sertifikatą, šiuo atveju iš „Let’s Encrypt“. Pirmiausia sukonfigūruokite ugniasienę taip, kad ji leistų HTTPS ir SSH ryšius, naudodami šias „sudo“ komandas:

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

Toliau įjunkite ugniasienę, nustatydami vertę `sudo ufw enable`, ir patikrinkite, nustatydami vertę `sudo ufw status`, ar ryšiai leidžiami. Tada galite sukurti SSL sertifikatą naudodami „Certbot“:

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

Vadovaukitės ekrane pateikiamais nurodymais, kad nurodytumėte savo el. pašto adresą sertifikato atnaujinimui ir sutiktumėte su paslaugų teikimo sąlygomis. Pasirinkite 2 variantą, kad visi HTTP užklausimai būtų automatiškai nukreipiami į HTTPS. „Certbot“ išsaugo sertifikato failus kataloge `.etc/letsencrypt/live/exampledomain.co.uk/`. Failas `fullchain.pem` yra SSL sertifikatas, o `privkey.pem` – privatus raktas. Juos reikia įtraukti į savo NGINX konfigūracijos failą:

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

Kadangi „Certbot“ pakeitė konfigūracijos failą, tarp `443` ir `http2` vėl reikia įterpti `ssl` atributą. Blokas turėtų atrodyti taip:

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

### Kaip iš naujo paleisti paslaugas ir prisijungti prie „Nextcloud“

Kad pakeitimai įsigaliotų, reikia perkrauti PHP-FPM ir NGINX paslaugas:

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

Dabar naršyklėje atidarykite savo domeną – mūsų atveju tai exampledomain.co.uk. Jei viskas buvo sukonfigūruota teisingai, turėtų pasirodyti „Nextcloud“ sveikinimo puslapis.

Note Jei „Nextcloud“ neatsisiunčia, tai gali būti dėl to, kad jūsų domenas nėra įtrauktas į „Patikimų domenų“ sąrašą `config.php` skyriuje. Norėdami išspręsti šią problemą, įtraukite jį į tą sąrašą.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/nextcloud-ir-nginx/](https://www.ionos.com/lt-lt/digitalguide/serveris/konfiguracija/nextcloud-ir-nginx/) for AI/LLM consumption.