> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/3.x/el/odigos-diaxeirisis/admin-guide/installation/configuration.md).

# Διαμόρφωση

Το Chamilo 3.0 χρησιμοποιεί μεταβλητές περιβάλλοντος και αρχεία διαμόρφωσης του Symfony για τις βασικές του ρυθμίσεις. Αυτή η σελίδα καλύπτει τα βασικά αρχεία διαμόρφωσης και τις μεταβλητές.

## Μεταβλητές περιβάλλοντος (.env)

Το κύριο αρχείο διαμόρφωσης είναι το `.env` στον ριζικό κατάλογο του Chamilo. Αυτό το αρχείο περιέχει ρυθμίσεις ειδικές για το περιβάλλον, οι οποίες δεν πρέπει να υποβάλλονται στον έλεγχο εκδόσεων.

Ένα προεπιλεγμένο αρχείο `.env.dist` συνοδεύει το Chamilo και περιέχει τεκμηριωμένες προεπιλογές. Δημιουργήστε το `.env` (απαιτείται για την έναρξη της εγκατάστασης) ώστε να παρακάμψετε τις τιμές για το δικό σας περιβάλλον.

### Βασικές μεταβλητές

| Μεταβλητή                   | Περιγραφή                                                                                                                                                                                                                                                                       | Παράδειγμα        |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `APP_ENV`                   | Το περιβάλλον της εφαρμογής, στο επίπεδο του Symfony. Χρησιμοποιήστε `prod` για παραγωγή, `dev` για ανάπτυξη, 'test' για δοκιμές.                                                                                                                                               | `prod`            |
| `APP_SECRET`                | Μια τυχαία συμβολοσειρά που χρησιμοποιείται για διακριτικά CSRF, υπογραφή cookies και άλλες κρυπτογραφικές λειτουργίες. Το Chamilo δημιουργεί μια μοναδική τιμή για κάθε εγκατάσταση. Μην την τροποποιείτε.                                                                     | `a1b2c3d4e5f6...` |
| `DATABASE_HOST`             | Ο κεντρικός υπολογιστής της βάσης δεδομένων. Προεπιλογή: localhost                                                                                                                                                                                                              | `localhost`       |
| `DATABASE_PORT`             | Η θύρα της βάσης δεδομένων. Προεπιλογή: 3306 για MySQL/MariaDB                                                                                                                                                                                                                  | `3306`            |
| `DATABASE_NAME`             | Το όνομα της βάσης δεδομένων, όπως το δώσατε στον οδηγό εγκατάστασης.                                                                                                                                                                                                           | Βλ. παρακάτω.     |
| `DATABASE_USER`             | Το όνομα χρήστη της βάσης δεδομένων, όπως το δώσατε στον οδηγό εγκατάστασης.                                                                                                                                                                                                    | Βλ. παρακάτω.     |
| `DATABASE_PASSWORD`         | Ο κωδικός πρόσβασης του χρήστη της βάσης δεδομένων, όπως τον δώσατε στον οδηγό εγκατάστασης.                                                                                                                                                                                    | Βλ. παρακάτω.     |
| `TRUSTED_PROXIES`           | (Προαιρετικό) Εάν φιλοξενείτε το Chamilo πίσω από έναν αντίστροφο διακομιστή μεσολάβησης (reverse proxy), πρέπει να δηλώσετε εδώ τη διεύθυνση IP (ή τις διευθύνσεις) του reverse proxy ώστε το Chamilo να μπορεί να ερμηνεύει σωστά τα αιτήματα και να παράγει τις απαντήσεις.  |                   |
| `APP_ENABLE_API_ENTRYPOINT` | (Προαιρετικό) Εκθέτει την διαδραστική τεκμηρίωση API (Swagger/OpenAPI) στη διαδρομή `/api`. Απενεργοποιημένο από προεπιλογή. Απαιτείται εκκαθάριση της προσωρινής μνήμης για να τεθεί σε ισχύ — βλ. [Ενεργοποίηση της τεκμηρίωσης API](#enable-the-api-documentation) παρακάτω. | `true`            |

Οι υπόλοιπες ρυθμίσεις στο .env τροποποιούνται σχετικά σπάνια.

Σημειώστε ότι, σε μελλοντικές εκδόσεις, οι ρυθμίσεις DATABASE\_\* θα συνενωθούν σε μία ενιαία μεταβλητή `DATABASE_URL`.

Η διαμόρφωση αποστολής ηλεκτρονικού ταχυδρομείου παρουσιάζεται κατά την εγκατάσταση, αλλά μπορεί να τροποποιηθεί αργότερα στην ενότητα `Platform settings` του πίνακα διαχείρισης.

## Διαμόρφωση Symfony (κατάλογος config/)

Η διαμόρφωση σε επίπεδο Symfony βρίσκεται στον κατάλογο `config/`. Αυτά τα αρχεία YAML ελέγχουν τη συμπεριφορά του πλαισίου, τους ορισμούς υπηρεσιών και τις ρυθμίσεις που αφορούν συγκεκριμένα πακέτα.

Ολόκληρος ο κατάλογος `config/` συνοδεύει κάθε πακέτο Chamilo και κάθε ενημέρωση — σε αντίθεση, για παράδειγμα, με το `.env`, δεν εξαιρείται ούτε διατηρείται ειδικά κατά την αναβάθμιση. **Οποιαδήποτε αλλαγή γίνει απευθείας σε αρχείο κάτω από το `config/` ή το `config/packages/` θα αντικατασταθεί σιωπηλά την επόμενη φορά που θα ενημερώσετε το Chamilo.** Βλ. [Παρακάμψεις ανά περιβάλλον](#environment-specific-overrides) παρακάτω για τον υποστηριζόμενο τρόπο προσαρμογής της διαμόρφωσης χωρίς απώλεια των αλλαγών σας.

Δεν είναι συχνό να χρειάζεται τροποποίηση αυτών των αρχείων, και η αλλαγή τους μπορεί να καταστήσει την πύλη σας μη λειτουργική, επομένως μην επιχειρήσετε να τα τροποποιήσετε εάν πρέπει να διασφαλίσετε τη διαθεσιμότητα του συστήματος.

### Βασικά αρχεία διαμόρφωσης

| Αρχείο                           | Σκοπός                                                                                            |
| -------------------------------- | ------------------------------------------------------------------------------------------------- |
| `config/authentication.yaml`     | Διαμόρφωση μεθόδων αυθεντικοποίησης.                                                              |
| `config/packages/doctrine.yaml`  | Διαμόρφωση βάσης δεδομένων και ORM.                                                               |
| `config/packages/security.yaml`  | Αυθεντικοποίηση, τείχη προστασίας, έλεγχος πρόσβασης και ιεραρχίες ρόλων.                         |
| `config/packages/cache.yaml`     | Διαμόρφωση προσαρμογέα προσωρινής μνήμης (filesystem, APCu, Redis).                               |
| `config/packages/framework.yaml` | Γενικές ρυθμίσεις του πλαισίου Symfony (συνεδρία, CSRF, δρομολογητής, προσωρινή αποθήκευση HTTP). |
| `config/packages/twig.yaml`      | Διαμόρφωση της μηχανής προτύπων.                                                                  |
| `config/services.yaml`           | Ορισμοί υπηρεσιών εφαρμογής και έγχυση εξαρτήσεων.                                                |

### Παρακάμψεις ανά περιβάλλον

Το Symfony υποστηρίζει διαμόρφωση ανά περιβάλλον. Τα αρχεία στο `config/packages/prod/` παρακάμπτουν τις προεπιλογές όταν `APP_ENV=prod`, και το `config/packages/dev/` παρακάμπτει όταν `APP_ENV=dev`.

Για παράδειγμα, το `config/packages/prod/monolog.yaml` συνήθως διαμορφώνει λιγότερο αναλυτική καταγραφή από το αντίστοιχο περιβάλλοντος ανάπτυξης.

Το Chamilo δεν ορίζει καμία διαμόρφωση στο `config/packages/prod/` στο ίδιο το λογισμικό, επομένως εάν θέλετε να προσαρμόσετε μια ρύθμιση από τα `config/packages/*.yaml`, **μην επεξεργαστείτε το βασικό αρχείο** — δημιουργήστε ένα αρχείο με το ίδιο όνομα μέσα στο `config/packages/prod/` (ή `dev/`/`test/`, ανάλογα με το περιβάλλον που θέλετε να επηρεάσετε) που να περιέχει μόνο τα κλειδιά που θέλετε να παρακάμψετε, και τοποθετήστε εκεί τις αλλαγές σας.

Αυτό έχει σημασία επειδή τα βασικά αρχεία `config/packages/*.yaml` αποτελούν μέρος του πακέτου Chamilo: κάθε ενημέρωση τα αποστέλλει ξανά και αντικαθιστά ό,τι υπάρχει εκεί, οπότε οι επεξεργασίες που γίνονται απευθείας σε αυτά δεν επιβιώνουν μιας αναβάθμισης. Εφόσον το Chamilo δεν αποστέλλει ποτέ τίποτα κάτω από το `config/packages/prod/` (ή `dev/`/`test/`), αυτός ο κατάλογος είναι ασφαλής από αντικατάσταση κατά την ενημέρωση και αποτελεί το υποστηριζόμενο σημείο για τις τοπικές προσαρμογές.

## Δικαιώματα Αρχείων

Καταβάλαμε προσπάθειες στην έκδοση 2.0+ ώστε να απαιτούνται δικαιώματα μόνο σε έναν κατάλογο, και αυτό παραμένει αληθές στην 3.0. Πρόκειται για τον κατάλογο `var/`, και για την αποφυγή σύνθετων προβλημάτων αρκεί να οριστεί ολόκληρος ο φάκελος ως εγγράψιμος από τον χρήστη συστήματος του διακομιστή ιστού.

Ορίστε τα δικαιώματα κατάλληλα σε συστήματα βασισμένα στο Debian:

```bash
# For systems where the web server runs as www-data
chown -R www-data:www-data var/
chmod -R 775 var/
```

## Συνήθεις Εργασίες Διαμόρφωσης

### Μετάβαση σε Λειτουργία Παραγωγής

```bash
# In .env
APP_ENV=prod
APP_DEBUG=0
```

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

```bash
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod
```

### Ενεργοποίηση της Τεκμηρίωσης API

```bash
# In .env
APP_ENABLE_API_ENTRYPOINT=true
```

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

```bash
php bin/console cache:clear
```

Η διαδραστική τεκμηρίωση API (Swagger/OpenAPI) είναι τότε διαθέσιμη στη διεύθυνση `/api`. Η επεξεργασία μόνο του `.env` δεν αρκεί: η επιλυμένη τιμή ενσωματώνεται στην μεταγλωττισμένη προσωρινή μνήμη του Symfony, οπότε το `/api` συνεχίζει να επιστρέφει την προηγούμενη κατάστασή του (ενεργοποιημένο ή όχι) μέχρι να εκκαθαριστεί η προσωρινή μνήμη. Η ενέργεια **Σύστημα > Εκκαθάριση προσωρινών αρχείων** στον πίνακα διαχείρισης *δεν* το κάνει αυτό — δείτε [Εργαλεία Συστήματος](/3.x/el/odigos-diaxeirisis/admin-guide/system/system-tools.md#clean-temporary-files) για τον λόγο — επομένως αυτή η συγκεκριμένη αλλαγή απαιτεί πρόσβαση κελύφους για την εκτέλεση του `cache:clear`.

### Διαμόρφωση Έμπιστων Διαμεσολαβητών (Trusted Proxies)

Εάν το Chamilo εκτελείται πίσω από έναν αντίστροφο διαμεσολαβητή (reverse proxy) ή εξισορροπητή φορτίου, διαμορφώστε τους έμπιστους διαμεσολαβητές ώστε η ανίχνευση HTTPS και η επίλυση της διεύθυνσης IP του πελάτη να λειτουργούν σωστά:

```yaml
# .env
TRUSTED_PROXIES='127.0.0.1,PROXY_IP'
```

### Διαμόρφωση Αποθήκευσης Συνεδριών

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

```yaml
# config/packages/framework.yaml
framework:
    session:
        handler_id: 'redis://localhost:6379'
```

## Συμβουλές

* **Μην επεξεργάζεστε ποτέ απευθείας το `.env.dist`** -- Χρησιμοποιείτε πάντα το `.env` για τις παρακάμψεις σας. Το αρχείο `.env.dist` ενδέχεται να αντικατασταθεί κατά τις αναβαθμίσεις.
* **Διατηρήστε `APP_DEBUG=0` στην παραγωγή** -- Η λειτουργία εντοπισμού σφαλμάτων εκθέτει ευαίσθητες πληροφορίες στις σελίδες σφαλμάτων.
* **Δημιουργήστε αντίγραφο ασφαλείας του `.env`** χωριστά από τον κώδικα, καθώς περιέχει διαπιστευτήρια και εξαιρείται από τον έλεγχο εκδόσεων.
