# Πώς να εγκαταστήσετε και να ρυθμίσετε το Nextcloud με το NGINX

Η λειτουργία του Nextcloud με το NGINX επιτρέπει την αποδοτική χρήση των πόρων του συστήματος, καθώς και ευέλικτες επιλογές εγκατάστασης. Για να το ρυθμίσετε σωστά, θα χρειαστείτε ένα συμβατό περιβάλλον συστήματος και τη σωστή διαμόρφωση. Απαιτούνται επίσης μερικές συγκεκριμένες ρυθμίσεις για την ομαλή ενσωμάτωση με το NGINX.

## Τι είναι το NGINX και γιατί να το συνδυάσετε με το Nextcloud;

Το NGINX είναι ένα λογισμικό διακομιστή ιστού ανοιχτού κώδικα που μπορεί επίσης να λειτουργήσει ως [διακομιστής αντίστροφου διακομιστή μεσολάβησης](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/antistrofos-diakomistis-mesolabisis-nginx/), εξισορροπητής φορτίου και προσωρινή μνήμη HTTP. Αναπτύχθηκε αρχικά από τον Ρώσο μηχανικό λογισμικού Igor Sysoev και διανέμεται υπό την άδεια BSD (το BSD είναι μια παραλλαγή του Unix).

Το NGINX έχει σχεδιαστεί για να διαχειρίζεται **ταυτόχρονα μεγάλο αριθμό συνδέσεων**. Για τον σκοπό αυτό, το λογισμικό χρησιμοποιεί μια αρχιτεκτονική που βασίζεται σε συμβάντα και δεν προκαλεί μπλοκάρισμα. Σε αντίθεση με τους παραδοσιακούς διακομιστές ιστού, οι οποίοι δημιουργούν μια νέα διεργασία ή ένα νέο νήμα για κάθε σύνδεση, το NGINX εκτελεί μια **κύρια διεργασία** παράλληλα με πολλές διεργασίες-εργαζόμενους. Η κύρια διεργασία διαχειρίζεται τη διαμόρφωση, ενώ οι διεργασίες-εργαζόμενοι επεξεργάζονται τα εισερχόμενα αιτήματα των πελατών.

Ο συνδυασμός του Nextcloud με το NGINX προσφέρει πολλά σημαντικά πλεονεκτήματα για περιβάλλοντα υψηλής απόδοσης, όπως:

- **Αποδοτική χρήση πόρων**: Το NGINX μπορεί να διαχειρίζεται πολλές συνδέσεις ταυτόχρονα, με ελάχιστη κατανάλωση πόρων.
- **Εξαιρετική επεκτασιμότητα**: Το NGINX υποστηρίζει ευέλικτη εξισορρόπηση φορτίου και είναι εύκολα επεκτάσιμο με την προσθήκη επιπλέον διακομιστών.
- **Αρχιτεκτονική με υψηλό βαθμό προσαρμογής**: Χάρη στη δομοστοιχειωτή δομή του, το NGINX μπορεί να προσαρμοστεί ώστε να ταιριάζει σε ένα ευρύ φάσμα σεναρίων.
- **Αξιόπιστη απόδοση υπό βαρύ φορτίο διακομιστή**: Ακόμη και όταν ο διακομιστής βρίσκεται υπό βαριά χρήση, το NGINX παραμένει αξιόπιστο, διατηρώντας τις υπηρεσίες σας συνεχώς διαθέσιμες.

Note Δεδομένου ότι [το Nextcloud](https://www.ionos.com/el-gr/digitalguide/diakomistis/ergaleia/ti-einai-to-nextcloud/) υποστηρίζει επίσημα μόνο τον Apache 2.x ως διακομιστή ιστού, δεν υπάρχει επίσημη υποστήριξη για τον NGINX. Η χρήση του Nextcloud με τον NGINX συνιστάται, επομένως, κυρίως σε χρήστες με εμπειρία στη διαμόρφωση διακομιστών ιστού.

## Ποιες είναι οι απαιτήσεις για τη λειτουργία του Nextcloud με το NGINX;

Για να εκτελέσετε το Nextcloud στο NGINX, θα χρειαστείτε έναν διακομιστή που να λειτουργεί με Ubuntu, Debian ή άλλο συμβατό λειτουργικό σύστημα. Ο διακομιστής θα πρέπει να διαθέτει τουλάχιστον **4 GB μνήμης RAM** και δύο επεξεργαστές. Για μεγαλύτερες εγκαταστάσεις με πολλαπλές εφαρμογές Nextcloud, συνιστάται ανεπιφύλακτα η χρήση περισσότερης μνήμης και περισσότερων πυρήνων επεξεργαστή. Θα χρειαστείτε επίσης επαρκή χώρο αποθήκευσης για δεδομένα και αντίγραφα ασφαλείας.

Για την εγκατάσταση, θα χρειαστείτε επίσης μια **συμβατή βάση δεδομένων, όπως MySQL ή MariaDB**, καθώς και τη γλώσσα προγραμματισμού PHP (ελάχιστη έκδοση 8.1, συνιστάται η έκδοση 8.3). Η βάση δεδομένων χρησιμοποιείται για την αποθήκευση δεδομένων χρηστών και δεδομένων προσθηκών, καθώς και μεταδεδομένων αρχείων. Η PHP απαιτείται για την εκτέλεση των βασικών λειτουργιών του Nextcloud. Θα χρειαστείτε επίσης έναν λογαριασμό με δικαιώματα διαχειριστή για να εγκαταστήσετε το λογισμικό.

## Πώς να εγκαταστήσετε το Nextcloud με το NGINX

Πριν από την εγκατάσταση του Nextcloud, πρέπει να ολοκληρωθούν ορισμένες βασικές προετοιμασίες. Ο παρών οδηγός προϋποθέτει τη χρήση ενός διακομιστή Ubuntu, στον οποίο το λειτουργικό σύστημα και όλες οι απαιτούμενες εξαρτήσεις έχουν ήδη εγκατασταθεί. Σε αυτές περιλαμβάνονται ο NGINX ως διακομιστής ιστού, το MySQL ως βάση δεδομένων και το PHP 8.3 με όλες τις απαραίτητες επεκτάσεις.

Έχουμε επίσης εγκαταστήσει το Certbot για την εύκολη ρύθμιση πιστοποιητικών SSL με το Let’s Encrypt. Υποθέτουμε επίσης ότι έχετε ρυθμίσει έναν τομέα, ώστε να μπορείτε να έχετε πρόσβαση στο Nextcloud μέσω μιας διεύθυνσης URL και όχι μέσω μιας διεύθυνσης IP.

Tip Μπορείτε επίσης να ακολουθήσετε τα σεμινάριά μας για να μάθετε πώς να [εγκαταστήσετε το Nextcloud στο Ubuntu 22.04](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/nextcloud-ubuntu-2204/), [να ρυθμίσετε το Nextcloud στο Kubernetes](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/nextcloud-kubernetes/) ή [να εγκαταστήσετε το Nextcloud στο Debian 12](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/nextcloud-debian-12/).

### Πώς να κατεβάσετε και να αποσυμπιέσετε το Nextcloud

Ξεκινήστε δημιουργώντας έναν φάκελο με το όνομα «nextcloud» στον αρχικό σας κατάλογο για να αποθηκεύσετε τα αρχεία εγκατάστασης. Αν και αυτό μπορεί να γίνει χειροκίνητα μέσω του [αρχείου αλλαγών του Nextcloud](https://nextcloud.com/changelog/ "Nextcloud Changelog"), είναι πιο γρήγορο να χρησιμοποιήσετε την ακόλουθη εντολή Curl:

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

Note Εάν εγκαθιστάτε μια διαφορετική έκδοση του Nextcloud, φροντίστε να ενημερώσετε τη διεύθυνση URL αναλόγως.

Στη συνέχεια, αποσυμπιέστε το αρχείο, μετακινήστε το στον ριζικό κατάλογο του ιστότοπου `./var/www` και ορίστε τα δικαιώματα πρόσβασης του αρχείου:

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

### Πώς να ρυθμίσετε τη βάση δεδομένων

Για να ρυθμίσετε τη βάση δεδομένων MySQL, εκτελέστε την εντολή sudo `sudo mysql_secure_installation`. Πληκτρολογήστε «y» για να ορίσετε τον κωδικό πρόσβασης root (`VALIDATE PASSWORD`) και επιλέξτε «2» για έναν ισχυρό κωδικό πρόσβασης (`STRONG`), τον οποίο μπορείτε στη συνέχεια να ορίσετε. Πατήστε «y» για να επιβεβαιώσετε τον κωδικό πρόσβασης και, στη συνέχεια, πατήστε ξανά «y» για να καταργήσετε τους ανώνυμους χρήστες, να απενεργοποιήσετε τις απομακρυσμένες συνδέσεις, να καταργήσετε τη δοκιμαστική βάση δεδομένων και να φορτώσετε εκ νέου τους πίνακες δικαιωμάτων.

Στη συνέχεια, ακολουθήστε τα παρακάτω βήματα:

1. Συνδεθείτε ως χρήστης root χρησιμοποιώντας `sudo mysql -u root -p`.
2. Δημιουργήστε τη βάση δεδομένων χρησιμοποιώντας: `create database nextcloud;`.
3. Δημιουργήστε τον χρήστη χρησιμοποιώντας: `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Χορηγήστε δικαιώματα χρησιμοποιώντας: `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Τέλος, ενημερώστε τα δικαιώματα χρησιμοποιώντας `flush privileges;` και βγείτε από την κονσόλα της βάσης δεδομένων χρησιμοποιώντας `exit`.

Μόλις ολοκληρωθεί η εγκατάσταση της βάσης δεδομένων, πρέπει να προσθέσετε τα στοιχεία σύνδεσης (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) στο αρχείο ρυθμίσεων του Nextcloud. Ανοίξτε το αρχείο `./var/www/nextcloud/config/config.php` και προσθέστε τις σχετικές καταχωρήσεις:

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

### Πώς να απενεργοποιήσετε την προεπιλεγμένη ρύθμιση του NGINX

Πριν ενσωματώσετε το Nextcloud στο NGINX, πρέπει να βεβαιωθείτε ότι κανένα άλλο αρχείο ρυθμίσεων δεν παρακάμπτει την εγκατάσταση του Nextcloud. Από προεπιλογή, ενδέχεται να υπάρχει ακόμα `default` αρχείο ρυθμίσεων στο `./etc/nginx/sites-enabled/` που θα μπορούσε να επηρεάσει τη ρύθμισή σας. Διαγράψτε το χρησιμοποιώντας:

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

Στη συνέχεια, ενεργοποιήστε την προσαρμοσμένη ρύθμισή σας με την παρακάτω εντολή:

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

### Πώς να ρυθμίσετε τον διακομιστή NGINX

Για να ρυθμίσετε το NGINX ως διακομιστή ιστού, θα πρέπει να έχει ήδη ρυθμιστεί ένας τομέας και να έχει συνδεθεί με τη διεύθυνση IP του διακομιστή. Βεβαιωθείτε ότι και το DNS έχει ρυθμιστεί σωστά. Δημιουργήστε ένα νέο αρχείο ρυθμίσεων NGINX στον κατάλογο `sites-available` χρησιμοποιώντας:

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

(Χρησιμοποιήσαμε `exampledomain.co.uk` ως διεύθυνση URL.)

Ανοίξτε το αρχείο ρυθμίσεων σε ένα πρόγραμμα επεξεργασίας κειμένου (όπως το Vim) χρησιμοποιώντας:

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

Εισάγετε το τμήμα κώδικα από την ενότητα «Nextcloud σε υποφάκελο των webroots του NGINX» της τεκμηρίωσης για τη διαμόρφωση του Nextcloud στο NGINX.

Δεδομένου ότι το πιστοποιητικό HTTPS θα προστεθεί μέσω του Certbot, διαγράψτε όλες τις γραμμές που σχετίζονται με το SSL από το αρχείο ρυθμίσεων του NGINX. Το Certbot θα τις διαχειριστεί αυτόματα.

### Πώς να ρυθμίσετε ένα πιστοποιητικό SSL με το Certbot

Για να εκτελέσετε το Nextcloud μέσω ασφαλούς σύνδεσης HTTPS, πρέπει να ρυθμίσετε ένα πιστοποιητικό SSL, στην περίπτωση αυτή από το Let’s Encrypt. Αρχικά, ρυθμίστε το τείχος προστασίας ώστε να επιτρέπει συνδέσεις HTTPS και SSH χρησιμοποιώντας τις ακόλουθες εντολές sudo:

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

Στη συνέχεια, ενεργοποιήστε το τείχος προστασίας με το βήμα `sudo ufw enable` και ελέγξτε με `sudo ufw status` για να βεβαιωθείτε ότι οι συνδέσεις επιτρέπονται. Έπειτα, μπορείτε να δημιουργήσετε το πιστοποιητικό SSL χρησιμοποιώντας το Certbot:

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

Ακολουθήστε τις οδηγίες για να εισαγάγετε τη διεύθυνση email σας για την ανανέωση των πιστοποιητικών και να αποδεχτείτε τους όρους χρήσης. Επιλέξτε την επιλογή 2 για να ανακατευθύνετε αυτόματα όλα τα αιτήματα HTTP σε HTTPS. Το Certbot αποθηκεύει τα αρχεία πιστοποιητικών στον κατάλογο `.etc/letsencrypt/live/exampledomain.co.uk/`. Το αρχείο `fullchain.pem` περιέχει το πιστοποιητικό SSL, ενώ `privkey.pem` περιέχει το ιδιωτικό κλειδί. Πρέπει να τα προσθέσετε στο αρχείο διαμόρφωσης του NGINX:

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

Δεδομένου ότι το Certbot τροποποίησε το αρχείο ρυθμίσεων, πρέπει να προσθέσετε ξανά το χαρακτηριστικό `ssl` μεταξύ `443` και `http2`. Το τμήμα θα πρέπει να έχει την εξής μορφή:

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

### Πώς να επανεκκινήσετε τις υπηρεσίες και να συνδεθείτε στο Nextcloud

Για να εφαρμοστούν οι αλλαγές, πρέπει να επανεκκινήσετε τις υπηρεσίες PHP-FPM και NGINX:

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

Τώρα, ανοίξτε τον τομέα σας στον περιηγητή — στην περίπτωσή μας, το exampledomain.co.uk. Εάν όλα έχουν ρυθμιστεί σωστά, θα εμφανιστεί η σελίδα καλωσορίσματος του Nextcloud.

Note Εάν το Nextcloud δεν φορτώνεται, αυτό μπορεί να οφείλεται στο γεγονός ότι ο τομέας σας δεν έχει καταχωριστεί ως «Αξιόπιστος τομέας» στο `config.php`. Προσθέστε τον εκεί για να επιλύσετε το πρόβλημα.


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/nextcloud-nginx/](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/nextcloud-nginx/) for AI/LLM consumption.